From f8b301f28235d42cf4967a56320b22523f253a9d Mon Sep 17 00:00:00 2001 From: Chris Pyle <118906070+chpy04@users.noreply.github.com> Date: Tue, 3 Sep 2024 11:42:20 -0400 Subject: [PATCH] CLDR-17566 Converting Dev P2 (#4008) --- .../updating-englishroot.md | 97 ++++++++++++++++++ .../documenting-cldr-tools.md | 46 +++++++++ docs/site/development/creating-the-archive.md | 61 +++++++++++ docs/site/development/running-tests.md | 49 +++++++++ .../images/development/creatingTheArchive.png | Bin 0 -> 35590 bytes 5 files changed, 253 insertions(+) create mode 100644 docs/site/development/cldr-development-site/updating-englishroot.md create mode 100644 docs/site/development/coding-cldr-tools/documenting-cldr-tools.md create mode 100644 docs/site/development/creating-the-archive.md create mode 100644 docs/site/development/running-tests.md create mode 100644 docs/site/images/development/creatingTheArchive.png diff --git a/docs/site/development/cldr-development-site/updating-englishroot.md b/docs/site/development/cldr-development-site/updating-englishroot.md new file mode 100644 index 00000000000..74e184e3da4 --- /dev/null +++ b/docs/site/development/cldr-development-site/updating-englishroot.md @@ -0,0 +1,97 @@ +--- +title: Updating English/Root +--- + +# Updating English/Root + +Whenever you update English or Root, there is one additional step that needs to be done for the vetting viewer and tests to work properly. + +Update CldrVersion.java to have the newest release in the list. + +## Run GenerateBirth + +The tool is in tools/java/org/unicode/cldr/tool/GenerateBirth.java. It requires a set of sources from all previous major CLDR release, trunk, and a generation directory. These three directories must be structured as follows. The tool takes environment parameters for the second two. + +**cldr (set with \-t \, default\=CldrUtility.BASE\_DIRECTORY, set with environment variable \-DCLDR\_DIR)** + +... common/ ... tools/ java/ (apps such as GenerateBirth are run from here) ... + +**CldrUtility.ARCHIVE\_DIRECTORY** + +1. Create the archive ([Creating the Archive](https://cldr.unicode.org/development/creating-the-archive)) with all releases (if you don't have it already) +2. The archive directory should have the latest version of every major and minor version (where versions before 21\.0 have the major version split across the top two fields). +3. You will probably need to modify both CldrVersion.java and ToolConstants.java to bring them up to date. + +**log (set with \-l \, default\=CldrUtility.UTIL\_DATA\_DIR, set with CLDR\_DIR** + +Pass an argument for \-t to specify the output directory. Takes a few minutes to run (and make sure you have set Java with enough memory)! + +The tool generates (among other things) the following two binary files (among others) in the output directory specified with \-t: + +- **outdated.data** +- **outdatedEnglish.data** + +Replacing the previous versions in /cldr/tools/java/org/unicode/cldr/util/data/births/. These files are used to support OutdatedPaths.java, which is used in CheckNew. + +Readable data is found in https://github.com/unicode\-org/cldr\-staging/tree/master/births/\* That should also be checked in, for comparison over time. Easiest to read if you paste into a spreadsheet! + +## Binary File Format + +| outdatedEnglish.data | outdated.data | +|---|---| +| **int:size** | **str:locale** | +| long:pathId str:oldValue | **int:size** | +| long:pathId str:oldValue | long:pathId | +| ... | long:pathId | +| | ... | +| | **str:locale** | +| | **int:size** | +| | long:pathId | +| | long:pathId | +| | ... | +| **\$END\$** | **\$END\$** | +| ~50KB | ~100KB | + +In a limited release, the file **SubmissionLocales.java** is set up to allow just certain locales and paths in those locales. + +## Testing + +Make sure TestOutdatedPaths.java passes. It may take some modifications, since it depends on the exact data. + +Run TestCheckCLDR and TestBasic with the option **\-prop:logKnownIssue\=false** (that option is important!). This checks that the Limited Submission is set up properly and that SubmissionLocales are correct. + + + +If you run into any problems, look below at debugging. + +**Check in the files** + +Eg https://github.com/unicode-org/cldr/pull/243 + +## Debugging + +It also generates readable log files for double checking. These will be in {workspace}/cldr\-aux/births/\/, that is: CLDRPaths.AUX\_DIRECTORY \+ "births/" \+ trunkVersion. Examples: https://unicode.org/repos/cldr-aux/births/35.0/en.txt, https://unicode.org/repos/cldr-aux/births/35.0/fr.txt. + +Their format is the following (TSV \= tab\-delimited\-values) — to view, it is probably easier to copy the files into a spreadsheet. + +- English doesn't have the E... values, but is a complete record. +- Other languages only have lines where the English value is more recently changed (younger) than the native’s. +- So what the first line below says is that French has "bengali" dating back to version 1\.1\.1, while English has "Bangla" dating back to version 30\. + +| Loc | Version | Value | PrevValue | EVersion | EValue | EPrevValue | Path | +|---|:---:|---|---|:---:|---|---|---| +| fr | 1.1.1 | bengali | � | 30 | Bangla | Bengali | //ldml/localeDisplayNames/languages/language[@type="bn"] | +| fr | 1.1.1 | galicien | � | 1.4.1 | Galician | Gallegan | //ldml/localeDisplayNames/languages/language[@type="gl"] | +| fr | 1.1.1 | kirghize | � | 24 | Kyrgyz | Kirghiz | //ldml/localeDisplayNames/languages/language[@type="ky"] | +| fr | 1.1.1 | ndébélé du Nord | � | 1.3 | North Ndebele | Ndebele, North | //ldml/localeDisplayNames/languages/language[@type="nd"] | +| fr | 1.1.1 | ndébélé du Sud | � | 1.3 | South Ndebele | Ndebele, South | //ldml/localeDisplayNames/languages/language[@type="nr"] | +| ... | | | | | | | | +| fr | 34 | exclamation \| point d’exclamation blanc \| ponctuation | exclamation \| point d’exclamation blanc | trunk | ! \| exclamation \| mark \| outlined \| punctuation \| white exclamation mark | exclamation \| mark \| outlined \| punctuation \| white exclamation mark | //ldml/annotations/annotation[@cp="❕"] | +| fr | 34 | exclamation \| point d’exclamation \| ponctuation | exclamation \| point d’exclamation | trunk | ! \| exclamation \| mark \| punctuation | exclamation \| mark \| punctuation | //ldml/annotations/annotation[@cp="❗"] | +| fr | 34 | cœur \| cœur point d’exclamation \| exclamation \| ponctuation | cœur \| cœur point d’exclamation | trunk | exclamation \| heart exclamation \| mark \| punctuation | exclamation \| heavy heart exclamation \| mark \| punctuation | //ldml/annotations/annotation[@cp="❣"] | +| fr | 34 | couple \| deux hommes se tenant la main \| hommes \| jumeaux | couple \| deux hommes se tenant la main \| jumeaux | trunk | couple \| Gemini \| man \| twins \| men \| holding hands \| zodiac | couple \| Gemini \| man \| twins \| two men holding hands \| zodiac | //ldml/annotations/annotation[@cp="👬"] | +| fr | 34 | couple \| deux femmes se tenant la main \| femmes \| jumelles | couple \| deux femmes se tenant la main \| jumelles | trunk | couple \| hand \| holding hands \| women | couple \| hand \| two women holding hands \| woman | //ldml/annotations/annotation[@cp="👭"] | + +A value of � indicates that there is no value for that version. + +![Unicode copyright](https://www.unicode.org/img/hb_notice.gif) \ No newline at end of file diff --git a/docs/site/development/coding-cldr-tools/documenting-cldr-tools.md b/docs/site/development/coding-cldr-tools/documenting-cldr-tools.md new file mode 100644 index 00000000000..d206f6cbc8f --- /dev/null +++ b/docs/site/development/coding-cldr-tools/documenting-cldr-tools.md @@ -0,0 +1,46 @@ +--- +title: Documenting CLDR Tools +--- + +# Documenting CLDR Tools + +*Developers: Make sure your tool is easily accessible from the command line.* + +You can add the @CLDRTool annotation to any class in cldr\-code that has a main() function, and it will be documented as part of the JAR cldr\-code.jar is used. + +See [CLDR Tools](https://cldr.unicode.org/development/cldr-tools) for general information about obtaining and using CLDR tools. + +## Coding it + +An example from ConsoleCheckCLDR.java will start us out here + +  @CLDRTool(alias \= "check", + +  description \= "Run CheckCLDR against CLDR data") + +  public class ConsoleCheckCLDR { … + +Then, calling ```java -jar cldr-tools.jar -l``` produces: + +  *check \- Run CheckCLDR against CLDR data* + +  *\* + +  *\= org.unicode.cldr.test.ConsoleCheckCLDR* + +And then ```java -jar cldr-tools.jar check``` can be used to run this tool. All additional arguments after "check" are passed to **ConsoleCheckCLDR.main()** as arguments. + +Note these annotation parameters. Only "alias" is required. + +- **alias** \- used from the command line instead of the full class name. Also forms part of the default URL for documentation. +- **description** \- a short description of the tool. + +Additional parameters: + +- **url** \- you can specify a custom URL for the tool. This is displayed with the listing. +- **hidden** \- if non\-empty, this specifies a reason to *not* show the tool when running "java \-jar" without "\-l". For example, the main() function may be a less\-useful internal tool, or a test. +## Documenting it + +Assuming your tools’s alias is *myalias,* create a new subpage with the URL http://cldr.unicode.org/tools/myalias (a subpage of [CLDR Tools](https://cldr.unicode.org/development/cldr-tools)). Fill this page out with information about how to use your tool. + +![Unicode copyright](https://www.unicode.org/img/hb_notice.gif) \ No newline at end of file diff --git a/docs/site/development/creating-the-archive.md b/docs/site/development/creating-the-archive.md new file mode 100644 index 00000000000..8909967950c --- /dev/null +++ b/docs/site/development/creating-the-archive.md @@ -0,0 +1,61 @@ +--- +title: Checking out the CLDR Archive +--- + +# Checking out the CLDR Archive + +A number of the tools in CLDR depend on access to older versions. These tools include: + +- [Generating Charts](https://cldr.unicode.org/development/cldr-big-red-switch/generating-charts) +- [Update Validity XML](https://cldr.unicode.org/development/updating-codes/update-validity-xml) +- [Updating English/Root](https://cldr.unicode.org/development/cldr-development-site/updating-englishroot) + - \[Note: add others when we find them] + - Some tests + - TestCompatibility.java + - TestTransforms.java + - TestValidity.java + - Some other tools (typically when given a version argument on the command line) + - FindPluralDifferences + - ... + +### Here's how to do that. + +1. Create an archive directory **cldr\-archive**. The Simplest is if it on the same level as your local CLDR repository. In other words, if your [CLDR\_DIR](https://cldr.unicode.org/development/cldr-development-site/running-cldr-tools) is .../workspace/cldr, then create the directory  **…/workspace/cldr\-archive**
+(Note: The Java property **ARCHIVE** can be used to overide the path to cldr\-archive). +2. Open up ToolConstants.java and look at ToolConstants.CLDR\_VERSIONS. You'll see something like: + 1. **public static final** List\ ***CLDR\_VERSIONS*** \= ImmutableList.of( + 2. "1\.1\.1", + 3. "1\.2", + 4. "1\.3", + 5. "1\.4\.1", + 6. "1\.5\.1", + 7. "1\.6\.1", + 8. "1\.7\.2", + 9. "1\.8\.1", + 10. ... + 11. "41\.0" + 12. // add to this once the release is final! + 13. ); + - NOTE: this should also match CldrVersion.java (those two need to be merged together) +3. Add the just\-released version, such as "**42\.0**" to the list  above + - Also update **DEV\_VERSION** to "43" (the next development version) + - Finally, update CldrVersion.java and make similar changes. +4. Now, run the tool **org.unicode.cldr.tool.CheckoutArchive** + - Or from the command line:
+ **mvn \-DCLDR\_DIR\=** *path\_to/cldr* **\-\-file\=tools/pom.xml \-pl cldr\-code compile \-DskipTests\=true exec:java \-Dexec.mainClass\=org.unicode.cldr.tool.CheckoutArchive  \-Dexec.args\=""** + - Note other options for this tool: +   *\-\-help* will give help +   *\-\-prune* will run a 'git workspace prune' before proceeding +   *\-\-echo* will just show the commands that would be run, without running anything + (For example,  **\-Dexec.args\="\-\-prune"** in the above command line) + +The end result (where you need all of the releases) looks something like the following: + +![alt-text](../images/development/creatingTheArchive.png) + +## Advanced Configuration + +- You can set the property  **\-DCLDR\_ARCHIVE** to point to a different parent directory for the archive +- You can set **\-DCLDR\_HAS\_ARCHIVE\=false** to tell unit tests and tools not to look for the archive + +![Unicode copyright](https://www.unicode.org/img/hb_notice.gif) \ No newline at end of file diff --git a/docs/site/development/running-tests.md b/docs/site/development/running-tests.md new file mode 100644 index 00000000000..42bd0b31e9b --- /dev/null +++ b/docs/site/development/running-tests.md @@ -0,0 +1,49 @@ +--- +title: Running Tests +--- + +# Running Tests + +You will always need to run tests when you do a check\-in. + +1. Preconditions + - If you change the DTD, be sure to read and follow [Updating DTDs](https://cldr.unicode.org/development/updating-dtds) first. + - If you added a new feature or fixed a significant bug, add a unit test for it. + - See unittest/NumberingSystemsTest as an example. + - Remember to add to unittest/TestAll +2. Run **TestAll \-e** + - These are the unit tests in exhaustive mode + - If you are doing something you know to be simple, you could do the shorter run of just **TestAll** +3. Run **ConsoleCheckCLDR \-e \-z final\_testing \-S common,seed** + - This runs the same set of test that the Survey Tool does. + - If you know what you are doing, you can run a set of filtered tests. +4. Other tests + 1. The unit tests are not complete, so you get a better workout if you are doing anything fancy by running: + 2. [**NewLdml2IcuConverter**](https://cldr.unicode.org/development/coding-cldr-tools/newldml2icuconverter) + 3. [**Generating Charts**](https://cldr.unicode.org/development/cldr-big-red-switch/generating-charts) + 1. If you have interesting new data, write a chart for it. See subclasses of Chart.java for examples. + +## Running tests on the command line + +```bash +$ export CLDR_DIR=/path/to/svn/root/for/cldr + +$ cd $CLDR_DIR/tools/java && ant all + +$ cd $CLDR_DIR/tools/cldr-unittest && ant unittestExhaustive datacheck +``` + +\[TODO: add more commands here; can't we automate all this into a single build rule for ant?] TODO: [TODOL ticket:8864](http://unicode.org/cldr/trac/ticket/8864) + +## Debugging + +\[TODO: add more tips here] + +### Regexes + +We use a lot of regexes! + +1. There is org.unicode.cldr.util.RegexUtilities.showMismatch (and related methods) that are really useful in debugging cases where regexes fail. You hand it a pattern or matcher and a string, and it shows how far the regex got before it failed. +2. To debug RegexLookup, there is a special call you can make where you pass in a set. On return, that set is filled with a set of strings showing how far each of the regex patterns progressed. You can thus see why a string didn't match as expected. + +![Unicode copyright](https://www.unicode.org/img/hb_notice.gif) \ No newline at end of file diff --git a/docs/site/images/development/creatingTheArchive.png b/docs/site/images/development/creatingTheArchive.png new file mode 100644 index 0000000000000000000000000000000000000000..1a6a51a89199414c912f11318bcf4d8108d0f557 GIT binary patch literal 35590 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