A release represents a Git tag in semver format, cut from the main branch of an SMI rrepository. Each API spec is adresable when refereced outside the SMI repo in the format: <smi-spec-repo>/blob/<semver>/apis/<kind>/<version>/<kind>.md
e.g. https://github.com/servicemeshinterface/smi-spec/blob/v0.5.0/apis/traffic-split/v1alpha3/traffic-split.md
Changes to the spec are made by opening pull requests against the draft branch. Before a release, the desired changes, for the next version, are merged from draft into main.
SMI spec release steps:
- Open a pull request from draft into main
- Create the changelog for the next version
- Merge PR when approved
- Tag the main branch with the next version (semver)
- Spec release vNext
- Implement changes in the SDK repo
- Update CRDs
- SDK release vNext
- Add links to CRDs vNext in the spec repo?
- Implement changes in the SDK consumers e.g. smi-metrics
- Consumers release vNext