This repository was archived by the owner on Apr 10, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 361
creating a release
Jeff Kaufman edited this page May 9, 2014
·
44 revisions
When a new version of mod_pagespeed is released with a new version of PSOL we want to make a corresponding release. Process:
- Find the git commit on
trunk-tracking
that corresponds to the svn revision at which the mod_pagespeed release was branched. Call this RELCOMMIT. - run
git checkout RELCOMMIT
- merge in
master
:git merge master
git checkout -b release-VERSION-beta
-
git grep OLDVERSION
and replace all the usages. So I didgit grep 1.6.29.7
and changed all to1.7.30.1
. Commit this with a message likerelease: version 1.6.29.7 -> 1.7.30.1
. git checkout -b USERNAME-prepare-release-VERSION-beta
- Make whatever changes you need to get it to build against
http://modpagespeed.googlecode.com/svn/tags/VERSION/src
, including porting/backporting any tests. Ideally there are no changes here. - Run the standard tests:
$ test/run_tests.sh 8050 8051 /path/to/mod_pagespeed/ /path/to/sbin/nginx
- Run the tests again with
TEST_NATIVE_FETCHER=true TEST_SERF_FETCHER=false
. - Run steps 7 and 8 again with USE_VALGRIND=true.
- If you made any changes in step 7 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 - When those are merged and pushed github will automatically generate https://github.com/pagespeed/ngx_pagespeed/archive/release-VERSION-beta.zip
git checkout release-VERSION-beta
git tag -a vVERSION-beta -m "Release VERSION beta" && git push origin vVERSION-beta
- 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
- 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 mergemaster
intotrunk-tracking
in step 1 and nothing has been added to it since or else this will lose work. - 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:
- If you're releasing from the 1.N branch and
master
is also on the 1.N branch, check outmaster
. Otherwise check out release-PREV-VERSION-beta (If making 1.7.30.8 thePREV-VERSION
would be 1.7.30.7.) The reason to go from master is we want to include any bug fixes that have been made on the master branch. - Follow all the steps above, starting with step 4.
- In step 14, instead of replacing the
master
branch, mergerelease-VERSION-beta
intomaster
.
The easiest place to go wrong in this process is if the binaries for the PSOL release aren't generated properly. Step 8 should catch this, and step 15 definitely should if there's anything wrong.