-
Notifications
You must be signed in to change notification settings - Fork 14
Releasing CodingSpectator
Perform the following steps to release a new version of CodingSpectator.
Use the appropriate version of Eclipse to build the right version of the update site.
- Helios: Eclipse Helios (3.6.0)
- Indigo: Eclipse Indigo (3.7.0)
- Indigo SR1: Eclipse Indigo SR1 (3.7.1)
- Run the tests in
org.eclipse.jdt.ui.tests.refactoring
and make sure that they all pass. - Make sure the tests in
edu.illinois.codingspectator.monitor.tests
pass. - Run the tests in
edu.illinois.codingspectator.ui.tests
and ensure that all of them pass.
-
Remove the following folders and files from
edu.illinois.codingspectator.updatesite
.features/
plugins/
artifacts.jar
content.jar
-
Open
edu.illinois.codingspectator.updatesite/site.xml
in Eclipse. -
Remove all the features listed in
site.xml
but not any categories. -
Select the
CodingSpectator
category in theSite Map
. Then, press theAdd Feature...
button and select featuresedu.illinois.codingspectator (1.0.0.qualifier)
andedu.illinois.codingspectator.submitter (1.0.0.qualifier)
from the popped up dialog. -
Press the button
Build All
. -
Copy the key store file (
CodingSpectatorKeyStore
) intoplug-ins/common/edu.illinois.codingspectator.updatesite/scripts/sign
. This file is needed to sign the JAR files of the update site. -
Run the script
scripts/post-process-update-site.rb
from theedu.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. -
Open the
content.xml
file incontent.jar
and verify thepatchScope
elements. The following elements should exist in the XML file. Note that the specific values of therange
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>
-
Use the command
jarsigner -verify <jar-file>
to make sure that the JAR files are signed.
- Install the new release of CodingSpectator from the local file system into fresh instances of Eclipse to make sure that it installs successfully.
- Check whether the update from an old version of CodingSpectator to the new one works.
- Copy the contents of the folder
edu.illinois.codingspectator.updatesite
except thescripts
subfolder and hidden files intopublic_html/updates
of the machine hosing the update site. - Repeat the first two steps for the remote update site.
Save a copy of the update sites at https://github.com/reprogrammer/CodingSpectator-Releases.
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.
-
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. -
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.
-
Push the commit to the remote repository.
-
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