================================================================================ Checklist for Preparing an AspectJ Release ================================================================================ Create a fresh copy of this file, and then record your progress in the file and save it as part of the release notes on completion. Before you begin... you will need: ================================================================================ * A JDK v1.4.x java -fullversion : [ ] * A JDK v1.3.x java -fullversion : [ ] * A 1.1.8 JRE version : [ ] * A Windoze box OS version : [ ] * A Linux box distribution : [ ] * An iMac (nice-to-have) JDK 1.4.x : [ ] * Eclipse version : [ ] * A pair of scissors (get an adult to help you with these) * Some sticky-backed plastic OK, so the last three aren't strictly necessary, but they always seem to come in useful on the telly. Extraction: ================================================================================ * Full CVS extract of org.aspectj/modules [ ] date and time of extract : [ ] Preparation: ================================================================================ * Create a new directory under releases for this release [ ] (e.g. releases/aspectj-1.1rc1) * Save a copy of this file there as package-and-test-notes.txt [ ] * Edit build/build-properties.xml and set the version properties for this release [ ] e.g. * Edit org.aspectj.ajdt.core/src/org.aspectj.ajdt.ajc/messages.properties and set the version properties for this release [ ] e.g. ### AspectJ-specific messages configure.version = AspectJ Compiler 1.1rc1 configure.directoryNotExist = invalid option or directory does not exist: {0} ## 3456789012345678901234567890123456789012345678901234567890123456789012345 ### miscellaneous misc.usage = AspectJ Compiler 1.1 release candidate 1\n\ ... Build: ================================================================================ * Ensure JAVA_HOME is set to point to your 1.3 JDK [ ] echo $JAVA_HOME [ ] (even when you "Run Ant..." from eclipse, the value of JAVA_HOME is used rather than the JRE specified in your Eclipse settings). * When running ant, use the version in modules/lib/ant, i.e., modules/lib/ant/bin/ant [ ] * Run ant on build/build.xml : $ cd build $ ant clean [ ] $ ant fail-unless-boot-libraries-uptodate [ ] $ ant [ ] * Save the build output (console log) as build-.log.txt [ ] (e.g. build-1.1rc1.log.txt) * Save the built jar to the releases directory [ ] (releases/aspectj-) * Verify name is aspectj-.jar [ ] Pre-installation tests: ================================================================================ * run junitModules.xml tests - go to modules/tests/ and run $ ant -f junitModules.xml {target} \ -Daspectjrt.path=../aj-build/dist/tools/lib/aspectjrt.jar for each target: -- target = clean [ ] -- target = default [ ] - Record any failures here (should be none) - Save the test results as junitModules.report.zip [ ] (zip of eclipse/workspace/tests/bin/junitXmlOutput/html) * run Harness tests on the 1.3 vm (ajcTests.xml): Where {harness} is $ cd tests $ {java-1.3} -jar ../aj-build/jars/testing-drivers-all.jar Do: $ {harness} -release -logFail ajcTests.xml [ ] -- save results in ajcTests-result--JDK13.txt [ ] (e.g. ajcTests-result-1.1rc1-JDK13.txt) -- record any failures (should be none) inline here. $ {harness} -release -logFail -emacssym ajcTests.xml [ ] -- save results in ajcTests-result--emacssym-JDK13.txt [ ] (e.g. ajcTests-result-1.1rc1-emacssym-JDK13.txt) -- record any failures (should be none) inline here. * run Harness tests on the 1.4 vm: Where {harness} is $ cd tests $ {java-1.4} -jar ../aj-build/jars/testing-drivers-all.jar Do: $ {harness} -release -logFail ajcTests.xml [ ] -- save results in ajcTests-result--JDK14.txt [ ] (e.g. ajcTests-result-1.1rc1-JDK14.txt) -- record any failures (should be none) inline here. $ {harness} -release -logFail -emacssym ajcTests.xml [ ] -- save results in ajcTests-result--emacssym-JDK14.txt [ ] (e.g. ajcTests-result-1.1rc1-emacssym-JDK14.txt) -- record any failures (should be none) inline here. * run Harness on ajcTestsFailing.xml Where {harness} is $ cd tests $ {java-1.3} -jar ../aj-build/jars/testing-drivers-all.jar Do: $ {harness} -release -logFail ajcTestsFailing.xml [ ] -- save results in ajcTestsFailing-result--JDK13.txt [ ] (e.g. ajcTestsFailing-result-1.1rc1-JDK13.txt) -- record any failures inline here (should be none. ajcTestsFailing should be empty for a final release. Known exceptions are permissible for a non-final release.) Installation & Verification Tests ================================================================================ * install from aspectj-.jar as built above - verify version number and build date on splash screen [ ] - save screenshot of splash screen (not essential) as [ ] Installer-Splash-Screen.bmp (file format may vary) * verify directory structure created ok [ ] * check version in README-AspectJ.html [ ] * check version in README-1.1.html (file not required) [ ] * check license present and correct version (currently CPLv1.0) [ ] * run "ajc -version", verify version info [ ] * run "ajc", verify version info [ ] * from doc/examples, run "ant", verify spacewar builds and runs ok [ ] * in doc/examples, build ant targets as follows: - bean [ ] - intro [ ] - intro-clone [ ] - intro-compare [ ] - intro-hash [ ] - observer [ ] - spacewar [ ] - spacewar-demo [ ] - telecom [ ] - telecom-billing [ ] - telecom-timing [ ] - tjp [ ] - tracing-1 [ ] - tracing-2 [ ] - tracing-3 [ ] - tracing-bc [ ] - tracing-none [ ] * With aspectjtools.jar in the ant/lib directory, also build - tracing-adapter [ ] - tracing-adapter-ajc [ ] * run pre-compiled version of spacewar on a 1.1.8 vm [ ] * verify debug info included in class files - "javap -l org.aspectj.tools.ajc.Main" under jdk 1.4 or later [ ] * verify manual dates correct in docs [ ] * verify api docs present and correct [ ] Product Testing ================================================================================ These tests are a bit more rigorous and time-consuming. Run at your discretion * Compile AspectJ sources using AspectJ [ ] cd tests/product/build-aspectj ant * Perform steps specified in the Development Guide on AJBrowser [ ] * Perform steps specified in tests/ajdt/script.html [ ] * Build/run tests/test-other-systems.xml (PARC has other sources) [ ] Cross-Platform Testing ================================================================================ (Assuming prior tests were done under windows) * Install, build and run spacewar on Linux using AJBrowser [ ] * Install, build and run spacewar on Mac OS X using AJBrowser [ ] * Download from IE, Netscape, and Mozilla, new and old [ ] if they have not been validated with the current HTML. Bug database ================================================================================ * No P1 or P2 bugs, and no lower bugs that should be P1/P2 [ ] * All fixed bugs verified (at least by fixing developer, [ ] though preferably with a test case) * Please comment if there are compiler fixes without test cases [ ] Other Release Objectives ================================================================================ Record any other details or release specific objectives test results here. Release ================================================================================ Once developer consensus is reached on the build: * commit all releases/aspectj-/*.* files created during this process [ ] * tag /home/technology/org.aspectj as vM_m_r_XX (e.g. v1_1_0_RC1) [ ] * post aspectj-.jar to download.eclipse.org/technology/ajdt/aspectj-.jar [ ] * download from https://download.eclipse.org/technology/ajdt/aspectj-.jar and install [ ] * post news article on project home page [ ] * post link on download page [ ] * post announce message to aspectj-users, aspectj-announce [ ] * buy beer [ ]