To update EISOP with changes in a different Checker Framework fork, follow these steps:
-
Pull in eisop/master and make sure you don't have any uncommitted files.
-
Create a new branch, named e.g.
typetools-3.18.0-fixes
, and push to eisop, without any changes. -
Create a new branch, named e.g.
typetools-3.18.0-merge
. -
If necessary, change to consistent formatting:
- Remove
.aosp()
frombuild.gradle
. - Run
./gradlew spotlessApply
and commit results as e.g.Change to typetools formatting
.
- Remove
-
Look up the commit IDs for the range you want to include, e.g. previous and current releases.
-
Fetch the new release into a different branch
git fetch typetools toID:typetools-3.18.0-release
. -
Do
git cherry-pick fromID..toID
. -
If there are conflicts, resolve and do
git cherry-pick --continue
. -
If necessary, undo formatting changes and commit
Change back to AOSP formatting
. -
Open a pull request (against eisop) merging
typetools-3.18.0-merge
intotypetools-3.18.0-fixes
. Once this looks OK, squash and merge titledtypetools/checker-framework x.y.z release
, making sure to keep all authors. -
Go through all changes in more detail and clean up any problems. This two-step process gives us one commit with the external changes and separate commits with eisop-specific changes and enhancements.
-
Open a pull request (against eisop) merging
typetools-3.18.0-fixes
intomaster
and merge without squashing.
TODO: the release process contains many buffalo-specific paths, which still needs to be cleaned up. Most of the instructions can be followed, ignoring certain steps.
Without using the release scripts, you can make a Maven Central release using:
./gradlew publish -Prelease=true --no-parallel -Psigning.gnupg.keyName=wdietl@gmail.com
You may need to run gpg-agent
first and enter the GPG password when prompted.
Use --warning-mode all
to see gradle deprecation warnings.