This document outlines the complete process for releasing new versions of GiveWP.
- Pre-Release Preparation
- Version Update Checklist
- Testing & Quality Assurance
- Release Execution
- Post-Release Verification
- Release Types
- Determine release type (major, minor, patch)
- Review all merged PRs since last release
- Ensure all intended features/fixes are merged
- Verify no critical issues are pending
- Coordinate with team on release timing
- Announce code freeze to development team
- Create release branch if needed (
release/x.x.x) - Ensure all CI/CD checks are passing
- Review and update user-facing documentation
- Verify developer documentation is current
- Check that all new features have proper documentation
- Update
* Version:in the plugin header (give.php) - Update main plugin constant version (
GIVE_VERSIONingive.php) - Update
Stable tag:inreadme.txt
- Update minimum GiveWP version for add-ons (
GIVE_RECURRING_MIN_GIVE_VERSION, etc.) - Update
Requires Give:inreadme.txtfor add-ons
Main plugin file (give.php):
-
Requires at least:(WordPress version) -
Requires PHP:(PHP version)
Readme file (readme.txt):
-
Requires at least:(WordPress version) -
Tested up to:(WordPress version) -
Requires PHP:(PHP version) -
= Minimum Requirements =section
- Find and replace all
@unreleasedtags with@since {version}# Example command to find @unreleased tags grep -r "@unreleased" src/ includes/ --include="*.php" # Replace with appropriate @since version find . -name "*.php" -exec sed -i 's/@unreleased/@since 4.3.2/g' {} \;
- Add new version entry to
readme.txtchangelog - Update
CHANGELOG.mdif maintained separately - Follow consistent changelog format:
= 4.3.2: June 3rd, 2025 =
* New: Added new functionality that does...
* Enhancement: Updated existing feature for...
* Change: Existing functionality is now...
* Security: Added additional security measures for...
* Fix: Resolved an issue where...- Run full PHPUnit test suite:
composer test - Run PHPStan static analysis:
composer phpstan - Verify all GitHub Actions/CI checks pass
- Run WordPress coding standards:
composer phpcs
- Test core donation functionality
- Verify payment gateways (Stripe, PayPal, etc.)
- Test form builder functionality
- Verify admin dashboard features
- Test donor dashboard functionality
- Check email notifications
- Verify reporting features
- Test with different WordPress versions
- Test with different PHP versions (if applicable)
- Test with popular themes
- Test with common plugins
- Verify multisite compatibility
- Test database migrations (if any)
- Check for memory leaks
- Verify query performance
- Test with large datasets
- Check frontend load times
- Verify all version numbers are correct
- Validate
readme.txtusing WordPress Validator - Preview
readme.txtusing WPReadme.com - Ensure changelog is complete and accurate
- Verify no debug code or console.log statements remain
- Run production build:
npm run build - Verify built assets are included
- Check that
.distignoreexcludes development files - Create release package/zip if needed
- Commit all version updates
- Create and push version tag:
git tag v4.3.2 && git push origin v4.3.2 - Merge release branch to main (if using release branches)
- Draft new release using [version] as tag & title, making sure target branch is set to Master. Double check everything, then generate release notes & publish release.
- Verify plugin is available on WordPress.org
- Test installation from WordPress.org
- Check automatic updates work correctly
- Monitor for immediate bug reports
- Monitor support forums for issues
- Check error tracking services for new errors
- Review download statistics
- Monitor social media/community feedback
- Watch for compatibility reports
- Breaking changes or significant new features
- Requires extensive testing and documentation updates
- May require user migration guides
- Consider beta/RC releases
- New features and enhancements
- Backward compatible
- Standard testing procedures
- Update feature documentation
- Bug fixes and security updates
- No new features
- Expedited testing for critical fixes
- Focus on regression testing
# Run all tests
composer test
# Check coding standards
composer phpcs
# Fix coding standards
composer phpcbf
# Run static analysis
composer phpstan
# Build assets
npm run build
# Development build with watch
npm run dev- Automated testing on PR and push
- Code quality checks
- WordPress compatibility matrix testing
- Security scanning
- Coordinates release timeline
- Performs version updates
- Manages release communication
- Oversees testing process
- Code review and approval
- Feature completion verification
- Documentation updates
- Technical testing
- Manual testing execution
- Compatibility verification
- User acceptance testing
- Bug reproduction and verification
- Release communication preparation
- Support documentation updates
- Community notification
- Post-release monitoring
For a quick release checklist, follow these essential steps:
- Update versions in
give.phpandreadme.txt - Replace @unreleased tags with
@since {version} - Add changelog entry to
readme.txt - Run tests and ensure they pass
- Validate readme.txt using WordPress validator
- Create git tag and push to repository
- Release to WordPress.org
- Monitor for issues post-release
Last updated: June 10, 2025 For questions about the release process, contact the development team.