Add versioning contract: semver policy, breaking change sections, schema_version guard
- CHANGELOG: add ### Breaking Changes section to all versions (None for 1.1–1.3) - README: add Versioning section with semver table and floating tag explanation - schema/config-schema.json: add schema_version field (const: 1, optional) - lib/config.sh: fail fast if schema_version is present and unsupported Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
12
README.md
12
README.md
@@ -63,6 +63,18 @@ Run `josh-sync preflight` to validate your setup.
|
||||
- **[Architecture Decision Records](docs/adr/)** — Design rationale and trade-offs
|
||||
- **[Changelog](CHANGELOG.md)** — Version history
|
||||
|
||||
## Versioning
|
||||
|
||||
josh-sync follows [semver](https://semver.org/):
|
||||
|
||||
| Bump | Meaning | Action required |
|
||||
|------|---------|-----------------|
|
||||
| **Patch** (1.x.**y**) | Bug fixes only | Safe to upgrade |
|
||||
| **Minor** (1.**y**.0) | New optional config fields, new commands, new action inputs | Safe to upgrade; new features are opt-in |
|
||||
| **Major** (**y**.0.0) | Removed or renamed config fields, CLI flags, action inputs, env vars, or state format | Read the **Breaking Changes** section in the changelog before upgrading |
|
||||
|
||||
CI workflows pin to a floating major tag (e.g. `@v1`). A breaking change bumps the major version and moves the tag — `@v1` workflows keep working until you explicitly update to `@v2`.
|
||||
|
||||
## CLI
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user