diff options
Diffstat (limited to 'Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt')
-rw-r--r-- | Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt | 102 |
1 files changed, 61 insertions, 41 deletions
diff --git a/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt b/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt index 93ba253d715..72821872e1c 100644 --- a/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt +++ b/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt @@ -138,24 +138,52 @@ export ICU4C_DIR=$HOME/icu-myfork/icu4c export ICU4J_ROOT=$HOME/icu-myfork/icu4j export TOOLS_ROOT=$HOME/icu-myfork/tools -# 2. Build and install the CLDR jar +# 1d. Directory for logs/notes (create if does not exist) -cd $TOOLS_ROOT/cldr -ant install-cldr-libs +export NOTES=...(some directory)... +mkdir -p $NOTES -See the $TOOLS_ROOT/cldr/lib/README.txt file for more information on the CLDR -jar and the install-cldr-jars.sh script. - -# 3. Configure ICU4C, build and test without new data first, to verify that +# 2a. Configure ICU4C, build and test without new data first, to verify that # there are no pre-existing errors. Here <platform> is the runConfigureICU # code for the platform you are building, e.g. Linux, MacOSX, Cygwin. +# (optionally build with debug enabled) cd $ICU4C_DIR/source -./runConfigureICU <platform> +./runConfigureICU [--enable-debug] <platform> make clean -make check 2>&1 | tee /tmp/icu4c-oldData-makeCheck.txt +make check 2>&1 | tee $NOTES/icu4c-oldData-makeCheck.txt + +# 2b. Now with ICU4J, build and test without new data first, to verify that +# there are no pre-existing errors (or at least to have the pre-existing errors +# as a base for comparison): + +cd $ICU4J_ROOT +ant clean +ant check 2>&1 | tee $NOTES/icu4j-oldData-antCheck.txt + +# 3. Make pre-adjustments as necessary +# 3a. Copy latest relevant CLDR dtds to ICU +cp -p $CLDR_DIR/common/dtd/ldml.dtd $ICU4C_DIR/source/data/dtd/cldr/common/dtd/ +cp -p $CLDR_DIR/common/dtd/ldmlICU.dtd $ICU4C_DIR/source/data/dtd/cldr/common/dtd/ + +# 3b. Update the cldr-icu tooling to use the latest tagged version of ICU +open $TOOLS_ROOT/cldr/cldr-to-icu/pom.xml +# search for icu4j-for-cldr and update to the latest tagged version per instructions + +# 3c. Update the build for any new icu version, added locales, etc. +open $TOOLS_ROOT/cldr/cldr-to-icu/build-icu-data.xml +# update icuVersion, icuDataVersion if necessary +# update lists of locales to include if necessary + +# 4. Build and install the CLDR jar -# 4a. Generate the CLDR production data. This process uses ant with ICU's +cd $TOOLS_ROOT/cldr +ant install-cldr-libs + +See the $TOOLS_ROOT/cldr/lib/README.txt file for more information on the CLDR +jar and the install-cldr-jars.sh script. + +# 5a. Generate the CLDR production data. This process uses ant with ICU's # data/build.xml # # Running "ant cleanprod" is necessary to clean out the production data directory @@ -167,9 +195,9 @@ make check 2>&1 | tee /tmp/icu4c-oldData-makeCheck.txt cd $ICU4C_DIR/source/data ant cleanprod ant setup -ant proddata 2>&1 | tee /tmp/cldr-newData-proddataLog.txt +ant proddata 2>&1 | tee $NOTES/cldr-newData-proddataLog.txt -# 4b. Build the new ICU4C data files; these include .txt files and .py files. +# 5b. Build the new ICU4C data files; these include .txt files and .py files. # These new files will replace whatever was already present in the ICU4C sources. # This process uses the LdmlConverter in $TOOLS_ROOT/cldr/cldr-to-icu/; # see $TOOLS_ROOT/cldr/cldr-to-icu/README.txt @@ -187,59 +215,58 @@ ant proddata 2>&1 | tee /tmp/cldr-newData-proddataLog.txt # build-icu-data.xml file, such as adding new locales etc. cd $TOOLS_ROOT/cldr/cldr-to-icu -ant -f build-icu-data.xml -DcldrDataDir="$CLDR_TMP_DIR/production" | tee /tmp/cldr-newData-builddataLog.txt +ant -f build-icu-data.xml -DcldrDataDir="$CLDR_TMP_DIR/production" | tee $NOTES/cldr-newData-builddataLog.txt -# 4c. Update the CLDR testData files needed by ICU4C and ICU4J tests, ensuring +# 5c. Update the CLDR testData files needed by ICU4C and ICU4J tests, ensuring # they're representative of the newest CLDR data. cd $TOOLS_ROOT/cldr ant copy-cldr-testdata -# 4d. Copy from CLDR common/testData/localeIdentifiers/localeCanonicalization.txt +# 5d. Copy from CLDR common/testData/localeIdentifiers/localeCanonicalization.txt # into icu4c/source/test/testdata/localeCanonicalization.txt # and icu4j/main/tests/core/src/com/ibm/icu/dev/data/unicode/localeCanonicalization.txt # and add the following line to the beginning of these two files # # File copied from cldr common/testData/localeIdentifiers/localeCanonicalization.txt -# 4e. For the time being, manually re-add the lstm entries in data/brkitr/root.txt - +# 5e. For the time being, manually re-add the lstm entries in data/brkitr/root.txt open $ICU4C_DIR/source/data/brkitr/root.txt -# paste the following block at the end, after the dictionaries block> +# paste the following block after the dictionaries block and before the final closing '}': lstm{ Thai{"Thai_graphclust_model4_heavy.res"} Mymr{"Burmese_graphclust_model5_heavy.res"} } -# 5. Check which data files have modifications, which have been added or removed +# 6. Check which data files have modifications, which have been added or removed # (if there are no changes, you may not need to proceed further). Make sure the # list seems reasonable. -cd $ICU4C_DIR/source/data +cd $ICU4C_DIR/.. git status -# 5a. You may also want to check which files were modified in CLDR production data: +# 6a. You may also want to check which files were modified in CLDR production data: cd $CLDR_TMP_DIR git status -# 6. Fix any errors, investigate any warnings. +# 7. Fix any errors, investigate any warnings. # # Fixing may entail modifying CLDR source data or TOOLS_ROOT config files or # tooling. -# 7. Now rebuild ICU4C with the new data and run make check tests. +# 8. Now rebuild ICU4C with the new data and run make check tests. # Again, keep a log so you can investigate the errors. cd $ICU4C_DIR/source -# 7a. If any files were added or removed (likely), re-run configure: -./runConfigureICU <platform> +# 8a. If any files were added or removed (likely), re-run configure: +./runConfigureICU [--enable-debug] <platform> make clean -# 7b. Now do the rebuild. -make check 2>&1 | tee /tmp/icu4c-newData-makeCheck.txt +# 8b. Now do the rebuild. +make check 2>&1 | tee $NOTES/icu4c-newData-makeCheck.txt -# 8. Investigate each test case failure. The first run processing new CLDR data +# 9. Investigate each test case failure. The first run processing new CLDR data # from the Survey Tool can result in thousands of failures (in many cases, one # CLDR data fix can resolve hundreds of test failures). If the error is caused # by bad CLDR data, then file a CLDR bug, fix the data, and regenerate from @@ -249,9 +276,9 @@ make check 2>&1 | tee /tmp/icu4c-newData-makeCheck.txt # Note that if the new data has any differences in structure, you will have to # update test/testdata/structLocale.txt or /tsutil/cldrtest/TestLocaleStructure # may fail. -# Repeat steps 4-7 until there are no errors. +# Repeat steps 4-8 until there are no errors. -# 9. You can also run the make check tests in exhaustive mode. As an alternative +# 10. You can also run the make check tests in exhaustive mode. As an alternative # you can run them as part of the pre-merge tests by adding the following as a # comment in the pull request: "/azp run CI-Exhaustive". You should do one or the # other; the exhaustive tests are *not* run automatically on each pull request, @@ -260,17 +287,10 @@ make check 2>&1 | tee /tmp/icu4c-newData-makeCheck.txt cd $ICU4C_DIR/source export INTLTEST_OPTS="-e" export CINTLTST_OPTS="-e" -make check 2>&1 | tee /tmp/icu4c-newData-makeCheckEx.txt - -# 10. Again, investigate each failure, fixing CLDR data or ICU test cases as -# appropriate, and repeating steps 4-7 and 9 until there are no errors. - -# 11. Now with ICU4J, build and test without new data first, to verify that -# there are no pre-existing errors (or at least to have the pre-existing errors -# as a base for comparison): +make check 2>&1 | tee $NOTES/icu4c-newData-makeCheckEx.txt -cd $ICU4J_ROOT -ant check 2>&1 | tee /tmp/icu4j-oldData-antCheck.txt +# 11. Again, investigate each failure, fixing CLDR data or ICU test cases as +# appropriate, and repeating steps 4-8 and 10 until there are no errors. # 12. Transfer the data to ICU4J: cd $ICU4C_DIR/source @@ -291,7 +311,7 @@ make icu4j-data-install # Keep a log so you can investigate the errors. cd $ICU4J_ROOT -ant check 2>&1 | tee /tmp/icu4j-newData-antCheck.txt +ant check 2>&1 | tee $NOTES/icu4j-newData-antCheck.txt # 14. Investigate test case failures; fix test cases and repeat from step 12, # or fix CLDR data and repeat from step 4, as appropriate, until there are no |