blob: bf91cf2f3f69193454c1fe7a6ced18742702e421 [file] [log] [blame]
This directory contains tools for ICU updates.
Data update tools
=================
update-tzdata.py
- downloads tzdata updates and regenerates the ICU and
libcore/bionic timezone data files.
There are sometimes code and metadata changes associated
with tzdata updates that should be applied at the same time.
e.g. see http://bugs.icu-project.org/trac/search?q=2015d
ICU and CTS tests for bionic / libcore should be run before
and after.
updateicudata.py
- regerates the ICU data files.
ICU and CTS tests for libcore should be run before and
after.
Source code updates
===================
The source code in android_icu4j is generated from the code in icu4j. Do not change the code
in android_icu4j directly: instead you change the icu4j source or the rules used to generate
android_icu4j.
All changes made to icu4j should be accompanied by changes in android_icu4j and vice versa.
Applying patches to ICU4J
-------------------------
After making changes to icu4j (e.g. after applying upstream patches):
source build/envsetup.sh
lunch
cd external/icu/tools/srcgen
./generate_android_icu4j.sh
The code in android_icu4j will be regenerated and should contain the changes you made
in icu4j. Confirm the diffs are what you intended. Commit both at the same time.
Modifying the code gen
----------------------
android_icu4j is generated using a Java tool found in tools/srcgen.
The "rules" that transform the source are configured in
src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java.