TextGridLab 2.0.x Release HOWTO
last modified on Okt 02, 2013
We maintain a set of maintenance releases for TextGridLab 2.0
WORK IN PROGRESS
Bug Fixing / Development
- Everything that needs to be fixed for a 2.0.x release needs a proper focused issue report in our Jira.
- Bug fixes should be applied to the
trunk
(nightly) code first. - Each commit should be focused, and it SHOULD mention the relevant
issue number (TG-1234) in its commit message
- If you accidently forget to include the issue number with a relevant commit, you MUST add a comment including the relevant revision number(s) of your commit(s) in the bug report
- You should increase the relevant artifact versions accordingly
- If your bug should be included in yet unreleased TextGridLab 2.0.n, include the relevant release in the bug reports fix for field
Preparing the Release Candidate
The 2.0.x train is maintained in the branch http://develop.sub.uni-goettingen.de/repos/textgrid/branches/releases/TextGridLab-2.0.x. There is an automatic build at http://dev.digital-humanities.de/ci/job/lab-2.0.x/. Example description for releasing TextGridLab 2.0.2.
- Checkout the branch
- Adjust the version number by running
./setversion.sh 2.0.2
in the branch directory. Requires xmlstarlet & performs the following edits:
Adjust the version number in the following places (yes I know this sucks):- base/info.textgrid.lab.feature.base/pom.xml:
<version>
element - base/info.textgrid.lab.feature.base/feature.xml:
version
attribute - base/base-repository/pom.xml:
<archiveFileName>
element - base/base-repository/info.textgrid.lab.core.application.base_product.product:
version
attribute - base/info.textgrid.lab.welcome/src/info/textgrid/lab/welcome/IntroXHTMLContentProvider.java: The version string for the welcome message
- base/info.textgrid.lab.feature.base/pom.xml:
- Generate a list of bugs for the version to be released using the issue filter. Sort by date resolved, increasing
-
For each bug:
- determine the changeset(s) by checking the SVN Updates tab and the Comments for the bug report.
-
Merge the changesets:
``` syntaxhighlighter-pre export trunk=https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/lab svn merge -c <changeset> $trunk ```
-
resolve any conflicts, if neccessary.
- build and clean
- commit. In the commit message, you MUST mention the bug
report and you SHOULD mention the changesets. It could be
helpful to actually get the changeset's original log
message, e.g., if you use vi as your editor for the commit
message:
``` syntaxhighlighter-pre :r!svn log -c <changeset> $trunk ```
Testing the Release Candidate
After the build with all included releases has finished, the RC should be tested
- Manual test against the features
- Functional test
- Test updates from previous lab version by
- downloading a clean copy of the previous version of the lab
- adding the update site, http://download.digital-humanities.de/updates/2.0.x/
- Check for updates or restart the lab
- Call for user tests
Release
When everything is tested we need to prepare the update site, upload the product zips and update the download website.
Prepare the Update Site
- The update sites are maintained on textgridlab.org
in
/var/www/updates/stable
. We have the following directory structure: stable/composite/2.0.5
etc. each contain an update site for the respective version only.stable/composite
is an composite update site of all these version-specific update sites.-
stable
is a (non-composite) mirror ofstable/composite
.To prepare this, there are a bunch of scripts linked to /usr/local/bin. Do the following, in this order, replacing 2.0.5 with the appropriate version:
- in
stable/composite
, rungenerate-aggregate-repo http://download.digital-humanities.de/updates/2.0.x 2.0.5
– this will mirror the repository from the integration build to the directory2.0.5
. - in
stable/composite
, rungenerate-composite-p2-repo "TextGridLab Stable" 2.*
– this will create the composite repository metadata for the 2.* subdirectories in the current (composite) directory. - in
stable
, rungenerate-aggregate-repo $PWD/composite candidate
– this will create an aggregate (= faster) mirror of the composite stuff in thecandidate
directory. - For each directory or file in
candidate
, remove their respective counterpart fromstable
and move the version fromcandidate
in place. - remove the (now empty)
candidate
subdirectory. - Details for managing the directory structure and
the
composite*.xml
files are at Update Site Management.
- in
Prepare the Downloads
- The download site is on textgridlab.org at
/var/www/download
. Files are in subdirectories with the version number - It is probably best to just mirror the original downloads from the automatic build
Download Website
- on textgridlab.org, cd into
/var/www/download/2.0.2
and run the generate-lab-index.py script - open the download page in the typo3 backend and
- paste the generate-lab-index.py output into the download table field in the hero block, replacing the existing content
- write a short release note in German and English into the corresponding field
- generate the changelog in Jira:
- go to the TextGrid project's Versions list
- click the version to release
- click the Release Notes link in the upper right
- paste the changelog into the corresponding field in typo3
- add last version to the list of archived versions
Jira
- Go to the Manage Versions page
- Release your version
- add a new version
Attachments
- generate-lab-index.py (text/x-python)