Preparing a new Soot release - VictoryWangCN/soot GitHub Wiki

Before the release date

  • Email recent Soot contributors and ask them to add their changes to subversion and update the CHANGES, credits and Release_notice files

  • Create a new milestone tag in soot's issue tracker to mark items that should be addressed before the release.

  • For all of soot, jasmin and heros make sure that all dependencies are where they belong and are not duplicated. soot depends on heros and on jasmin, so for instance dependencies used by soot and heros should be packaged with heros only. Dependencies should always be in the respective libs directory.

  • Ideally ensure Jasmin README and changes file are also up-to-date although they are currently hopelessly out of date

  • Ensure that the latest versions of all dependencies are integrated and tested. Make sure that the nightly tests ran completely and correctly.

  • run "ant veryclean-jastadd jastadd" to make sure that the Jast-Add based files are up to date check in these files if they changed (in the "generated" directory)

  • potentially do the same for the Jimple parser definition (use sablecc), and also re-generate the options parser and the singletons to make sure they are up to date TODO BETTER DOCUMENT WHEN DONE*

  • Update and unify copyright headers. All files should contain license headers for LGPL. There are Eclipse Copyright Wizard Plugins which can help with this.

  • Double-check the Java source and target settings for the javac tasks in the ant scripts. Soot should be able to run on Java 1.6, so target should be not higher than that.

  • Commit any outstanding issues and fixes into develop.

When doing the release

  • Create and check out a release branch

  • Change soot.Main: ** fix up dates in printed copyright statement ** Change ant.settings for soot, jasmin and heros entering the correct version number

  • Trigger nightly build on this branch

  • TODO Build and deploy Eclipse plugin

  • TODO DEPLOYMENT / UPDATES TO WEB PAGES

  • When everything is working, finish up the release branch, merging it into master. This will also tag the released version.

  • Send an email to the soot-list with the Release_notice