diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 47752c2935..be0bd15ed6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing -Contributions from the community are essential in keeping Hibernate (any Open Source +Contributions from the community are essential in keeping Hibernate (and any Open Source project really) strong and successful. # Legal @@ -8,11 +8,13 @@ project really) strong and successful. All original contributions to Hibernate are licensed under the [GNU Lesser General Public License (LGPL)](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt), version 2.1 or later, or, if another license is specified as governing the file or directory being -modified, such other license. The LGPL text is included verbatim in the [lgpl.txt](lgpl.txt) file -in the root directory of the ORM repository. +modified, such other license. + +The LGPL text is included verbatim in the [lgpl.txt](lgpl.txt) file in the root directory of the ORM repository. All contributions are subject to the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). -The DCO text is also included verbatim in the [dco.txt](dco.txt) file in the root directory of the ORM repository. + +The DCO text is available verbatim in the [dco.txt](dco.txt) file in the root directory of the ORM repository. ## Guidelines @@ -21,33 +23,35 @@ While we try to keep requirements for contributing to a minimum, there are a few we ask that you mind. For code contributions, these guidelines include: -* respect the project code style - find templates for [IntelliJ IDEA](https://hibernate.org/community/contribute/intellij-idea/) or [Eclipse](https://hibernate.org/community/contribute/eclipse-ide/) -* have a corresponding JIRA issue and the key for this JIRA issue should be used in the commit message -* have a set of appropriate tests. For bug reports, the tests reproduce the initial reported bug - and illustrate that the solution actually fixes the bug. For features/enhancements, the - tests illustrate the feature working as intended. In both cases the tests are incorporated into - the project to protect against regressions -* if applicable, documentation is updated to reflect the introduced changes -* the code compiles and the tests pass (`./gradlew clean build`) +* Respect the project code style - find templates for [IntelliJ IDEA](https://hibernate.org/community/contribute/intellij-idea/) or [Eclipse](https://hibernate.org/community/contribute/eclipse-ide/) +* Have a corresponding JIRA [issue](https://hibernate.atlassian.net/browse/HHH) and be sure to include the key for this JIRA issue in your commit messages. +* Have a set of appropriate tests. + For your convenience, a [set of test templates](https://github.com/hibernate/hibernate-test-case-templates/tree/main/orm) have been made available. + + When submitting bug reports, the tests should reproduce the initially reported bug and illustrate that your solution addresses the issue. + For features/enhancements, the tests should demonstrated that the feature works as intended. + In both cases, be sure to incorporate your tests into the project to protect against possible regressions. +* If applicable, documentation should be updated to reflect the introduced changes +* The code compiles and the tests pass (`./gradlew clean build`) -For documentation contributions, mainly just respect the project code style, especially in regards -to use of tabs - as mentioned above, code style templates are available for both IntelliJ IDEA and Eclipse -IDEs. Ideally these contributions would also have a corresponding JIRA issue, although this +For documentation contributions, mainly to respect the project code style, especially in regards +to the use of tabs - as mentioned above, code style templates are available for both IntelliJ IDEA and Eclipse +IDEs. Ideally, these contributions would also have a corresponding JIRA issue, although this is less necessary for documentation contributions. ## Getting Started -If you are just getting started with Git, GitHub and/or contributing to Hibernate via +If you are just getting started with Git, GitHub, and/or contributing to Hibernate via GitHub there are a few pre-requisite steps to follow: -* make sure you have a [Hibernate JIRA account](https://hibernate.atlassian.net) -* make sure you have a [GitHub account](https://github.com/signup/free) -* [fork](https://help.github.com/articles/fork-a-repo) the Hibernate repository. As discussed in +* Make sure you have a [Hibernate JIRA account](https://hibernate.atlassian.net) +* Make sure you have a [GitHub account](https://github.com/signup/free) +* [Fork](https://help.github.com/articles/fork-a-repo) the Hibernate repository. As discussed in the linked page, this also includes: * [set up your local git install](https://help.github.com/articles/set-up-git) * clone your fork -* see the wiki pages for setting up your IDE, whether you use +* See the wiki pages for setting up your IDE, whether you use [IntelliJ IDEA](https://hibernate.org/community/contribute/intellij-idea/) or [Eclipse](https://hibernate.org/community/contribute/eclipse-ide/)(1). @@ -57,8 +61,8 @@ or [Eclipse](https://hibernate.org/community/contribute/eclipse-ide/)(1)