3.3 KiB
3.3 KiB
WP Allstars Plugin Development Workflow
This document outlines the development workflow for the WP Allstars Plugin to ensure stable and reliable feature implementation.
Development Principles
- Stability First: The primary goal is maintaining a stable plugin that works reliably
- Incremental Changes: Implement changes in small, manageable increments
- Complete Testing: Every change must be thoroughly tested before integration
- Documentation: All features and changes must be well-documented
Branch Structure
main
- Production-ready code, always stablev0.2.3-stable
- Our current stable development branchfeature/v0.2.3-stable/{feature-name}
- Feature branches for new development
Development Workflow
1. Feature Planning
- Identify a feature from the ROADMAP.md file to implement
- Review any existing implementation in unstable versions
- Document the implementation plan in ROADMAP.md
- Create a new feature branch from the stable base
git checkout v0.2.3-stable
git checkout -b feature/v0.2.3-stable/sync-guard
2. Feature Implementation
-
Start with the smallest possible functional change
-
Commit frequently with descriptive commit messages including stability classification
-
Example commit message format:
[EXPERIMENTAL] Add basic sync guard detection functionality - Adds file existence check for .syncing flag - Implements conditional loading based on flag - Does not yet handle admin notices
-
Reference the ROADMAP.md and TESTING.md documents while implementing
3. Testing
- Complete all relevant tests from TESTING.md
- Add feature-specific tests if needed
- Test in a clean WordPress environment
- Test with WP_DEBUG enabled
- Document any issues found and fix them
4. Code Review
-
Self-review code for:
- PHP best practices
- WordPress coding standards
- Security considerations
- Performance implications
- Error handling
-
Consider peer review if possible
5. Integration
- Create a pull request to merge into the stable branch
- Summarize changes, testing performed, and any caveats
- Once approved, merge using
--no-ff
to preserve feature history
git checkout v0.2.3-stable
git merge --no-ff feature/v0.2.3-stable/sync-guard
- Tag new version if appropriate:
git tag v0.2.3.1-stable
git push origin v0.2.3.1-stable
- Update STABILITY.md with the new version information
6. Post-Integration
- Deploy to test environment and confirm functionality
- Update ROADMAP.md to reflect the implemented feature
- Clean up feature branch if no longer needed
Handling Unstable Code References
When examining code from unstable versions:
- Never copy-paste directly - Understand the approach and reimplement
- Isolate problematic code - Identify why it might have failed
- Take the best ideas - Implement the concept, not the exact implementation
- Document the reference - Note which version inspired each implementation
Versioning Scheme
vX.Y.Z
- Major.Minor.PatchvX.Y.Z-stable
- Stable development branchesvX.Y.Z.N-stable
- Minor updates to stable branches
Continuous Improvement
- Regularly review and update these development procedures
- Document lessons learned
- Improve testing procedures based on discoveries