- Add VERSIONING.md documenting 0.1.x/0.2.x branch strategy - Add docs/CHANGELOG.md with release notes for v0.1.0-v0.2.1 - Update CONTRIBUTING.md: fix master->main, add develop branch - Closes #120
2.2 KiB
2.2 KiB
Versioning Policy
Branch Strategy
Kugetsu uses a dual-branch model:
| Branch | Purpose | Version | Stability |
|---|---|---|---|
main |
Stable releases | 0.1.x | Production-ready |
develop |
Experimental work | 0.2.x | Active development |
Branch Definitions
-
main: Contains the latest stable 0.1.x releases. All changes here should be production-ready and backport-compatible when possible. -
develop: Contains work for the next major version (0.2.x). This branch may contain experimental features that could change or be removed.
Version Format
Versions follow Semantic Versioning:
MAJOR.MINOR.PATCH
- MAJOR: Incompatible API/behavior changes
- MINOR: New functionality (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
Backport Compatibility
Backport-Compatible Changes (0.1.x)
- Bug fixes
- Documentation updates
- Performance improvements
- Adding new inputs/options (must have sensible defaults)
- Changes that only affect 0.2.x-specific features
NOT Backport-Compatible
- Removing or renaming existing options
- Changing default values of existing options
- Changing behavior of existing commands
- Introducing breaking changes to the API/shell interface
Deprecation Policy
When introducing breaking changes:
- Deprecate in minor X: Add warning messages, document the change
- Remove in major X+1: The breaking change is removed in the next major version
Example:
- Option
--old-flagdeprecated in v0.1.5 - Option
--old-flagremoved in v1.0.0 (not v0.2.0)
What Constitutes a Version Bump
| Change Type | Version Bump |
|---|---|
| Add new command/option | MINOR |
| Bug fix | PATCH |
| Change default value | MINOR (may warrant PATCH) |
| Add new required input | MAJOR |
| Remove deprecated feature | MAJOR |
| Change behavior of existing command | MINOR (needs deprecation first) |
Release Process
- Changes are developed on feature branches
- PRs are opened against
mainfor 0.1.x changes, ordevelopfor 0.2.x - After review and approval, changes are squash-merged
- Releases are tagged from
mainafter significant changes