Contribute to Hibernate ORM
Contribute to Hibernate ORM
Thanks for your interest! Hibernate ORM is an open source project and community. Contributions, of any type or any scope, drive the project forward!
Contributing does not have to mean writing/fixing code (although we certainly won’t turn away good code contributions). There are lots of ways to become part of the community and contribute…
The community page lists a few places for users to find help such as IRC and forums. Not to mention that users often look for help in other places such as StackOverflow or JBoss forums. A great way to get involved in the community is to share your knowledge with others who need it.
An extension of helping other users is to contribute documentation. Its the help that keeps on giving!
Whether you simply fix a typo, re-word an unclear section or add a whole new section/topic, improving the documentation helps everyone.
As the development team discusses design of new features or tries to prioritize work it is great to have input from users. As the saying goes, it is better to measure twice and cut once; and the more eyes we have on theses designs and the more voices in the discussions, the better measurements we get. The best places to get involved in discussing development are the ORM dev HipChat channel, the #hibernate-dev IRC channel and the hibernate-dev mailing list.
Trying out releases and reporting/fixing problems is in many ways the cornerstone of open source development. It is especially critical in the case of early releases (Alphas and Betas) as we are trying to solidify APIs and contracts.
When creating a bug report, please have a test case available that can be 1.) used to reproduce the issue and 2.) used as a long-term regression test. Please see Hibernate Test Case Templates for an easy way to start!
Even if you cannot help code the fix for a bug, submitting test cases for reported bugs that did not provide tests is a great help get these bugs resolved.
Speaking of JIRA, helping us identify issues that duplicate other issues or that are out of date is a great help as well. And voting for issues that are important to you is important in terms of how the development team sets priorities.
What follows here the basics for contributing code to Hibernate ORM. The CONTRIBUTING.md file in the root of the source tree has detailed information on contributing code to Hibernate ORM; and the README.md file has details on building Hibernate ORM.
git clone email@example.com:hibernate/hibernate-orm.git cd hibernate-orm
Hibernate ORM uses Gradle as its build tool. See the mentioned README.md file for details if you are unfamiliar with Gradle. If you’d rather not "install" Gradle, Gradle provides a great feature called the "Gradle wrapper" that offers a zero-conf option. Simply use the gradlew (*nix) or gradlew.bat (Windows) scripts in the root source directory to run the tasks.
./gradlew clean build ./gradlew publishToMavenLocal
Good code contributions have some or all of the following characteristics:
To test a specific database, you can use the specific profiles described in
./gradlew clean build -Pdb=pgsql
To run a test from your IDE, you need to ensure the property expansions happen. Use the following command:
./gradlew clean compile -Pdb=pgsql
To run the tests from your IDEs for Oracle, DB2 and other non-OSS JDBC drivers, it is a bit different. You also need to edit
Also remember to add the Oracle driver to your local Maven repository. Oracle drivers are not on Maven central.