Skip to content

Commit 36c1129

Browse files
authored
Merge pull request #359 from marcelamelara/update-versioning
2 parents b382eb5 + a62b90a commit 36c1129

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

spec/README.md

+31
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,36 @@ The source of this diagram can be found [here](../images/envelope_relationships.
2424
The [validation model] provides pseudocode showing how these layers fit
2525
together. See the [documentation] for more background and examples.
2626

27+
## Tagged Releases
28+
29+
The latest [tagged release] version matches the [SemVer](https://semver.org)
30+
MAJOR.MINOR version of the Attestation Framework spec.
31+
32+
Backwards-compatible semantic updates to the spec (except predicates) are
33+
indicated through new tagged MINOR version releases.
34+
We use new tagged PATCH version releases to indicate updates to predicate
35+
specifications and/or backwards-compatible changes to the language bindings.
36+
37+
### Examples
38+
39+
- Attestation Framework tagged release v1.0.2 (PATCH version) incorporates
40+
refinements to the predicate specification process, a new predicate type,
41+
and a small patch to the Golang language bindings. None of these changes
42+
affects the semantics of the core spec. The `_type` of a `Statement` is
43+
still `https://in-toto.io/Statement/v1`.
44+
45+
- Tagged release v1.1.0 (MINOR version) generalizes the semantics of the
46+
`DigestSet` field type to support any type of immutable identifier.
47+
This change is backwards comptabile because cryptographic digests are
48+
strongly recommended to achieve immutability, so any implementations that
49+
only support cryptographic `DigestSet` still meet the modified semantics.
50+
The `_type` of a `Statement` is still `https://in-toto.io/Statement/v1`
51+
but a new entry in the `v1` CHANGELOG is added.
52+
53+
- Tagged release v2.0.0 (MAJOR version) changes the meaning of the
54+
`predicateType` field. A new `v2` directory is added to `/spec` and the
55+
`_type` of a `Statement` becomes `https://in-toto.io/Statement/v2`.
56+
2757
## Keywords
2858

2959
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
@@ -41,5 +71,6 @@ this specification are to be interpreted as described in [RFC 2119].
4171
[Statement]: v1/statement.md
4272
[documentation]: ../docs
4373
[in-toto-verify]: https://github.com/in-toto/in-toto#verification
74+
[tagged release]: https://github.com/in-toto/attestation/releases
4475
[v1.1]: v1/README.md
4576
[validation model]: ../docs/validation.md

spec/versioning.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
# Versioning Rules
22

3+
Predicate specifications are versioned independently from the Attestation
4+
Framework specification in order to allow for predicates to evolve as needed
5+
without depending on the evolution of the Statement layer, for example.
6+
7+
The following rules apply to both Statement and predicate specification
8+
versioning.
9+
310
## Objective
411

5-
This document explains how version changes and extension fields are handled. For
6-
a summary, see [parsing rules](v1/README.md#parsing-rules) in the README.
12+
This document explains how version changes and extension fields are handled.
13+
For a summary, see [parsing rules](v1/README.md#parsing-rules) in the README.
714

815
## Versioning rules
916

0 commit comments

Comments
 (0)