-
Notifications
You must be signed in to change notification settings - Fork 384
Creating Releases
Weston Ruter edited this page Feb 1, 2024
·
21 revisions
Use these icons to categorize changelog line items, as done by AMP core:
- ✨ New feature
- 🐛 Bug fix
- 🔥 P0 fix
- ✅ Tests
- ❄️ Flaky tests
- 🚀 Performance improvements
- 🖍 CSS / Styling
- ♿ Accessibility
- 🌐 Internationalization
- 📖 Documentation
- 🏗 Infrastructure / Tooling / Builds / CI
- ⏪ Reverting a previous change
- ♻️ Refactoring
- 🚮 Deleting code
- Create changelog draft on Wiki page.
- Check out the branch intended for release (
develop
for major,x.y
for minor) and pull latest commits. - Bump plugin versions in
amp.php
(2×: the metadata block in the header and also theAMP__VERSION
constant). Commit and push. - Wait for the GitHub actions to create new build ZIPs for the branch. Alternatively, you may create the build ZIP yourself:
npm install && composer selfupdate --2 && composer install --prefer-source --no-interaction && npm run build:prod
. - Install the
amp.zip
onto a normal WordPress install running a stable release build; do smoke test to ensure it works. -
Draft new release on GitHub targeting the required branch (
develop
for major,x.y
for minor).- Use the new plugin version as the tag (e.g.
1.2-beta3
or1.2.1-RC1
) - Use new version as the title, followed by some highlight tagline of the release.
- Attach the
amp.zip
build to the release. - Add changelog entry to the release, link to compare view comparing previous release, and link to milestone.
- Make sure “Pre-release” is checked.
- Use the new plugin version as the tag (e.g.
- Verify the release branch has the pushed commit! Double check GHA.
- Publish GitHub release.
- (Deprecated?) Create built release tag (from the just-created
build
directory):- Do
git fetch origin --tags && ./bin/tag-built.sh
- Add link from release notes.
- Do
- Make announcements on Twitter and the #amp-wp channel on AMP Slack, linking to release post or GitHub release.
- Bump version in release branch, e.g.
…-alpha
to…-beta1
and…-beta2
to…-RC1
- If prerelease is RC, create the release branch now. Bump
develop
to alpha. - Make any necessary changes to Development Builds Wiki page.
- Copy these instructions into a Google Doc and share with those doing the release. Convert bullets to checkboxes.
- Create changelog draft on Wiki page. Add changelog entry for each issue/PR which isn't a dependency update. Add
Changelogged
label when added. Keep track of contributors. - Update readme including the description, contributors, and screenshots (as needed).
- Check out the branch intended for release (
develop
) and pull latest commits. - Update metadata:
1. Update ecosystem files.
- Bump plugin versions in
amp.php
(×2: the metadata block in the header and also theAMP__VERSION
constant). Verify vianpx grunt shell:verify_matching_versions
. Ensure patch version number is supplied for major releases, so1.2-RC1
should bump to1.2.0
. - Ensure "Tested Up To" is updated to current WordPress version.
- Re-run
wp amp docs generate
(alsonpx wp-env run cli wp amp docs generate
), verify changes, and commit any docs updates. (This is not working with wp-env.) - Commit and push.
- Bump plugin versions in
- Verify the release branch has the pushed commit! Double check GHA.
- Download the ZIP from the GHA build and checksum:
wget -O amp.zip.sha256 https://storage.googleapis.com/ampwp_github_artifacts/refs/heads/develop/prod/amp.zip.sha256; wget -O amp.zip https://storage.googleapis.com/ampwp_github_artifacts/refs/heads/develop/prod/amp.zip; rm -r build; mkdir build; cd build; unzip ../amp.zip; cd ..;
-
Draft new release on GitHub targeting the required branch (
develop
for major,x.y
for minor):- Use the new plugin version as the tag (e.g.
1.2.0
or1.2.1
) - Attach the
amp.zip
build to the release. - Attach sha256 checksum as amp.zip.sha256.
- Add changelog entry to the release and link to compare view comparing previous release.
- Use the new plugin version as the tag (e.g.
- Install the
amp.zip
onto a normal WordPress install running a stable release build; do smoke test to ensure it works. - Optionally do sanity check by comparing the
build
directory with the previously-deployed plugin on WordPress.org for example:svn export https://plugins.svn.wordpress.org/amp/trunk /tmp/amp-trunk; diff -r /tmp/amp-trunk/ ./build/
(instead of straightdiff
, it's best to use a GUI likeidea diff
,phpstorm diff
,opendiff
, ormeld
). - Run
npm run deploy
to commit the plugin to WordPress.org. - Open confirmation email.
- Click view changes and compare SVN diff with previous release.
- Publish GitHub release.
- Press to Confirm the release on WordPress.org.
- Verify the release is available on WordPress.org; try installing it on a WordPress install and confirm it works.
- Create built release tag (from the just-created
build
directory):- Do
git fetch origin --tags && ./bin/tag-built.sh
- Add link from release notes.
- Do
- Bump version in release branch. For example, bump to
1.3.0-alpha
ondevelop
. - Update docs on
amp-wp.org
, where$version
is the version that was just released:terminus remote:wp wordpress-amp.live -- docs generate --version=$version | cat -
- Close the GitHub milestone.
- Archive cards in project in Passed QA column.
- Make any necessary changes to Development Builds Wiki page.
- Alert any community members who are awaiting for fixes either on the support forum or GitHub issues.
Notice: Please also see the plugin documentation on amp-wp.org