/scalate-website/src/committers/release-guide.page
http://github.com/scalate/scalate · Visualforce Page · 122 lines · 85 code · 37 blank · 0 comment · 0 complexity · ea79b5a27ac3cd8692525b688191ee1b MD5 · raw file
- ---
- title: Release Guide
- in_menu: false
- --- name:overview
- # Release Guide
- How to create releases of Scalate
- --- name:content
- # Release Steps
- Various documentation changes first (which should be done before the release is cut)
- * 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.fusesource.org/versions/lastVersion
- * in the current last-release branch change the scalate-website/pom.xml and edit the "maven-scalate-plugin" section to list the correct remoteServerUrl to something like...
- {pygmentize:: xml}
- <remoteServerUrl>dav:http://fusesource.com/forge/dav/\${forge-project-id}/versions/snapshot
- <remoteServerUrl/>
- {pygmentize}
- Cutting the release
- * check your repo is clean and you are on master branch
- * check that we are using the latest versions of dependencies
- {pygmentize:: text}
- mvn versions:use-next-releases
- mvn versions:update-properties
- {pygmentize}
- * then review the changes to pom.xml to check they all seem fine. You probably want to rollback the jetty changes to version 8.x, other than that it should be fine. Do a test run to check!
- * Verify that the `src/main/resources/license-header.txt` file is still current.
- * Check that all the source file license headers are in place:
- {pygmentize:: text}
- mvn -P license license:check
- mvn -P license license:format
- {pygmentize}
- * then review the changes and check they all seem fine. You may need to add exclusions to the `maven-license-plugin`'s
- configuration to ignore some files.
- * prepare the release
- {pygmentize:: text}
- mvn -P release release:prepare
- {pygmentize}
- * perform the release
- {pygmentize:: text}
- mvn -P release release:perform
- {pygmentize}
- * open [Nexus Staging](http://repo.fusesource.com/nexus/index.html#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
- {pygmentize:: text}
- git rebase --hard
- git push --tags
- {pygmentize}
-
- * make sure scalate-website/ext/Website.scala has the latest version information.
- * update the website (see below on making a branch)
- * announce the release on the [mailing list](../community.html)
- * 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 ${project_version} then do this...
- {pygmentize:: text}
- git co scalate-project-${project_version} -b scalate-${project_version}.x
- git push origin scalate-${project_version}.x
- {pygmentize}
- * check that this branch generates its website to the main scalate.fusesource.org location, not scalate.fusesource.org/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](http://ci.fusesource.com/teamcity/admin/editVcsRoot.html?cameFromUrl=%2Fteamcity%2Fadmin%2FeditBuildTypeVcsRoots.html%3FbuildTypeId%3Dbt119%26init%3D1&action=editVcsRoot&cameFromTitle=Edit+Build+Configuration&vcsRootId=45&editingScope=editBuildType%3Abt119) so that it uses the new branch you have just created **scalate-project-${project_version}**
- * 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](http://ci.fusesource.com/teamcity/viewType.html?buildTypeId=bt119&tab=buildTypeStatusDiv) project
- * check the new version appears on the [home page](http://scalate.fusesource.org/)
- * you might also want to check that the [central maven repo](http://repo1.maven.org/maven2/org/fusesource/scalate/scalate-core/${project_version}/) has sync'd before announcing
- What all this means is now that you should be able to amend the [website for the current release](http://scalate.fusesource.org/) using the **scalate-project-${project_version}** 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](http://scalate.fusesource.org/versions/snapshot/index.html)
- ## Update the Homebrew formula
- * clone the [scalate homebrew repo](http://github.com/scalate/homebrew) if you've not done so yet
- * hack the Library/Formula/scalate.rb file in the [usual homebrew way](http://wiki.github.com/mxcl/homebrew/formula-cookbook)
- * zap the md5 from /usr/local/Library/Formula/scalate.rb
- * edit the version number in the formula
- * run the following command
-
- {pygmentize:: text}
- brew install -i scalate
- {pygmentize}
- * 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](http://github.com/mxcl/homebrew/issues/issue/2023)