Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Versioning of the specification for tool makers #104

Open
chris-crone opened this issue Sep 25, 2020 · 4 comments · May be fixed by #164
Open

Versioning of the specification for tool makers #104

chris-crone opened this issue Sep 25, 2020 · 4 comments · May be fixed by #164
Labels
Approved 👍 Approved by community meeting

Comments

@chris-crone
Copy link
Contributor

What is the problem you're trying to solve
While we have removed the user facing version field from the Compose specification, tool makers need some kind of specification versioning so that they can implement their tool against a stable target.

@thaJeztah raised this from the Docker CLI point of view 🤗

Describe the solution you'd like
We need to be clear that this is not the same as the old versions of Compose and will not be exposed to the user. It is just something that gives fixed points that tool builders can target. As discussed in the community meeting, this could even be tags based on a date rather than something like semver.

@AkihiroSuda
Copy link
Contributor

Any update for this?

@chris-crone
Copy link
Contributor Author

Discussion update

We discussed this again yesterday at the specification meeting, see the full notes here.

The spirit of the Compose specification is for tools to offer support based on features rather than specific versions of the specification. As such, we've made the commitment to not remove fields over time. This means that we don't need a rigid versioning system like semver.

I proposed that we publish the specification periodically with a tag that is a date (e.g.: 2021-04-09). The intention is that this version is never exposed to users but allows tool builders to pin to the specification at some point in time.

Libraries like compose-go can then pin to the dated specification and use semver or a versioning scheme that works for them.

Versioning proposal

I think it best to keep this process relatively light. When someone would like to create a release, they should create a PR stating modifying the CHANGELOG.md to add a release with the date of the PR's creation (of the form yyyy-mm-dd), the changes since the last release, and the digest of the commit that the release will be from. The maintainers can then LGTM the PR if they are happy with it. Once a majority of maintainers have LGTM'd the PR, it can be merged and a tag on the specified commit pushed. The tag can trigger the publishing of the schema (and other specification documentation) to the release page of this repo.

@AkihiroSuda @thaJeztah WDYT?

@AkihiroSuda
Copy link
Contributor

SGTM, thanks

@ndeloof ndeloof added the Approved 👍 Approved by community meeting label Apr 22, 2021
@chris-crone
Copy link
Contributor Author

This was approved in the maintainer meeting last night. I'll write up the process early next week and put up the first PR :)

@chris-crone chris-crone linked a pull request Apr 27, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved 👍 Approved by community meeting
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants