Skip to content
Jeff Kaufman edited this page Mar 17, 2014 · 45 revisions

When a new version of mod_pagespeed is released with a new version of PSOL we want to make a corresponding release. Process:

  1. Check out trunk-tracking, merge master into it.
  2. git checkout -b release-VERSION-beta
  3. git grep OLDVERSION and replace all the usages. So I did git grep 1.6.29.7 and changed all to 1.7.30.1. Commit this with a message like release: version 1.6.29.7 -> 1.7.30.1.
  4. git checkout -b USERNAME-prepare-release-VERSION-beta
  5. Make whatever changes you need to get it to build against http://modpagespeed.googlecode.com/svn/tags/VERSION/src, including porting/backporting any tests.
  6. Run the standard tests:
    $ test/run_tests.sh 8050 8051 /path/to/mod_pagespeed/ /path/to/sbin/nginx
    
  7. Run the tests again with TEST_NATIVE_FETCHER=true TEST_SERF_FETCHER=false.
  8. Run steps 7 and 8 again with USE_VALGRIND=true.
  9. If you made any changes in step 5 or in response to failing tests, send your changes out for review as a pull request against release-VERSION-beta: https://github.com/pagespeed/ngx_pagespeed/compare/release-VERSION-beta...USERNAME-prepare-release-VERSION-beta
  10. When those are merged and pushed github will automatically generate https://github.com/pagespeed/ngx_pagespeed/archive/release-VERSION-beta.zip
  11. git checkout release-VERSION-beta
  12. git tag -a vVERSION-beta -m "Release VERSION beta" && git push origin vVERSION-beta
  13. Follow the build instructions from a user's perspective. These are the ones at https://github.com/pagespeed/ngx_pagespeed/tree/release-VERSION-beta#readme
  14. If this all works, we need to replace the master branch with the release branch: git push -f origin release-VERSION-beta:master. Make sure you remembered to merge master into trunk-tracking in step 1.
  15. You're ready to announce the release!

If you're doing a point release, that is a release based off of another release, like "1.7.30.2" based on "1.7.30.1" the steps are a slightly different:

  1. Check out release-PREV-VERSION-beta (If making 1.7.30.8 the PREV-VERSION would be 1.7.30.7.)
  2. Follow all the steps above, starting with step 2.
  3. In step 14, instead of replacing the master branch, merge release-VERSION-beta into master.

The easiest place to go wrong in this process is if the binaries for the PSOL release aren't generated properly. Step 6 should catch this, and step 13 definitely should if there's anything wrong.