Thanks for showing interest in MaterialDayPicker. We're more than happy to accept new contributors.
For this project we structure our branches following the Gitflow approach. We have two main branches in our repo: release
and dev
. dev
is where active development happens. Whenever we want to deploy a new release we merge the latest dev
branch into release
. Every commit on release
is built on CI and deployed to bintray on success.
GitHub will allow you to merge once all required CI checks and reviews are completed. You can merge your branch yourself once GitHub allows you to.
- Create a branch off of
dev
following the pattern:feature/<FEATURE_NAME>
- Implement your feature or low priority bug fix
- If your code introduces any new APIs update the projects
README.md
to provide usage details - Open a pull request to merge your code into the
dev
branch. Note: GitHub will default to merging into therelease
so you will need to update the target branch yourself - Merge when green
Note this section only applies to bugs that must urgently be fixed and can't wait for a normal release cycle to ship.
- Create a branch directly off of
release
following the pattern:hotfix/<BUG_NAME>
- Implement your fix
- Increment the minor version of the
publishVersion
in the project's rootbuild.gradle
- Update the "What's new" section of the project's
README.md
to include details about the bug fixed by the hotfix - Open a pull request to merge your code straight into
release
- Merge when green
- Create a new GitHub release and include the release notes you added to the "What's new" section of the
README.md
- Now we need to get this hotfix back into the
dev
branch. To do this open a PR mergingrelease
intodev
- Merge when green
- Create a branch off of
dev
following the pattern:prepare-for-<RELEASE-NUMBER>
- Update the
publishVersion
of the library in the project's rootbuild.gradle
- Update the "What's new" section of the project's
README.md
to include this release's features/bug fixes - Verify any new APIs are documented in the readme
- Open up a PR to merge the branch with the above changes into
dev
- Once merged open a new PR to merge
dev
intorelease
- Once approved merge the PR and a new version of the library will be deployed
- Create a new GitHub release on this repository and include the release notes you added to the "What's new" section of the readme