1*912701f9SAndroid Build Coastguard Worker# Contributing to CLDR 2*912701f9SAndroid Build Coastguard Worker 3*912701f9SAndroid Build Coastguard Worker## Overview 4*912701f9SAndroid Build Coastguard Worker 5*912701f9SAndroid Build Coastguard WorkerThe CLDR project consists of 3 aspects: 6*912701f9SAndroid Build Coastguard Worker 7*912701f9SAndroid Build Coastguard Worker1. **Data:** We rely on contributions by native language speakers that are most commonly used currently in the given country/region. Most data is collected through the Survey Tool. See [How to contribute][]. 8*912701f9SAndroid Build Coastguard Worker - If you are not a native language speaker, but have evidence of CLDR data being incorrect, file a [Jira][] ticket to report the issue. 9*912701f9SAndroid Build Coastguard Worker - For data that is not collected in the [Survey Tool], such as [supplemental data][], file a [Jira][] ticket and provide evidence for changing the data. 10*912701f9SAndroid Build Coastguard Worker2. **Internationalization structure:** Requires a ticket to be changed. 11*912701f9SAndroid Build Coastguard Worker - For structural issues, note that many issues may be due to misunderstandings of the LDML spec. For example, `<pattern>¤#,##0.00</pattern>` has a specialized format where each character represents a special function. 12*912701f9SAndroid Build Coastguard Worker - File a [Jira][] ticket and provide evidence for the spec issues or to establish a new structure. 13*912701f9SAndroid Build Coastguard Worker - If your organization is not a [Unicode member][], consider becoming a member and work as a CLDR technical committee member. 14*912701f9SAndroid Build Coastguard Worker3. **CLDR internal tooling** such as adding new tests or fixing tooling that enable CLDR builds and releases. See [CLDR Developer][] introduction. 15*912701f9SAndroid Build Coastguard Worker - To contribute in internal tooling, [Contact][] us. 16*912701f9SAndroid Build Coastguard Worker - See [Tools source][] and [Repository Organization][] 17*912701f9SAndroid Build Coastguard Worker 18*912701f9SAndroid Build Coastguard Worker### Areas where contributions are welcome 19*912701f9SAndroid Build Coastguard Worker 20*912701f9SAndroid Build Coastguard Worker- `cldr-apps/`: (Survey Tool). 21*912701f9SAndroid Build Coastguard Worker Improvements here include: 22*912701f9SAndroid Build Coastguard Worker - UI: performance improvements, visual and functional refinements 23*912701f9SAndroid Build Coastguard Worker - Additional checks (CheckCLDR) to validate CLDR data. 24*912701f9SAndroid Build Coastguard Worker- `java/`: The core CLDR tooling. 25*912701f9SAndroid Build Coastguard Worker Improvements could include: 26*912701f9SAndroid Build Coastguard Worker - better documentation around code components 27*912701f9SAndroid Build Coastguard Worker - updates to use newer/different library dependencies 28*912701f9SAndroid Build Coastguard Worker - writing unit tests to improve code coverage 29*912701f9SAndroid Build Coastguard Worker - better documentation around command line tools 30*912701f9SAndroid Build Coastguard Worker 31*912701f9SAndroid Build Coastguard Worker## Requirements for merged PRs 32*912701f9SAndroid Build Coastguard Worker 33*912701f9SAndroid Build Coastguard WorkerFor all PRs these steps are required before the PR is merged: 34*912701f9SAndroid Build Coastguard Worker 35*912701f9SAndroid Build Coastguard Worker- The PR and commits must reference a [Jira][] ticket which has been accepted by the CLDR-TC. Open a ticket if there is not already a relevant one open. 36*912701f9SAndroid Build Coastguard Worker- A Contributor License Agreement (CLA) must be signed. For more information, see [Contributor License Agreement](#contributor-license-agreement), below. 37*912701f9SAndroid Build Coastguard Worker- All tests must pass (See below) 38*912701f9SAndroid Build Coastguard Worker- The PR must be reviewed by a TC member. 39*912701f9SAndroid Build Coastguard Worker- The PR should have a single commit, and the first line of the commit must 40*912701f9SAndroid Build Coastguard Workerbegin with the accepted Jira ticket number. 41*912701f9SAndroid Build Coastguard Worker 42*912701f9SAndroid Build Coastguard Worker### Sample commit message 43*912701f9SAndroid Build Coastguard Worker 44*912701f9SAndroid Build Coastguard Worker CLDR-0000 Brief Description of Change 45*912701f9SAndroid Build Coastguard Worker 46*912701f9SAndroid Build Coastguard Worker Optionally, this is the first line of an extended description, 47*912701f9SAndroid Build Coastguard Worker after the blank line. 48*912701f9SAndroid Build Coastguard Worker - Here is an item 49*912701f9SAndroid Build Coastguard Worker - Here is another item 50*912701f9SAndroid Build Coastguard Worker 51*912701f9SAndroid Build Coastguard Worker## Contributor License Agreement 52*912701f9SAndroid Build Coastguard Worker 53*912701f9SAndroid Build Coastguard WorkerIn order to contribute to this project, the Unicode Consortium must have on file a Contributor License Agreement (CLA) covering your contributions, either an individual or a corporate CLA. Pull Requests, issues, and other contributions will not be merged/accepted until the correct CLA is signed. Which version needs to be signed depends on who owns the contribution being made: you as the individual making the contribution or your employer. **It is your responsibility to determine whether your contribution is owned by your employer.** Please review the [Unicode Intellectual Property, Licensing, & Technical Contribution Policy][policies] for further guidance on which CLA to sign, as well as other information and guidelines regarding the Consortium’s licensing and technical contribution policies and procedures. 54*912701f9SAndroid Build Coastguard Worker 55*912701f9SAndroid Build Coastguard WorkerTo sign the CLA in Github, open a Pull Request (a comment will be automatically added with a link to the CLA Form), or go directly to [the CLA Form][sign-cla]. You may need to sign in to Github to see the entire CLA Form. 56*912701f9SAndroid Build Coastguard Worker 57*912701f9SAndroid Build Coastguard Worker- **Individual CLA**: If you have determined that the Individual CLA is appropriate, then when you access the CLA Form, click the Individual CLA and complete the Form. 58*912701f9SAndroid Build Coastguard Worker 59*912701f9SAndroid Build Coastguard Worker- **Corporate CLA**: If you have determined that a Corporate CLA is appropriate, please first check the [public list of Corporate CLAs][unicode-corporate-clas] that the Consortium has on file. If your employer is listed, then when you access the CLA Form, you can click the box indicating that you are covered by your employer’s corporate CLA. If your employer is not on the list, then it has not already signed a CLA and you will need to arrange for your employer to do so before you contribute, as described in [How to Sign a Unicode CLA][signing]. 60*912701f9SAndroid Build Coastguard Worker 61*912701f9SAndroid Build Coastguard WorkerUnless otherwise noted in the [`LICENSE`](./LICENSE) file, this project is released under the [OSI-approved][osi-Unicode-License-3.0] free and open-source [Unicode License v3][unicode-license]. 62*912701f9SAndroid Build Coastguard Worker 63*912701f9SAndroid Build Coastguard Worker## Building 64*912701f9SAndroid Build Coastguard Worker 65*912701f9SAndroid Build Coastguard WorkerFor setup details, see [Maven Setup][]. 66*912701f9SAndroid Build Coastguard WorkerBuilds are done with Maven: 67*912701f9SAndroid Build Coastguard Worker 68*912701f9SAndroid Build Coastguard Worker``` 69*912701f9SAndroid Build Coastguard Workermvn test --file=tools/pom.xml 70*912701f9SAndroid Build Coastguard Worker``` 71*912701f9SAndroid Build Coastguard Worker 72*912701f9SAndroid Build Coastguard Worker## Tests 73*912701f9SAndroid Build Coastguard Worker 74*912701f9SAndroid Build Coastguard WorkerFor more detail, and how to run the tests locally, see [Running Tests][] on the CLDR development site. 75*912701f9SAndroid Build Coastguard Worker 76*912701f9SAndroid Build Coastguard Worker### Automatic Test Runs 77*912701f9SAndroid Build Coastguard Worker 78*912701f9SAndroid Build Coastguard WorkerTests are automatically run once a commit is pushed to GitHub and when a PR is opened requesting changes to CLDR. You will see the status check next to each commit's hash, it will show as a circle, x, or checkmark. (●✖✔). For GitHub documentation, see [About Status Checks][]. You can click on these indicators anywhere they appear for more details. 79*912701f9SAndroid Build Coastguard Worker 80*912701f9SAndroid Build Coastguard WorkerBriefly: 81*912701f9SAndroid Build Coastguard Worker 82*912701f9SAndroid Build Coastguard Worker- ● An orange circle indicates that information is not available yet, such as a test that is still running or has not started yet. 83*912701f9SAndroid Build Coastguard Worker- ✖ A red X indicates a failure or a warning. Depending on the type of issue, merging might be blocked. 84*912701f9SAndroid Build Coastguard Worker- ✔ A green checkmark indicates success. 85*912701f9SAndroid Build Coastguard Worker 86*912701f9SAndroid Build Coastguard Worker 87*912701f9SAndroid Build Coastguard Worker 88*912701f9SAndroid Build Coastguard WorkerSimilarly, in a PR, certain checks are marked as “Required.” All required checks must succeed before merging is allowed. 89*912701f9SAndroid Build Coastguard Worker 90*912701f9SAndroid Build Coastguard Worker 91*912701f9SAndroid Build Coastguard Worker 92*912701f9SAndroid Build Coastguard WorkerIf a test or status check does not pass, see [Running Tests][] on the CLDR development site. 93*912701f9SAndroid Build Coastguard Worker 94*912701f9SAndroid Build Coastguard Worker## Copyright 95*912701f9SAndroid Build Coastguard Worker 96*912701f9SAndroid Build Coastguard WorkerCopyright © 1991-2024 Unicode, Inc. 97*912701f9SAndroid Build Coastguard WorkerAll rights reserved. [Terms of use][] 98*912701f9SAndroid Build Coastguard Worker 99*912701f9SAndroid Build Coastguard Worker[Survey Tool]: https://cldr.unicode.org/index/survey-tool 100*912701f9SAndroid Build Coastguard Worker[Terms of use]: https://www.unicode.org/copyright.html 101*912701f9SAndroid Build Coastguard Worker[Jira]: https://github.com/unicode-org/cldr/blob/main/docs/requesting_changes.md 102*912701f9SAndroid Build Coastguard Worker[Tools source]: https://github.com/unicode-org/cldr/tree/main/tools 103*912701f9SAndroid Build Coastguard Worker[Maven setup]: https://cldr.unicode.org/development/maven 104*912701f9SAndroid Build Coastguard Worker[Repository Organization]: https://cldr.unicode.org/index/downloads#h.lf1z45b9du36 105*912701f9SAndroid Build Coastguard Worker[How to contribute]: https://cldr.unicode.org/#h.vw32p8sealpj 106*912701f9SAndroid Build Coastguard Worker[Unicode member]: https://home.unicode.org/membership/why-join/ 107*912701f9SAndroid Build Coastguard Worker[supplemental data]: https://github.com/unicode-org/cldr/tree/main/common/supplemental 108*912701f9SAndroid Build Coastguard Worker[About Status Checks]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-status-checks 109*912701f9SAndroid Build Coastguard Worker[Running Tests]: https://cldr.unicode.org/development/cldr-development-site/running-tests 110*912701f9SAndroid Build Coastguard Worker[policies]: https://www.unicode.org/policies/licensing_policy.html 111*912701f9SAndroid Build Coastguard Worker[unicode-corporate-clas]: https://www.unicode.org/policies/corporate-cla-list/ 112*912701f9SAndroid Build Coastguard Worker[signing]: https://www.unicode.org/policies/licensing_policy.html#signing 113*912701f9SAndroid Build Coastguard Worker[sign-cla]: https://cla-assistant.io/unicode-org/.github 114*912701f9SAndroid Build Coastguard Worker[osi-Unicode-License-3.0]: https://opensource.org/license/unicode-license-v3/ 115*912701f9SAndroid Build Coastguard Worker[unicode-license]: https://www.unicode.org/license.txt 116