xref: /aosp_15_r20/external/apache-commons-lang/CONTRIBUTING.md (revision 455610af95f3bf5f4bc8a9eda520f57e389a4c42)
1*455610afSAndroid Build Coastguard Worker<!---
2*455610afSAndroid Build Coastguard Worker Licensed to the Apache Software Foundation (ASF) under one or more
3*455610afSAndroid Build Coastguard Worker contributor license agreements.  See the NOTICE file distributed with
4*455610afSAndroid Build Coastguard Worker this work for additional information regarding copyright ownership.
5*455610afSAndroid Build Coastguard Worker The ASF licenses this file to You under the Apache License, Version 2.0
6*455610afSAndroid Build Coastguard Worker (the "License"); you may not use this file except in compliance with
7*455610afSAndroid Build Coastguard Worker the License.  You may obtain a copy of the License at
8*455610afSAndroid Build Coastguard Worker
9*455610afSAndroid Build Coastguard Worker      http://www.apache.org/licenses/LICENSE-2.0
10*455610afSAndroid Build Coastguard Worker
11*455610afSAndroid Build Coastguard Worker Unless required by applicable law or agreed to in writing, software
12*455610afSAndroid Build Coastguard Worker distributed under the License is distributed on an "AS IS" BASIS,
13*455610afSAndroid Build Coastguard Worker WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*455610afSAndroid Build Coastguard Worker See the License for the specific language governing permissions and
15*455610afSAndroid Build Coastguard Worker limitations under the License.
16*455610afSAndroid Build Coastguard Worker-->
17*455610afSAndroid Build Coastguard Worker<!---
18*455610afSAndroid Build Coastguard Worker +======================================================================+
19*455610afSAndroid Build Coastguard Worker |****                                                              ****|
20*455610afSAndroid Build Coastguard Worker |****      THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN      ****|
21*455610afSAndroid Build Coastguard Worker |****                    DO NOT EDIT DIRECTLY                      ****|
22*455610afSAndroid Build Coastguard Worker |****                                                              ****|
23*455610afSAndroid Build Coastguard Worker +======================================================================+
24*455610afSAndroid Build Coastguard Worker | TEMPLATE FILE: contributing-md-template.md                           |
25*455610afSAndroid Build Coastguard Worker | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
26*455610afSAndroid Build Coastguard Worker +======================================================================+
27*455610afSAndroid Build Coastguard Worker |                                                                      |
28*455610afSAndroid Build Coastguard Worker | 1) Re-generate using: mvn commons-build:contributing-md              |
29*455610afSAndroid Build Coastguard Worker |                                                                      |
30*455610afSAndroid Build Coastguard Worker | 2) Set the following properties in the component's pom:              |
31*455610afSAndroid Build Coastguard Worker |    - commons.jira.id  (required, alphabetic, upper case)             |
32*455610afSAndroid Build Coastguard Worker |                                                                      |
33*455610afSAndroid Build Coastguard Worker | 3) Example Properties                                                |
34*455610afSAndroid Build Coastguard Worker |                                                                      |
35*455610afSAndroid Build Coastguard Worker |  <properties>                                                        |
36*455610afSAndroid Build Coastguard Worker |    <commons.jira.id>MATH</commons.jira.id>                           |
37*455610afSAndroid Build Coastguard Worker |  </properties>                                                       |
38*455610afSAndroid Build Coastguard Worker |                                                                      |
39*455610afSAndroid Build Coastguard Worker +======================================================================+
40*455610afSAndroid Build Coastguard Worker--->
41*455610afSAndroid Build Coastguard WorkerContributing to Apache Commons Lang
42*455610afSAndroid Build Coastguard Worker======================
43*455610afSAndroid Build Coastguard Worker
44*455610afSAndroid Build Coastguard WorkerYou have found a bug or you have an idea for a cool new feature? Contributing code is a great way to give something back to
45*455610afSAndroid Build Coastguard Workerthe open source community. Before you dig right into the code there are a few guidelines that we need contributors to
46*455610afSAndroid Build Coastguard Workerfollow so that we can have a chance of keeping on top of things.
47*455610afSAndroid Build Coastguard Worker
48*455610afSAndroid Build Coastguard WorkerGetting Started
49*455610afSAndroid Build Coastguard Worker---------------
50*455610afSAndroid Build Coastguard Worker
51*455610afSAndroid Build Coastguard Worker+ Make sure you have a [JIRA account](https://issues.apache.org/jira/).
52*455610afSAndroid Build Coastguard Worker+ Make sure you have a [GitHub account](https://github.com/signup/free).
53*455610afSAndroid Build Coastguard Worker+ If you're planning to implement a new feature it makes sense to discuss your changes on the [dev list](https://commons.apache.org/mail-lists.html) first. This way you can make sure you're not wasting your time on something that isn't considered to be in Apache Commons Lang's scope.
54*455610afSAndroid Build Coastguard Worker+ Submit a [Jira Ticket][jira] for your issue, assuming one does not already exist.
55*455610afSAndroid Build Coastguard Worker  + Clearly describe the issue including steps to reproduce when it is a bug.
56*455610afSAndroid Build Coastguard Worker  + Make sure you fill in the earliest version that you know has the issue.
57*455610afSAndroid Build Coastguard Worker+ Find the corresponding [repository on GitHub](https://github.com/apache/?query=commons-),
58*455610afSAndroid Build Coastguard Worker[fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) and check out your forked repository.
59*455610afSAndroid Build Coastguard Worker
60*455610afSAndroid Build Coastguard WorkerMaking Changes
61*455610afSAndroid Build Coastguard Worker--------------
62*455610afSAndroid Build Coastguard Worker
63*455610afSAndroid Build Coastguard Worker+ Create a _topic branch_ for your isolated work.
64*455610afSAndroid Build Coastguard Worker  * Usually you should base your branch on the `master` branch.
65*455610afSAndroid Build Coastguard Worker  * A good topic branch name can be the JIRA bug id plus a keyword, e.g. `LANG-123-InputStream`.
66*455610afSAndroid Build Coastguard Worker  * If you have submitted multiple JIRA issues, try to maintain separate branches and pull requests.
67*455610afSAndroid Build Coastguard Worker+ Make commits of logical units.
68*455610afSAndroid Build Coastguard Worker  * Make sure your commit messages are meaningful and in the proper format. Your commit message should contain the key of the JIRA issue.
69*455610afSAndroid Build Coastguard Worker  * e.g. `LANG-123: Close input stream earlier`
70*455610afSAndroid Build Coastguard Worker+ Respect the original code style:
71*455610afSAndroid Build Coastguard Worker  + Only use spaces for indentation.
72*455610afSAndroid Build Coastguard Worker  + Create minimal diffs - disable _On Save_ actions like _Reformat Source Code_ or _Organize Imports_. If you feel the source code should be reformatted create a separate PR for this change first.
73*455610afSAndroid Build Coastguard Worker  + Check for unnecessary whitespace with `git diff` -- check before committing.
74*455610afSAndroid Build Coastguard Worker+ Make sure you have added the necessary tests for your changes, typically in `src/test/java`.
75*455610afSAndroid Build Coastguard Worker+ Run all the tests with `mvn clean verify` to assure nothing else was accidentally broken.
76*455610afSAndroid Build Coastguard Worker
77*455610afSAndroid Build Coastguard WorkerMaking Trivial Changes
78*455610afSAndroid Build Coastguard Worker----------------------
79*455610afSAndroid Build Coastguard Worker
80*455610afSAndroid Build Coastguard WorkerThe JIRA tickets are used to generate the changelog for the next release.
81*455610afSAndroid Build Coastguard Worker
82*455610afSAndroid Build Coastguard WorkerFor changes of a trivial nature to comments and documentation, it is not always necessary to create a new ticket in JIRA.
83*455610afSAndroid Build Coastguard WorkerIn this case, it is appropriate to start the first line of a commit with '(doc)' instead of a ticket number.
84*455610afSAndroid Build Coastguard Worker
85*455610afSAndroid Build Coastguard Worker
86*455610afSAndroid Build Coastguard WorkerSubmitting Changes
87*455610afSAndroid Build Coastguard Worker------------------
88*455610afSAndroid Build Coastguard Worker
89*455610afSAndroid Build Coastguard Worker+ Sign and submit the Apache [Contributor License Agreement][cla] if you haven't already.
90*455610afSAndroid Build Coastguard Worker  * Note that small patches & typical bug fixes do not require a CLA as
91*455610afSAndroid Build Coastguard Worker    clause 5 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0.html#contributions)
92*455610afSAndroid Build Coastguard Worker    covers them.
93*455610afSAndroid Build Coastguard Worker+ Push your changes to a topic branch in your fork of the repository.
94*455610afSAndroid Build Coastguard Worker+ Submit a _Pull Request_ to the corresponding repository in the `apache` organization.
95*455610afSAndroid Build Coastguard Worker  * Verify _Files Changed_ shows only your intended changes and does not
96*455610afSAndroid Build Coastguard Worker  include additional files like `target/*.class`
97*455610afSAndroid Build Coastguard Worker+ Update your JIRA ticket and include a link to the pull request in the ticket.
98*455610afSAndroid Build Coastguard Worker
99*455610afSAndroid Build Coastguard WorkerIf you prefer to not use GitHub, then you can instead use
100*455610afSAndroid Build Coastguard Worker`git format-patch` (or `svn diff`) and attach the patch file to the JIRA issue.
101*455610afSAndroid Build Coastguard Worker
102*455610afSAndroid Build Coastguard Worker
103*455610afSAndroid Build Coastguard WorkerAdditional Resources
104*455610afSAndroid Build Coastguard Worker--------------------
105*455610afSAndroid Build Coastguard Worker
106*455610afSAndroid Build Coastguard Worker+ [Contributing patches](https://commons.apache.org/patches.html)
107*455610afSAndroid Build Coastguard Worker+ [Apache Commons Lang JIRA project page][jira]
108*455610afSAndroid Build Coastguard Worker+ [Contributor License Agreement][cla]
109*455610afSAndroid Build Coastguard Worker+ [General GitHub documentation](https://docs.github.com/)
110*455610afSAndroid Build Coastguard Worker+ [GitHub pull request documentation](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
111*455610afSAndroid Build Coastguard Worker+ [Apache Commons Twitter Account](https://twitter.com/ApacheCommons)
112*455610afSAndroid Build Coastguard Worker+ `#apache-commons` IRC channel on `irc.freenode.net`
113*455610afSAndroid Build Coastguard Worker
114*455610afSAndroid Build Coastguard Worker[cla]:https://www.apache.org/licenses/#clas
115*455610afSAndroid Build Coastguard Worker[jira]:https://issues.apache.org/jira/browse/LANG
116