/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

  1. ---
  2. title: Release Guide
  3. in_menu: false
  4. --- name:overview
  5. # Release Guide
  6. How to create releases of Scalate
  7. --- name:content
  8. # Release Steps
  9. Various documentation changes first (which should be done before the release is cut)
  10. * edit the **scalate\_website/src/main/scala/Website.scala** file and change the **project\_version** values
  11. * blog about the release by creating an entry in **scalate\_website/src/blog/releases**
  12. * update the changelog.md file, copying and pasting the section the release highlights from the above blog post
  13. If the release is a major release then we need to freeze the current website at scalate.fusesource.org/versions/lastVersion
  14. * 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...
  15. {pygmentize:: xml}
  16. <remoteServerUrl>dav:http://fusesource.com/forge/dav/\${forge-project-id}/versions/snapshot
  17. <remoteServerUrl/>
  18. {pygmentize}
  19. Cutting the release
  20. * check your repo is clean and you are on master branch
  21. * check that we are using the latest versions of dependencies
  22. {pygmentize:: text}
  23. mvn versions:use-next-releases
  24. mvn versions:update-properties
  25. {pygmentize}
  26. * 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!
  27. * Verify that the `src/main/resources/license-header.txt` file is still current.
  28. * Check that all the source file license headers are in place:
  29. {pygmentize:: text}
  30. mvn -P license license:check
  31. mvn -P license license:format
  32. {pygmentize}
  33. * then review the changes and check they all seem fine. You may need to add exclusions to the `maven-license-plugin`'s
  34. configuration to ignore some files.
  35. * prepare the release
  36. {pygmentize:: text}
  37. mvn -P release release:prepare
  38. {pygmentize}
  39. * perform the release
  40. {pygmentize:: text}
  41. mvn -P release release:perform
  42. {pygmentize}
  43. * open [Nexus Staging](http://repo.fusesource.com/nexus/index.html#staging) and close the Staging release of scalate
  44. * now Promote the closed release
  45. * now you'll need to tidy up your local repo and push changes back to github
  46. {pygmentize:: text}
  47. git rebase --hard
  48. git push --tags
  49. {pygmentize}
  50. * make sure scalate-website/ext/Website.scala has the latest version information.
  51. * update the website (see below on making a branch)
  52. * announce the release on the [mailing list](../community.html)
  53. * drink beers!
  54. ## Creating a branch for this release and website changes
  55. If this is a major release...
  56. * create a branch for this new release. For example if you've just done ${project_version} then do this...
  57. {pygmentize:: text}
  58. git co scalate-project-${project_version} -b scalate-${project_version}.x
  59. git push origin scalate-${project_version}.x
  60. {pygmentize}
  61. * 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...
  62. remote /forge/dav/#{project_id}
  63. * check that index.page and metainfo have at the correct release number
  64. * 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}**
  65. * ensure that the master branch has its Rakefile to point to the snapshot area
  66. remote /forge/dav/#{project_id}/versions/snapshot
  67. * ensure also that index.page has the new snapshot version number in it
  68. * kick off the TeamCity CI build for the [scalate last release](http://ci.fusesource.com/teamcity/viewType.html?buildTypeId=bt119&tab=buildTypeStatusDiv) project
  69. * check the new version appears on the [home page](http://scalate.fusesource.org/)
  70. * 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
  71. 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)
  72. ## Update the Homebrew formula
  73. * clone the [scalate homebrew repo](http://github.com/scalate/homebrew) if you've not done so yet
  74. * hack the Library/Formula/scalate.rb file in the [usual homebrew way](http://wiki.github.com/mxcl/homebrew/formula-cookbook)
  75. * zap the md5 from /usr/local/Library/Formula/scalate.rb
  76. * edit the version number in the formula
  77. * run the following command
  78. {pygmentize:: text}
  79. brew install -i scalate
  80. {pygmentize}
  81. * fill in the md5
  82. * check the install worked
  83. * copy the scalate.rb into your Library/Formula of your homebrew clone
  84. * push your changes to homebrew.git
  85. * create an issue [like this one](http://github.com/mxcl/homebrew/issues/issue/2023)