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 spotlessApplyand 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-mergeintotypetools-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-fixesintomasterand 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.comIf there are problems with the configuration cache, pass --no-configuration-cache.
You may need to run gpg-agent first and enter the GPG password when prompted.
Use --warning-mode all to see gradle deprecation warnings.