Don't forget to re-run and check in the configure file along with configure.in. This is normally supposed to be done when configure.in or aclocal.m4 are modified. It also should be done whenever the version numbers change in uvernum.h
Update urename.h to catch all possible ICU4C library exports (especially on non-Windows systems that tend to ignore export qualifiers). See icu/source/tools/genren/README.
Diff the new one with the previous one; there are typically a few bad #defines in there.
You are looking to make sure that the defines all are correct exported symbols and that the Perl script hasn't inadvertently grabbed extraneous text. Each of the defines should be of the format "uxxxx_NamingConvention". If not then you need to determine if it's a script issue or a poorly named method.
Also, please look out for this type of message: "*** WARNING Bad namespace (not 'icu') on ShoeSize::ShoeSize()" - it probably means that there is a class not defined inside the "icu" namespace. Consider adding U_NAMESPACE_BEGIN and U_NAMESPACE_END around the class and member definitions.
The locale data resource bundles use pool.res bundles (one per bundle tree) for sharing most of their resource table key strings. We should update the pool bundles once per release, or when we get new data from CLDR, or change the tree or key structure, to capture the changing set of key strings.
If there are new bundle trees that should use pool.res files (like the "unit" tree in ICU 54 ticket #11092), then first modify the data makefiles (Windows and Linux) to add the new pool.res to the appropriate file lists and initially add --writePoolBundle which at the end also needs to be turned into --usePoolBundle. Or, simpler, initially copy (svn cp) the parent tree's pool bundle, and update it later (maybe during release task work).
ICU Processes and Procedures > Throwing the Big Red Switch: How to ship ICU > Release & Milestone Tasks >