Skip to content

Releasing CodingSpectator

Mohsen Vakilian edited this page Feb 18, 2014 · 19 revisions

Perform the following steps to release a new version of CodingSpectator.

Eclipse Version

Use the appropriate version of Eclipse to build the right version of the update site.

Test

  1. Run the tests in org.eclipse.jdt.ui.tests.refactoring and make sure that they all pass.
  2. Make sure the tests in edu.illinois.codingspectator.monitor.tests pass.
  3. Run the tests in edu.illinois.codingspectator.ui.tests and ensure that all of them pass.

Update site

  1. Remove the following folders and files from edu.illinois.codingspectator.updatesite.

    • features/
    • plugins/
    • artifacts.jar
    • content.jar
  2. Open edu.illinois.codingspectator.updatesite/site.xml in Eclipse.

  3. Remove all the features listed in site.xml but not any categories.

  4. Select the CodingSpectator category in the Site Map. Then, press the Add Feature... button and select features edu.illinois.codingspectator (1.0.0.qualifier) and edu.illinois.codingspectator.submitter (1.0.0.qualifier) from the popped up dialog.

  5. Press the button Build All.

  6. Copy the key store file (CodingSpectatorKeyStore) into plug-ins/common/edu.illinois.codingspectator.updatesite/scripts/sign. This file is needed to sign the JAR files of the update site.

  7. Run the script scripts/post-process-update-site.rb from the edu.illinois.codingspectator.updatesite folder and enter the password of the key store when the script prompts you for the password. This script requires Ruby and xsltproc.

  8. Open the content.xml file in content.jar and verify the patchScope elements. The following elements should exist in the XML file. Note that the specific values of the range attributes depend on the release of Eclipse that the update site is going to support.

     <patchScope>
     <scope>
         <requires size="1">
             <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.platform.feature.group" range="[3.6.0,4.0.0)"/>
         </requires>
     </scope>
     </patchScope>
     <patchScope>
     <scope>
         <requires size="1">
             <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.jdt.feature.group" range="[3.6.0,4.0.0)"/>
         </requires>
     </scope>
     </patchScope>
     <patchScope>
     <scope>
         <requires size="1">
             <required namespace="org.eclipse.equinox.p2.iu" name="org.eclipse.epp.usagedata.feature.feature.group" range="[1.3.0,2.0.0)"/>
         </requires>
     </scope>
     </patchScope>
    
  9. Use the command jarsigner -verify <jar-file> to make sure that the JAR files are signed.

Publish

  1. Install the new release of CodingSpectator from the local file system into fresh instances of Eclipse to make sure that it installs successfully.
  2. Check whether the update from an old version of CodingSpectator to the new one works.
  3. Copy the contents of the folder edu.illinois.codingspectator.updatesite except the scripts subfolder and hidden files into public_html/updates of the machine hosing the update site.
  4. Repeat the first two steps for the remote update site.

Save

Save a copy of the update sites at https://github.com/reprogrammer/CodingSpectator-Releases.

Change Log

Update the change log at the root of the repository by the changes made in the new release. We usually have an issue devoted to releasing a new version of CodingSpectator in which we keep track of the issues that are addressed in the new release. Use the release issue to update the change log. Then, close the release issue.

Tag

  1. Be careful not to delete any build.xml files. For some reason, the build script of the update site sometimes deletes some of the other build scripts.

  2. Commit the changes to the update site and change log. Use a commit message of the following form

     Released v<x>.<y>.<z>.<qualifier> for <eclipse-release>
    
     This commit belongs to issue #<release-issue>.
    

In the above message, <x>, <y>, <z> and <qualifier> are parts of the version of the generated feature, <eclipse-release> is the release of Eclipse that the generated update site is going to support, and <release-issue> is the number of the issue devoted to this particular release of CodingSpectator.

  1. Push the commit to the remote repository.

  2. Tag the commit containing the new release using the following command.

     git tag v<x>.<y>.<z>.<qualifier>-<eclipse-release> <commit-sha>
    

Push the created tag to the remote repository using the following command.

    git push --tags