reflective-fluent-builders
is released under the Apache 2.0 license.
Read on if you would like to contribute!
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
This project uses GitHub issues to track bugs and enhancements. Please check the following before opening an issue:
-
your issue is not a duplicate/is not already addressed by another issue
-
your issue affects the latest available release
-
your issue cannot be solved by adjusting the configuration
None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge.
-
Please add meaningful descriptions to all commit messages. Furthermore, try to keep single commits from getting too large.
-
Please add meaningful Javadoc to all public methods, classes and interfaces.
-
If you feel it might make sense to do so, add further documentation to
README.md
. -
Add tests covering the changes being made. Depending on the change this might entail unit tests, integration tests or both. This project tries to stay at 100% code coverage, so this is considered a must.
-
Run the following command to regenerate IT samples and verify that the changes introduced are as expected:
mvn clean verify -Pgenerate-expected-builders-for-it
-
Keep your feature branch up-to-date with
main
. -
Multiple branches exist within this project for different Java versions: | Branch | Java version | | ------ | -------- | |
main
| Java 11 | |java8
| Java 8 | |java17
| Java 17 |After your branch has been merged to
main
, please consider creating new branches based onjava8
andjava17
into which you mergemain
. Adjust where necessary and open new pull requests for each, referencing the original pull request and issue.
Releases are automatically built and published to Maven Central once a tag following the semantic versioning pattern is pushed (i.e. v1.0.0
).
For the java8
branch, a suffix should be appended to the tag, yielding something like
v1.0.0-java8
.
The artifact version should correspond to the aforementioned tag, meaning tags such as v1.0.0
or
v1.0.0-java8
should only be applied if the artifact version within the project’s pom.xml
files is 1.0.0
or
1.0.0-java8
, respectively.
To simplify the release process, the Maven Release Plugin can be used like this:
mvn release:prepare release:clean -B
For the java8
branch, the versioning scheme does not seem to be understood correctly.
Thus, the command from above should contain the release version, tag and following development version explicitly:
mvn release:prepare release:clean -B -DreleaseVersion=1.0.0-java8 -DdevelopmentVersion=1.1.0-java8-SNAPSHOT -Dtag=v1.0.0-java8