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

Semantic versioning is incorrect? #3

Open
domoritz opened this issue Jan 25, 2018 · 3 comments
Open

Semantic versioning is incorrect? #3

domoritz opened this issue Jan 25, 2018 · 3 comments
Assignees

Comments

@domoritz
Copy link
Member

2.1 should link to 2.2.0 once it is released but it will instead point to the latest 2.1 release.

@arvind
Copy link
Member

arvind commented Jan 26, 2018

Not sure I understand why 2.1 should link to 2.2.0. Could you please explain @domoritz? Thanks!

@jheer
Copy link
Member

jheer commented Jan 26, 2018

I don't entirely understand the issue either. Please explain!

@domoritz domoritz changed the title Semantic versioning is incorrect Semantic versioning is incorrect? Jan 26, 2018
@domoritz
Copy link
Member Author

Imagine we have the following versions

1.3.0
1.3.1
1.3.2
2.0.0
2.1.0
2.1.1
2.1.2
2.1.3
2.2.0
2.2.1
2.2.2
2.2.3

In Vega-Embed we figure out whether a spec is supported by the Vega version that embed uses with a semver comparison. A spec is supported if the Vega version is within the supported range of the underspecified version from the spec. If the Vega version is v2.2.1, a spec with v2, v2.1 (because 2.2 has to be backwards compatible), v2.2.1 is supported while a spec with v1.3.2 or v2.2.3 is not supported (asking for a too high version).

Now the question is how we should resolve versions that are in specified in a spec. If a spec specifies the schema version v2.1 then the user intention is to say that they want the spec to use at least Vega version v2.1.0 and at most the latest version v2.2.3. But which schema file do you want for v2.1? I argue that you are saying that the spec should work with v2.1.0 as well so you don't want to validate against the v2.2.3 schema file because it would support features that may not be in v2.1.

My point in this issue is that we are neither doing either of the two resolutions above. v2.1 resolves as v2.1.3. This is neither the latest matching version (which would be v2.2.3), nor the minimum version of the schema (v2.1.0) to only mark specs as valid if they work with the lowest matching Vega version.

(I hope I didn't mess up the versions in my description)

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

No branches or pull requests

4 participants