Thank you for your interest in contributing to Aether Datafixers! 🎉
We welcome all contributions, whether it's fixing bugs, adding features, improving documentation, or helping with discussions.
This project follows a Git Flow-inspired branching model with two long-lived branches and several short-lived branch types.
| Branch | Purpose |
|---|---|
main |
🔒 Production-ready code only. Represents the latest stable release. Direct commits and PRs from feature/fix branches are not allowed - only release/* branches may be merged into main. |
develop |
🔧 Integration branch. All feature and fix contributions are merged here. This is the default target for your PRs. |
| Branch Pattern | Base Branch | Merges Into | Purpose |
|---|---|---|---|
feature/* |
develop |
develop |
New features (e.g., feature/cli-module, feature/migration-diagnostics) |
bugfix/* |
develop |
develop |
Bug fixes (e.g., bugfix/javadoc-site-compiling-fixes) |
release/* |
develop |
main + develop |
Release preparation (e.g., release/0.5.x). The only branch type allowed to merge into main. |
hotfix/* |
main |
main + develop |
Critical production fixes that cannot wait for the next release cycle. |
feature/* ──→ develop ──→ release/* ──→ main
bugfix/* ──→ develop ──↗ ↑
hotfix/*
- Never target
mainwith feature or bugfix PRs. PRs that accidentally targetmainare automatically retargeted todevelop. PRs from non-release/*branches tomainare blocked. - Always branch off
developfor features and bug fixes. - Keep branches short-lived. Merge early and often to avoid painful conflicts.
- Delete branches after merging. Stale branches clutter the repository.
- Click the Fork button at the top of the repository.
- Clone your fork:
git clone https://github.com/aether-framework/aether-datafixers.git
cd aether-datafixersBranch off develop and use the correct prefix:
git checkout develop
git pull origin develop
git checkout -b feature/new-awesome-featureUse a meaningful branch name with the appropriate prefix:
feature/- for new features (e.g.,feature/optic-integration)bugfix/- for bug fixes (e.g.,bugfix/builder-null-pointer)
- Follow the coding style of the project.
- Write tests if applicable (
src/test/java). - Ensure the build is successful (
mvn clean package).
git add .
git commit -s -m "Add new awesome feature"
git push origin feature/new-awesome-feature- Go to the Pull Requests tab in the repository.
- Click New Pull Request.
- Set the base branch to
develop(notmain!). - Describe your changes and fill out the PR template.
- Wait for a review and feedback!
- ✅ Keep PRs small and focused.
- ✅ Include clear commit messages.
- ✅ Make sure tests pass before submitting.
- ✅ Discuss major changes in an issue before implementation.
- ✅ Be respectful in discussions and code reviews.
If you have any questions, feel free to open an Issue or join our Discussions section.
This project uses the Developer Certificate of Origin (DCO) instead of a traditional CLA. By contributing, you certify that you have the right to submit your work under the project's MIT License.
To sign off on your commits, add the -s flag:
git commit -s -m "Your commit message"This adds a Signed-off-by: Your Name <your.email@example.com> line to your commit, confirming that you agree to the DCO.
We allow AI-assisted contributions under strict conditions. If you use AI tools (GitHub Copilot, Claude, ChatGPT, etc.), you must follow our AI Usage Guidelines - including mandatory disclosure and quality standards.
🚀 Happy Coding!