Skip to content

Releasing All in One SEO Pack to wordpress.org

Michael Torbert edited this page Dec 20, 2019 · 19 revisions

First make sure to update the Changelog. Next, go through the steps below and document/mention each major step in Slack.

Prepping release in Github

  1. Go to the branch https://github.com/semperfiwebdesign/all-in-one-seo-pack/tree/x.y.z
  2. Change the version in readme.txt and in all three places in all_in_one_seo_pack.php and commit to branch.
  3. Click "Compare & pull request".
  4. Make sure the source/target branch selector is "base:master <- compare: (release version)". This is important, as the compare branch may not be the one you want if multiple branches exist.
  5. Change the title to "releasing x.y.z" and clear out the body text.
  6. Scroll down and make sure code changes look right at a glance for this version.
  7. Click "Create pull request".

Final Review in Github:

  1. Click "Commits" tab and ensure everything looks right for this version at a glance (no extraneous commits that don't belong, no missing commits that should be there).
  2. Click "Files changed" tab and do the same as in #1.
  3. Make sure all checks pass.

This needs to be done by a second person

  1. Review the above steps 1-3 "Final Review in Github" for extraneous commits and no missing commits and that all checks pass.

Releasing:

  1. Make sure today is not Friday (unless it's an urgent release).
  2. Click the down arrow next to the merge button and select "Create a merge commit".
  3. Make sure the button says "Merge pull request"
  4. If there are no conflicts, click "Merge pull request". MUST NOT SAY SQUASH AND MERGE
  5. Click "Confirm merge".
  6. Click the "Code" tab in the top-left, which should take you to the Master branch.
  7. Click "releases" in the middle of the numbers summary row.
  8. Click "Draft a new release".
  9. Enter the version number for "Tag version" making sure it's using "Target:master".
  10. Give the release a name. This can be the version number, descriptive, or another meaningful name to you (ie Jazz musicians for WP releases).
  11. Click "Publish release".

Prepping WordPress.org release:

  1. Download the zip by clicking "Source code (zip)" and unzip. Enter the directory in one Finder/Explorer window.
  2. In another folder, you should have the project from wordpress.org checked out via svn. Open the trunk directory in a second Finder/Explorer window.
  3. Open the checked out project in a CLI (terminal on Mac OS). You should be in the project's root directory (the one containing trunk, tags, assets, and branches. Type svn up.
  4. Select and drag all the plugin files/folders from the version download (all-in-one-seo-pack-x.y.z) into trunk/ (make sure there are no non-release files/folders like .github that made their way into the download).
  5. Replace all files/folders.

Releasing to WordPress.org

  1. Open the checked out project in a CLI (terminal on Mac OS). You should be in the project's root directory (the one containing trunk, tags, assets, and branches. Type ls on Mac OS or DIR in Windows to verify you're in the project's root.
  2. Type svn add --force . to recursively add all new files/folders.
  3. Type svn stat | awk '/^!/ {print $2}' | xargs svn rm --force to recursively remove non-existing files/folders.
  4. Type svn diff and check that the changes are correct for the version.
  5. Type svn cp trunk tags/x.y.z where you replace "x.y.z" with the version number.
  6. Type svn ci -m 'releasing version x.y.z'.

Verify release on a test site

  1. Open a website with All in One SEO Pack core from wordpress.org installed.
  2. Click update to update to the latest version.
  3. Look around and make sure everything is right. Verify some of the new changes are present, the new version number is correct, etc.

Next Step: Creating All in One SEO Pack Pro

Improvements for later:

  1. https://help.github.com/articles/creating-releases/
  2. http://scribu.net/blog/deploying-from-git-to-svn.html?replytocom=5231

Is this an improvement over what we have above to add unversioned files/folders recursively? svn stat | awk '/^?/ {print }' | xargs svn add > /dev/null 2>&1