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

Compat caret specifier #1105

Merged
merged 1 commit into from
Aug 20, 2019
Merged

Compat caret specifier #1105

merged 1 commit into from
Aug 20, 2019

Conversation

Nosferican
Copy link
Contributor

Change documentation to use the default caret specifier à la semver rather than the tilde specifier indicating patch versions as breaking with 0 major.

Would it be possible for the dev process in Documenter to use minor releases as breaking while keeping patches for non-breaking while 0 major?

Change documentation to use the default caret specifier à la semver rather than the tilde specifier indicating patch versions as breaking with 0 major.
@mortenpi
Copy link
Member

@fredrikekre Is there any reason to prefer one over the other?

Would it be possible for the dev process in Documenter to use minor releases as breaking while keeping patches for non-breaking while 0 major?

That's the standard Julia interpretation of the 0.x semver and we have always done that.

Actually, for a long time, we made sure that even the 0.x minor releases do not break anything. And with patch releases we are also conservative -- they are usually just bugfixes and do not contain new features, to provide additional stability.

@Nosferican
Copy link
Contributor Author

For the dev process you described it seems the compat should follow the standard Julia semver (i.e., default caret) rather than the tilde then.

@mortenpi
Copy link
Member

As far as I understand, ~0.23 and ^0.23 / 0.23 define an equivalent version range?

@Nosferican
Copy link
Contributor Author

They are the same while major is zero.

PkgA = "0.2.3" # [0.2.3, 0.3.0)
PkgB = "^0.2.3" # [0.2.3, 0.3.0)
PkgC = "~0.2.3" # [0.2.3, 0.3.0)

After major > 0, they differ.

PkgA = "1.2"   # [1.2.0, 2.0.0)
PkgB = "^1.2"   # [1.2.0, 2.0.0)
PkgC = "~1.2"   # [1.2.0, 1.3.0)

Tilde means the project has minors with potential breaking code deviating from semver.
Hence, why I think it would be best to use the standard caret if the project follows the usual semver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants