This repository contains several scripts that automate parts of the Overture release process as described in the Release wiki page.
All of the following should happen inside the developement branch.
Close the current milestone and move all the pending issues to the next milestone.
github-fetch-milestone-issues.py
: Script for generating release notes for closed milestones. The template file ReleaseNotes-template.md
must exist in the folder where the script is. If you are releasing Overture you may want to execute this script from <overture-root>/documentation/releasenotes
.
Fill in the info in the release notes file, add it to git and commit.
Change versions inside overture.release.properties
which is located in the root of the tool repository.
Push changes to ensure testing.
Run update-examples.sh
at some tmp folder: Checks out the Overture standard examples, including the website, and adds the examples to the web site. After the script has been executed, the user must manually push the changes to the examples and website repositories. The instructions are provided by the script.
Run perform-release.sh
in the root of the tool repository. It performs a Maven release with tycho mode enabled by the With-IDE
profile. This script can be run in interactive mode, i.e. it stops before pushing/releasing. Alternatively, one can perform an automated release by setting the environment variable batchmode=release
. Before this script is executed, the release version and the new development version must be specified in the overture.release.properties
file, which is located in the root of the tool repository. This file must be edited and comitted before running the script. Run script as ./perform-release.sh
.
In order to run this script you will need GPG set up as well as a login to access Sonatype. For details, see the instructions in the release notes.
Follow the video instructions in the Release wiki page.
- Creating a new release on GitHub at https://github.com/overturetool/overture/releases
- Copy the contents of the previously generated release notes
- Uploading the distribution files (
target/checkout/ide/product/target/products/*.zip
) and commandline jar (target/checkout/core/commandline/target/Overture-${RELEASE_VER}.jar
) to the GitHub release. target/checkout/core/commandline/target
Overture-${RELEASE_VER}.jar
target/checkout/ide/product/target/product/
Overture-${RELEASE_VER}-linux.gtk.x86.zip
Overture-${RELEASE_VER}-linux.gtk.x86_64.zip
Overture-${RELEASE_VER}-macosx.cocoa.x86_64.zip
- Make sure you sign this before uploading it
sign-overture.sh
: Utility script to sign the overture zip for mac. usa as:$(./sign-overture.sh zip file name)
Overture-${RELEASE_VER}-win32.win32.x86.zip
Overture-${RELEASE_VER}-win32.win32.x86_64.zip
- Publish the release
Check out master
and merge the release tag, push. When that's done trigger the overture-master
build job on the overture.au.dk build server in order to release the IDE to be available in the p2 updates feature of eclipse.
If the maven-gpg-plugin
is complaining that it "Cannot obtain passphrase in batch mode" you may want to supply your passphrase via your local settings (stored in thesettings.xml
file in the .m2
folder). An example of how this can be done is shown below.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- Sonatype entries omitted -->
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<gpg.passphrase>your-passphrase</gpg.passphrase>
</properties>
</profile>
</profiles>
</settings>
git-set-private-key.sh
: Utility script to configure git to use a specific private key. Use as $(./git-set-private-key.sh ~/.ssh/id_rsa_custom)