-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Labels
DiscussionInitial issue state - proposed but not yet acceptedInitial issue state - proposed but not yet accepted
Description
Problem Statement
Currently, the branch management workflow follows this pattern:
- New features are merged into
devbranch devis then directly merged intomaster
Issues with current approach:
- This branch management model lacks practical significance
- New content merged into
devis merged intomasterwithout proper verification - The goal of ensuring all new features and changes are validated before release is not achieved
Proposed Solution
New Branch Management Strategy
1. Feature Development Flow
- New features should be merged directly into
master masterbranch serves as the main development branch and continuously accepts new features
2. Release Branch Creation
- After periodic intervals, create a release branch from
master(e.g.,release-v3.9-rc) - Once created, the release branch becomes independent and no new features are added to it
masterbranch continues to merge new features independently
3. Release Branch Validation Process
Release branches must go through a comprehensive validation process before actual release:
-
Functional Testing
- All functional test cases must pass
-
Performance Testing
- Performance benchmarks must be validated
-
QA Validation
- Testers must complete their validation cycles
-
Testnet Deployment
- Must run on testnet for at least 2 months before release
-
Final Release
- After successful validation:
release-v3.9-rc→release-v3.9
- After successful validation:
4. Bug Fixes and Maintenance
- If bugs are discovered, critical fixes that must be merged should go into:
- The most recent release branch(es) still running in production
- Some fixes need to be:
- Merged into
master(for future releases) - Cherry-picked to the most recent 1 or 2 release branches (for current production releases)
- Merged into
Benefits
- Clear separation between development and release cycles
- Proper validation of all features before production release
- Stable release branches that only receive critical fixes
- Continuous development on master without blocking releases
- Extended testnet validation ensures production readiness
Example Workflow
New features should be released smoothly, rather than all at once.
master (continuous development)
│
├─→ release-v3.8 (Running in production)
| |-> Only Hotfixes are merged into this branch
|
│
├─→ release-v3.9-rc (created from master)
│ │
│ ├─→ Testing & Validation (2+ months)
| ├─→ Only critical fixes are merged into this branch
│ │
│ └─→ release-v3.9 (final release)
│
└─→ (master continues with new features)
vncoelho and shargon
Metadata
Metadata
Assignees
Labels
DiscussionInitial issue state - proposed but not yet acceptedInitial issue state - proposed but not yet accepted