xref: /aosp_15_r20/external/cldr/CONTRIBUTING.md (revision 912701f9769bb47905792267661f0baf2b85bed5)
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![Commit Checks](./docs/img/commit-checks.png)
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![PR Checks](./docs/img/pr-checks.png)
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 &copy; 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