Release Steps
Various documentation changes first (which should be done before the release is cut)
- update the scalate_website/src/main/webapp/download.page page for this release
- edit the scalate_website/src/main/scala/Website.scala file and change the project_version values
- blog about the release by creating an entry in scalate_website/src/blog/releases
- update the changelog.md file, copying and pasting the section the release highlights from the above blog post
If the release is a major release then we need to freeze the current website at scalate.github.io/scalate/versions/lastVersion
in the current last-release branch change the Rakefile to generate the website to generate the the last version. For example if the last released version is 0.1 then change the line in the Rakefile to…
remote /forge/dav/#{project_id}/versions/0.1
make sure the CI build for webgen last release runs so that the website for the previous release is archived into the versions directory.
- add a link to the versions.page to this old version.
Cutting the release
- Until MRELEASE-605 is resolved you need to ensure that you have defined release-altGitURL in your ~/.m2/settings.xml file like this (where /foo/scalate is where your checkout is)
<settings>
<profiles>
<profile>
<id>release</id>
<properties>
<release-altGitURL>scm:git:file:///foo/scalate</release-altGitURL>
</properties>
</profile>
</profiles>
- check your repo is clean and you are on master branch
- prepare the release
mvn release:prepare -P release
- perform the release
mvn release:perform -P release
- open Nexus Staging and close the Staging release of scalate
- now Promote the closed release
- now you'll need to tidy up your local repo and push changes back to github
git rebase --hard
git push --tags
- update the website (see below on making a branch)
- announce the release on the mailing list
- drink beers!
Creating a branch for this release and website changes
If this is a major release…
- create a branch for this new release. For example if you've just done 1.3 then do this…
git co scalate-project-1.3 -b scalate-1.3.x
git push origin scalate-1.3.x
check that this branch generates its website to the main scalate.github.io/scalate location, not scalate.github.io/scalate/versions/snapshot by updating the relevant line in the Rakefile to…
remote /forge/dav/#{project_id}
check that index.page and metainfo have at the correct release number
edit the scalate last release VCS Root so that it uses the new branch you have just created scalate-project-1.3
ensure that the master branch has its Rakefile to point to the snapshot area
remote /forge/dav/#{project_id}/versions/snapshot
ensure also that index.page has the new snapshot version number in it
kick off the TeamCity CI build for the scalate last release project
- check the new version appears on the home page
- you might also want to check that the central maven repo has sync'd before announcing
What all this means is now that you should be able to amend the website for the current release using the scalate-project-1.3 branch. You can also document new upcoming features for the next release which go into the master branch which should be auto-deployed to the snapshot website
Update the Homebrew formula
- clone the scalate homebrew repo if you've not done so yet
- hack the Library/Formula/scalate.rb file in the usual homebrew way
- zap the md5 from /usr/local/Library/Formula/scalate.rb
- edit the version number in the formula
- run the following command
brew install -i scalate
- fill in the md5
- check the install worked
- copy the scalate.rb into your Library/Formula of your homebrew clone
- push your changes to homebrew.git
- create an issue like this one