The Checker Framework Gradle plugin (which this repository contains) uses a continuous-delivery style of releases: any time that the behavior of the plugin changes, a new release is cut.
All pull requests should be made from a feature branch. Never push
directly to master
.
After you have made the changes you wish to merge into master
,
you should:
- If your pull request will change any behavior of the plugin (including bug fixes, new features, or updated dependencies), you should choose a new version string. Please try to respect semantic versioning. Do not augment the major version without explicit approval from all the maintainers.
- If you changed the version string, search for the current plugin version
in the directory containing this file, and replace all instances of it with
the new version string (currently only in
README.md
andbuild.gradle
). Commit the result. - Push to your feature branch.
- Make a pull request against the
master
branch.
- Copy the publishing credentials to your
~/.gradle/gradle.properties
file. The credentials are stored in the same place as the credentials used to make a Checker Framework release, in agradle.properties
file. To gain access to the credentials, contact one of the maintainers privately.
- Review the pull request. If you approve it, proceed.
- Ensure that the GitHub Actions CI build passes in the pull request.
- Ensure that the new version string in the pull request is not already in use. Check the plugin's portal page to see if this version has already been released.
- If the version string is already in use, change it or ask the author of the pull request to do so.
- Squash and merge the pull request.
- On your local machine, check out the
master
branch and rungit pull origin master
. - Run
./gradlew publishPlugins
from the top-level project directory (which should also contain this file).
The default version of the Checker Framework used by the plugin should be updated after every Checker Framework release. The Checker Framework is typically released monthly. Updating the Checker Framework should be done like any other pull request. To update the plugin to use the latest version of the Checker Framework:
- Create a feature branch.
- Update the .jar and .pom files.
Run:
(cd src/test/resources/maven/org/checkerframework && update.sh NEW_CF_VERSION_NUMBER)
(If you don't do this, you may get an error such as "Could not find org.checkerframework:checker:2.11.1.") You might need to wait for Maven Central to make the new.jar
and.pom
files available. - Replace the old version number anywhere it appears in this repository.
- Update the version of the plugin, as for any pull request; see above for instructions.