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

releases: use +dev as in-development suffix #1050

Merged
merged 1 commit into from
May 24, 2023

Conversation

cyphar
Copy link
Member

@cyphar cyphar commented Apr 21, 2023

Under SemVer, the suffix "-dev" actually indicates a pre-release, meaning the way we've been using the suffix indicates that "1.0.0-dev" is older than "1.0.0" when we've used the suffix to indicate the opposite.

With most package managers, the "+dev" suffix correctly indicates that the version is newer (i.e. 1.0.1 > 1.0.0+dev > 1.0.0), though under SemVer "+dev" build tags must be ignored when doing version comparisons (meaning 1.0.0+dev == 1.0.0 under SemVer). However, from a SemVer perspective the unreleased version is inarguably closer to being equal to the last release than being older than it. As a specification we also allow extensibility of various parts, meaning that if someone uses an as-yet-unreleased version it seems reasonable to me for it to be treated as the same (from a SemVer perspective) as the last released version it's based on.

The other option would be to continue to use "-dev" as a suffix but bump the rest of the version number to the next version we plan to release, but this could also cause issues (we could have a "pre-release" for a release that never happened). Using "+dev" seems more sensible.

Switching to "+dev" also matches the way runc and umoci are versioned, and allows downstreams that use as-yet-unreleased versions of our specs to have their spec versions be treated as the same as the released version by other consumers.

Signed-off-by: Aleksa Sarai asarai@suse.de

Under SemVer, the suffix "-dev" actually indicates a pre-release,
meaning the way we've been using the suffix indicates that "1.0.0-dev"
is *older* than "1.0.0" when we've used the suffix to indicate the
opposite.

With most package managers, the "+dev" suffix correctly indicates that
the version is newer (i.e. 1.0.1 > 1.0.0+dev > 1.0.0), though under
SemVer "+dev" build tags must be ignored when doing version comparisons
(meaning 1.0.0+dev == 1.0.0 under SemVer). However,  from a SemVer
perspective the unreleased version is inarguably closer to being equal
to the last release than being older than it. As a specification we also
allow extensibility of various parts, meaning that if someone uses an
as-yet-unreleased version it seems reasonable to me for it to be treated
as the same (from a SemVer perspective) as the last released version
it's based on.

The other option would be to continue to use "-dev" as a suffix but bump
the rest of the version number to the next version we plan to release,
but this could also cause issues (we could have a "pre-release" for a
release that never happened). Using "+dev" seems more sensible.

Switching to "+dev" also matches the way runc and umoci are versioned,
and allows downstreams that use as-yet-unreleased versions of our specs
to have their spec versions be treated as the same as the released
version by other consumers.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
@cyphar
Copy link
Member Author

cyphar commented Apr 21, 2023

Another option would be to bump the patch version and add -0+dev as the suffix, as discussed in the sister runtime-spec PR.

@sudo-bmitch
Copy link
Contributor

This has been merged on runtime-spec. I think we should also merge here to keep the specs aligned. @opencontainers/image-spec-maintainers PTAL

sudo-bmitch added a commit to sudo-bmitch/image-spec that referenced this pull request May 22, 2023
Signed-off-by: Brandon Mitchell <git@bmitch.net>
@cyphar cyphar closed this in 807e852 May 24, 2023
@cyphar cyphar merged commit 807e852 into opencontainers:main May 24, 2023
@cyphar cyphar deleted the release-dev-suffix branch May 24, 2023 06:57
sudo-bmitch added a commit that referenced this pull request May 24, 2023
@sajayantony sajayantony mentioned this pull request Jun 22, 2023
8 tasks
rchincha pushed a commit to rchincha/image-spec that referenced this pull request May 29, 2024
Signed-off-by: Brandon Mitchell <git@bmitch.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants