Bug reports, code contributions, and general feedback are very welcome. These should be submitted through the GitHub repository. Development happens in the develop
branch, and any pull requests should be made against that branch please.
- Reviews on WordPress.org
- Reporting Security Issues
- Inclusivity and Code of Conduct
- Setting up Locally
- Running the Tests
- Releasing a New Version
If you enjoy using WP Crontrol I would greatly appreciate it if you left a positive review on the WordPress.org Plugin Directory. This is the fastest and easiest way to contribute to WP Crontrol 😄.
If you discover a security issue in WP Crontrol, please report it to the security program on HackerOne. Do not report security issues on GitHub or the WordPress.org support forums. Thank you.
Contributions to WP Crontrol are welcome from anyone. Whether you are new to Open Source or a seasoned veteran, all constructive contribution is welcome and I'll endeavour to support you when I can.
This project is released with a contributor code of conduct and by participating in this project you agree to abide by its terms. The code of conduct is nothing to worry about, if you are a respectful human being then all will be good.
You can clone this repo into your wp-content/plugins
directory but you'll need to install the development dependencies before activating the plugin.
- Composer
- Docker Desktop if you want to run the tests
- Node if you are packaging a release
Install the PHP dependencies:
composer install
The test suite includes acceptance tests which run in a Docker container. Ensure Docker Desktop is running before running the tests.
To run the whole test suite which includes PHPCS code sniffs, PHPStan static analysis, and WPBrowser acceptance tests:
composer test
To run just the code sniffs:
composer test:cs
To run just the static analysis:
composer test:phpstan
To run just the acceptance tests:
composer test:acceptance
If you're repeatedly running the tests during development, to speed things up you can start and stop the containers manually and then they won't be started and stopped each time you run the tests:
composer test:start
composer test
composer test
composer test
composer test:stop
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
develop
branch and all the changes for this release have been merged in. -
Ensure
readme.md
contains up to date descriptions, "Tested up to" versions, FAQs, screenshots, etc. -
Ensure
.gitattributes
is 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 build passes
-
git checkout master
-
git merge develop
-
git push origin master
-
git push origin master:release
-
Wait for the Build Release action to complete
-
Enter the changelog into the release on GitHub and publish it.
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.
- Close the milestone.
- If this is a non-patch release, manually delete any unused patch and minor milestones on GitHub.
- Check the new version has appeared on the WordPress.org plugin page (it'll take a few minutes).
- Resolve relevant threads on the plugin's support forums.
- Consume tea and cake as necessary.
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, push the change to the deploy
branch and they will be deployed if they're the only changes in the branch since the last release. This allows for the "Tested up to" value to be bumped as well as assets to be updated in between releases.