|
| 1 | +# Versioning Strategy |
| 2 | + |
| 3 | +This package follows [Semantic Versioning](https://semver.org/). |
| 4 | + |
| 5 | +## When to bump |
| 6 | + |
| 7 | +### Major (breaking) |
| 8 | +- Shape **removed** from the library |
| 9 | +- Shape `blockId` **renamed** (breaks existing diagram matching) |
| 10 | +- Shape **layer reassignment** (changes categorization) |
| 11 | +- CLI command removed or behavior changed incompatibly |
| 12 | + |
| 13 | +### Minor (feature) |
| 14 | +- **New shapes** added to the library |
| 15 | +- New CLI commands or options |
| 16 | +- New YAML schema fields (backward-compatible) |
| 17 | +- New layer added |
| 18 | + |
| 19 | +### Patch (fix) |
| 20 | +- **Style updates** (color, stroke, font changes) — handled by upgrade command |
| 21 | +- Bug fixes in parser, matcher, differ, or upgrader |
| 22 | +- Documentation updates |
| 23 | +- Dependency updates |
| 24 | + |
| 25 | +## Deprecation process |
| 26 | + |
| 27 | +1. Shape marked `deprecated: true` in YAML with `deprecatedSince` version |
| 28 | +2. CLI `check` command warns on deprecated shapes |
| 29 | +3. Shape remains functional for **2 minor versions** |
| 30 | +4. Shape removed in next major version |
| 31 | +5. If replaced: `replacedBy` field points to new blockId, upgrade command handles migration |
| 32 | + |
| 33 | +## Commit conventions |
| 34 | + |
| 35 | +Use [Conventional Commits](https://www.conventionalcommits.org/): |
| 36 | +- `feat:` → minor bump |
| 37 | +- `fix:` → patch bump |
| 38 | +- `feat!:` or `BREAKING CHANGE:` → major bump |
| 39 | +- `chore:`, `docs:`, `test:`, `refactor:` → no version bump |
| 40 | + |
| 41 | +## Changelog |
| 42 | + |
| 43 | +Generated from conventional commits using the release workflow. |
| 44 | +Each GitHub Release includes auto-generated release notes. |
| 45 | + |
| 46 | +## Version files |
| 47 | + |
| 48 | +When bumping version, update both: |
| 49 | +1. `package.json` → `version` field |
| 50 | +2. `src/library/versions.ts` → add new `VersionEntry` |
0 commit comments