Release Process - s76/libgdx GitHub Wiki
- Setup pgp keys and settings.xml for Maven release, ask Mario
- Disable the libgdx project on the build server
- pull in the latest changes into your local libGDX repository
- pull in the latest nightlies via
ant -f fetch.xml
- Make sure Version.java has the release version in it
- Modify DependencyBank.java, update the libgdx version (and snapshot version) to the latest (must match Version.java),
mvn release:clean
, this should printBUILD SUCCESSFUL
, if not, you've done something wrongmvn release:prepare -DdryRun=true
to test the prepare, see http://www.jroller.com/robertburrelldonkin/entry/apache_using_dry_run_withmvn release:prepare
, enter the release version number, then make sure the new snapshot version is x.y.z+1 or x.y+1.0 if you released an API breaking changemvn release:perform
, pray that everything works- Log into http://oss.sonatype.com (ask Mario for username:password) and do what's described at https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-8a.ReleaseIt
- Enable the libgdx project on the build server and wait for the libGDX to finish (this will also updated gdx-setup.jar on the server, which will use the latest libgdx version we just deployed to sonatype/maven central)
- Download nightly, rename to libgdx-x.y.z, upload to website /usr/share/nginx/html/releases
- Increase the libGDX version in Version.java to match the new snapshot version
- Update the latest libGDX release version in forum for user registration
If something fails
mvn release:prepare
fails
If Fix the issue! Do not continue. If you do, you'll be in for a world of pain.
Issue #1: Javadoc for an artifact wasn't build box2d-GWT had no source files in the src/ directory, only in the emulation directory. In such cases, place a dummy class in the src/ directory.
mvn release:perform
or closing and releasing the staging repository on Sonatype fails
If Great, now you have a tag in Git and the versions in your pom.xml files are all kinds of fucked up! Do this:
- Open all pom.xml files (
find . | grep pom.xml
for a list) and change the versions from x.y.z-SNAPSHOT xold.yold.zold-SNAPSHOT. E.g. if you failed to release 1.0.0, set the versions to 1.0.0-SNAPSHOT, just like before the release. You'll only have to change the version of the root pom.xml, and the versions specified for the parent in the other pom.xml files. git tag -d x.y.z
,git push origin :x.y.z
to kill the motherfucking tag in the master repository- Drop the staging repository on SonaType if necessary
- Start from the beginning, good luck