Open alexkreidler opened 4 years ago
Good suggestion. I think we already implicitly follow this, but might be good to make implicit somewhere.
Since @types/rdf-js is already on version 4, we may want to simply set the spec's version to 5 for convenience.
While I agree that aligning versioning with the spec, this might not always be possible. Most of the times that the DT typings gained a major version increase, was due to changes in the typings that were not caused by spec changes.
For example: https://github.com/rdfjs/types/commit/e6d3b8601a63e0a7e78c59c91a94d44ba325563b
A simple alternative would be to mention the spec version in the typings README.
Semantic versioning is as follows
Since the spec is not a library, rather a set of interfaces, semantic versioning doesn't make sense as every change would technically modify the API surface and thus be a breaking change/major version.
I propose the following: MAJOR version when:
MINOR version when:
PATCH version when:
Really, I only care that what I consider "breaking changes" (any change to the API) is represented as either a major or minor version bump (e.g. 2.1 -> 2.2)
I also propose we add a Changed section to the bottom of the spec to indicate when we've made one of the breaking changes mentioned.
Also, if possible, libraries that offer types for the spec types (e.g.
@types/rdf-js
) should be versioned the same as the Spec version.Since
@types/rdf-js
is already on version 4, we may want to simply set the spec's version to 5 for convenience.The details of the versioning are not as important as the fact that the spec is versioned so that implementations can distinguish themselves and how compliant they are.
I'd appreciate any feedback!