4.9 KiB
Release Process
This document outlines the process for creating and publishing new releases of the plugin.
Version Numbering
This plugin follows Semantic Versioning (SemVer):
- MAJOR version (x.0.0): Incompatible API changes
- MINOR version (0.x.0): Add functionality in a backward-compatible manner
- PATCH version (0.0.x): Backward-compatible bug fixes
Pre-Release Checklist
Before creating a new release, complete the following checklist:
- Code Review: Ensure all code has been reviewed and approved
- Testing: Verify that all tests pass
- Unit tests
- End-to-end tests
- Manual testing in different environments
- Documentation: Update all relevant documentation
- README.md
- readme.txt
- Wiki pages
- Code comments
- Changelog: Update CHANGELOG.md with all changes since the last release
- Version Numbers: Update version numbers in:
- Main plugin file header
- Plugin initialization
- readme.txt
- package.json (if applicable)
- composer.json (if applicable)
Creating a Release
Manual Release Process
-
Create a Release Branch:
git checkout -b release/x.y.z -
Update Version Numbers:
- Update the version number in the main plugin file header
- Update the version number in the plugin initialization
- Update the "Stable tag" in readme.txt
- Update the version in package.json and composer.json (if applicable)
-
Update Changelog:
- Add a new section to CHANGELOG.md for the new version
- Add a new section to the Changelog in readme.txt
- Add a new section to the Upgrade Notice in readme.txt
-
Commit Changes:
git add . git commit -m "Bump version to x.y.z" -
Create a Pull Request:
- Push the release branch to GitHub
- Create a pull request against the main branch
- Have the pull request reviewed and approved
-
Merge the Pull Request:
- Merge the pull request into the main branch
-
Create a Release Tag:
git checkout main git pull git tag -a vx.y.z -m "Version x.y.z" git push origin vx.y.z -
Create a GitHub Release:
- Go to the GitHub repository
- Click on "Releases"
- Click "Draft a new release"
- Select the tag you just created
- Add a title and description
- Upload the built plugin ZIP file
- Publish the release
Automated Release Process
This plugin uses GitHub Actions to automate the release process:
-
Create a Release Branch:
git checkout -b release/x.y.z -
Update Version Numbers and Changelog (as described above)
-
Commit Changes:
git add . git commit -m "Bump version to x.y.z" -
Create a Pull Request (as described above)
-
Merge the Pull Request (as described above)
-
Create a Release Tag:
git checkout main git pull git tag -a vx.y.z -m "Version x.y.z" git push origin vx.y.z -
Automated GitHub Release:
- The GitHub Actions workflow will automatically:
- Build the plugin
- Create a GitHub release
- Upload the built plugin ZIP file
- Update the wiki (if configured)
- The GitHub Actions workflow will automatically:
Post-Release Tasks
After creating a release, complete the following tasks:
-
Verify the Release:
- Check that the GitHub release was created successfully
- Download the ZIP file and verify its contents
- Test the plugin by installing it from the ZIP file
-
Update Documentation:
- Update any external documentation that references the plugin version
- Update the plugin's website (if applicable)
-
Announce the Release:
- Announce the release on relevant channels (blog, social media, etc.)
- Notify users who have reported issues that are fixed in this release
-
Start Planning the Next Release:
- Create issues for the next release
- Update the project roadmap
Hotfix Process
For critical bugs that need to be fixed immediately:
-
Create a Hotfix Branch:
git checkout -b hotfix/x.y.z -
Fix the Bug:
- Make the necessary changes to fix the bug
- Add tests to prevent regression
-
Update Version Numbers and Changelog (as described above)
-
Commit Changes:
git add . git commit -m "Hotfix: description of the fix" -
Create a Pull Request (as described above)
-
Merge the Pull Request (as described above)
-
Create a Release Tag and GitHub Release (as described above)
Release Branches
This plugin uses the following branch strategy:
- main: The main development branch
- release/x.y.z: Temporary branches for preparing releases
- hotfix/x.y.z: Temporary branches for hotfixes
Conclusion
Following this release process ensures that releases are consistent, well-documented, and properly tested. It also helps users understand what has changed between versions and how to upgrade safely.