Skip to content

Preparing a new Soot release

Eric Bodden edited this page Aug 26, 2014 · 8 revisions

Email recent Soot contributors and ask them to add their changes to subversion and update the CHANGES file

Ensure everything is checked into subversion.

Ensure that you have the latest versions of JastAdd etc. is checked out.

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 aso re-generate the options parser to make sure it's up to date.

Change soot.Main fix up dates in printed copyright statement Change ant.settings for Soot and Jasmin, entering the correct version number

Change the soot_download.html file increment release number change the little paragraph blurb to reflect release numbers change all href entries to correct release numbers make a new entry for older releases with the most release being replaced Change the index.html file latest version number and update release date update release status notes update downloads section to reflect new version number update the last updated date Ensure CHANGES file, credits file, Release_Notice file are up-to-date

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

Checkin changes once all Soot contributors respond that they are set to go (or when you get tired of waiting for responses)

Build all jars there is a script to do this called nightly (it is also used for nightly Soot builds) this script requires some setup make an autobuild directory (the script assumes it is in your $HOME directory but you can change the script locally to have it somewhere else) adjust "rev" and "polyglotrev" variables in the autobuild directory you need directories settings, resources and releases in the settings directory you need a soot file and a jasmin file (these files contain the ant.settings required by the build.xml script except they some variables that get set automatically by the build script) in the resources directory you need the stable polyglot directory of the polyglot you will be releasing with Soot the releases directory is where all the jars are put when they are built by the build script You have to use SVN to modify the Soot website: https://svn.sable.mcgill.ca/soot/website/

You have to put all JAR files into: https://svn.sable.mcgill.ca/www/sable/public_html/software/

Put the new jars in the sable/public_html/software/ directory.

Place the updated html files in the sable/public_html/soot/. Also put the updated credit and CHANGES files there.

Build the Soot docs and update them in sable/public_html/soot/doc/ directory. There is a script that makes the javadoc search applet that needs to be run. It can be found here.

Also copy a built version of the tutorials into sable/public_html/soot/tutorial/ directory.

To build the eclipse plugin:

check out the folder https://svn.sable.mcgill.ca/soot/soot/trunk/eclipse start eclipse with a fresh workspace and import all projects from the folder you just checked out In the eclipse workspace move to folder ca.mcgill.sable.lib/lib and copy the following files into this folder: jasminclasses.jar java_cup.jar polyglot.jar sootsrc.zip Update the version number in all plugin.xml and feature.xml files in all projects and in site.xml of the update site project. Open site.xml in project ca.mcgill.sable.soot.updatesite (with a double click) and click "build all". This should produce a number of jar files in the project. Upload the entire project folder to http://www.sable.mcgill.ca/soot/eclipse/updates/ Check all links on Soot webpage

Tag the releases in subversion:

svn copy https://svn.sable.mcgill.ca/soot/soot/trunk https://svn.sable.mcgill.ca/soot/soot/releases/soot-<RELEASE_NUMBER> -m "Tagging the <RELEASE_NUMBER> release of the Soot project."

svn copy https://svn.sable.mcgill.ca/soot/jasmin/trunk https://svn.sable.mcgill.ca/soot/jasmin/releases/jasmin-<RELEASE_NUMBER> -m "Tagging the <RELEASE_NUMBER> release of the Jasmin project."

svn copy https://svn.sable.mcgill.ca/soot/website/trunk https://svn.sable.mcgill.ca/soot/website/releases/soot-<RELEASE_NUMBER> -m "Tagging the <RELEASE_NUMBER> release of the Soot project."

Send an email to the soot-list with the release notice

Clone this wiki locally