Skip to content
This repository has been archived by the owner on Apr 21, 2023. It is now read-only.

creating a release

Otto van der Schaaf edited this page Jun 20, 2017 · 44 revisions

Beta release process

Only if this is a new release from master, create a release branch

  1. Find the git commit on master that corresponds to the revision at which the mod_pagespeed release was branched. Call this RELCOMMIT.
  2. run git checkout RELCOMMIT
  3. Figure out the number for the new branch you want to create.
  4. Create the new branch with git checkout -b NEWBRANCH
  5. Remove the testing-dependencies directory: git rm -r testing-dependencies/

Update the branch for the new release (start here for a point release)

  1. If you didn't create it above, checkout the release branch: git checkout BRANCH
  2. Update the file PSOL_BINARY_URL to contain "https://dl.google.com/dl/page-speed/psol/VERSION-$BIT_SIZE_NAME.tar.gz". (On an existing release branch it will have the previous PSOL version, while on a new branch it will have some text you should delete.)
  3. git grep OLDVERSION and replace any remaining usages. For instance, I did git grep 1.6.29.7 and changed all to 1.7.30.1.
  4. Commit this with a command like git commit -am 'release: version 1.7.30.1'.
  5. Push this draft release branch to github: git push origin BRANCH
  6. git tag -a vVERSION-beta -m "Release VERSION beta" && git push origin vVERSION-beta
  7. github will automatically generate https://github.com/pagespeed/ngx_pagespeed/archive/vVERSION-beta.zip
  8. Run the automated installer to check that everything works. This requires the PSOL release has been pushed.
    bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version latest --ngx-pagespeed-version VERSION
  9. Follow the manual build instructions from a user's perspective. These are the ones at https://github.com/pagespeed/ngx_pagespeed/tree/BRANCH#readme
  10. You're ready to announce the release!

Later, when you announce the release, update the latest-beta tag to point to the new release:

git checkout vVERSION-beta && \
  git tag -d latest-beta && \
  git tag -a latest-beta -m "Marking VERSION as latest-beta" && \
  git push -f origin latest-beta

Stable release process

We don't change code between beta and stable, it's just a tagging thing. So retag the beta version as latest-stable:

VERSION=1.11.33.4
git checkout v${VERSION}-beta

git tag -d latest-stable
git tag -a latest-stable -m "Marking $VERSION as latest-stable"

git push -f origin latest-stable

We also need to tag the stable version itself:

VERSION=1.12.34.2
git checkout v${VERSION}-beta
git tag -a v${VERSION}-stable -m "Release $VERSION as stable"                                                                                                                           
git push origin v${VERSION}-stable