These are the steps to take to release a new version of WP Crontrol (for contributors who have push access to the GitHub repo).
-
Check the milestone on GitHub for open issues or PRs. Fix or reassign as necessary.
-
If this is a non-patch release, check issues and PRs assigned to the patch or minor milestones that will get skipped. Reassign as necessary.
-
Ensure you're on the
developbranch and all the changes for this release have been merged in. -
Ensure
readme.mdandreadme.txtcontain up to date "Tested up to" versions, descriptions, FAQs, screenshots, etc. -
Ensure
.gitattributesis up to date with all files that shouldn't be part of the build.-
To do this, export the archive then check the contents for files that shouldn't be part of the package:
git archive --output=wp-crontrol.zip HEAD
-
-
Run the tests and ensure everything passes:
composer test -
Prepare a changelog for the Releases page on GitHub.
-
Install the Node dependencies:
npm install -
Bump the plugin version number:
-
For a patch release (1.2.3 => 1.2.4):
npm run bump:patch -
For a minor release (1.2.3 => 1.3.0):
npm run bump:minor -
For a major release (1.2.3 => 2.0.0):
npm run bump:major
-
-
git push origin develop -
Wait until (and ensure that) the tests pass
-
git push origin develop:release -
Wait for the Build Release action to complete
-
Enter the changelog into the release on GitHub and publish it.
-
Approve the release on the WordPress.org release management dashboard.
-
git push origin develop:trunk
Publishing a release on GitHub triggers an action which deploys the release to the WordPress.org Plugin Directory. No need to touch Subversion.
New milestones are automatically created for the next major, minor, and patch releases where appropriate.
- If this is a non-patch release, manually delete any unused patch and minor milestones on GitHub.
- Resolve relevant threads on the plugin's support forums.
Assets such as screenshots and banners are stored in the .wordpress-org directory. These get deployed as part of the automated release process too.
In order to deploy only changes to assets and the readme file, push the change to the deploy branch. This allows for the "Tested up to" value to be bumped as well as assets to be updated in between releases. Changes to files other than assets and the readme file will be ignored.