Skip to content

Releases

Felix Arntz edited this page Mar 28, 2022 · 21 revisions

Releases are managed using ZenHub release (refer to releases documentation).

Preparing a release


Step

Task
                                  
Role
1. Generate changelog via automation script. Lead Engineer
2. Paste changelog into changelog section of readme.txt. Lead Engineer
3. Bump plugin version across plugin files:
  • google-site-kit.php header as well as the GOOGLESITEKIT_VERSION constant
  • readme.txt header
Lead Engineer
4. Replace all instances of n.e.x.t and n_e_x_t in the codebase with the new version number in the applicable format. Lead Engineer
5. Run composer install && npm install to update composer and npm lock files. Lead Engineer
6. Commit against the develop branch. Lead Engineer
7. Merge develop into main branch. Lead Engineer

Packaging and testing a release


Step

Task
                                  
Role
1. Ensure that the "Plugin Zip Files" GitHub action completed successfully for the latest main commit. Engineer
2. Download the packaged ZIP. Engineer
3. Ensure that the zip file is not broken by extracting it and double checking for all the plugin files. Engineer
4. Smoke test the release on any live site, and run through plugin setup and a few common tasks in the UI to ensure functionality. Engineer

Pushing a release


Step

Task
                                  
Role
1. Prepare release in wordpress.org SVN repository:
  • Change the "Stable tag" in trunk/readme.txt to the previous version to not update it right away
  • Run svn ci -m "updated to version v.e.r.s.i.o.n (without stable tag)"
  • Run svn copy https://plugins.svn.wordpress.org/google-site-kit/trunk https://plugins.svn.wordpress.org/google-site-kit/tags/v.e.r.s.i.o.n -m "tagged version v.e.r.s.i.o.n (without stable tag)"
  • Run svn up to get the new tag directory
  • Update the "Stable tag" in /tags/v.e.r.s.i.o.n/readme.txt to that (new) version's stable tag
  • Run svn ci -m "updated tags/v.e.r.s.i.o.n stable tag"
Lead Engineer
2. At this point the tag is published, but it will not provided as an available update yet. Wait until wordpress.org language packs for the new tag have been generated. This may take up to a few hours. Lead Engineer
3. Publish release in GitHub repository and include the changelog copied from readme.txt in the description. Lead Engineer
4. Publish release in wordpress.org SVN repository:
  • Change the "Stable tag" in trunk/readme.txt to the new version
  • Run svn ci -m "updated stable tag to version v.e.r.s.i.o.n"
Lead Engineer
5. Close the release on ZenHub. Lead Engineer

Changelog

Release changelogs are created by an automation script that accumulates changelog messages from issues associated with a given milestone.

Changelog messages

  • Changelog messages are added in the PR-related issue, within its reserved section, which is pre-populated from the issue template.
  • Changelog messages start with a verb in its imperative form (e.g. “Fix bug xyz”), preferably one of the following words:
    • Add (for features)
    • Introduce (for features)
    • Enhance (for enhancements)
    • Improve (for enhancements)
    • Change (for misc changes)
    • Update (for misc changes)
    • Modify (for misc changes)
    • Remove (for removal)
    • Fix (for bug fixes)
    • N/A (skip changelog message)

Changelog format

  • The changelog messages are categorized as follows:
    • Added
    • Enhanced
    • Changed
    • Fixed
  • Changelog messages are automatically assigned to one of the defined categories based on the first word the message starts with. Default: “Changed”.
  • Changelogs with the message “N/A” are skipped.

Maintainers must ensure that changelog messages are clear and follow the formatting guidelines.