The following is a step-by-step procedure for releasing a new version of Google-Gson.
Go through all open bugs and identify which will be fixed in this release. Mark all others with an appropriate release tag. Identify duplicates, and close the bugs that will never be fixed. Fix all bugs for the release, and mark them fixed.
Ensure all changelists are code-reviewed and have +1
cd gson
to the parent directory; ensure there are no open files and all changes are committed.
Run mvn release:clean
Do a dry run: mvn release:prepare -DdryRun=true
Start the release: mvn release:prepare
-SNAPSHOT
to the released version, commit and create the tags. It will then change the version to -SNAPSHOT
for the next release.Complete the release: mvn release:perform
Log in to Nexus repository manager at Sonatype and close the staging repository for Gson.
Download and sanity check all downloads. Do not skip this step! Once you release the staging repository, there is no going back. It will get synced with Maven central and you will not be able to update or delete anything. Your only recourse will be to release a new version of Gson and hope that no one uses the old one.
Release the staging repository for Gson. Gson will now get synced to Maven central with-in the next hour. For issues consult Sonatype Guide.
Update the version in the Using Gson with Maven2 page
Update Gson Changelog. Also, look at all bugs that were fixed and add a few lines describing what changed in the release.
Create a post on the Gson Discussion Forum
Update the release version in Wikipedia and update the current “stable” release.
This section was borrowed heavily from Doclava release process.
~/.m2/settings.xml
similar to as described in Doclava release process.mvn deploy
.Based on Gson group thread:
Download vogar
Put adb
on your $PATH
and run:
vogar --benchmark --classpath gson.jar path/to/Benchmark.java
For example, here is how to run the CollectionsDeserializationBenchmark:
export ANDROID_HOME=~/apps/android-sdk-mac_x86 export PATH=$PATH:$ANDROID_HOME/platform-tools/:$ANDROID_HOME/android-sdk-mac_x86/tools/ $VOGAR_HOME/bin/vogar \ --benchmark \ --sourcepath ../gson/src/main/java/ \ src/main/java/com/google/gson/metrics/CollectionsDeserializationBenchmark.java \ -- \ --vm "app_process -Xgc:noconcurrent,app_process"