-
Notifications
You must be signed in to change notification settings - Fork 18
Declare versionScheme
#93
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
Conversation
Add sbt-version-policy to handle `versionScheme`. For now, there are no compatibility guarantees since there has been no release. Fixes #72
@SethTisue I’m not sure how this interacts with sbt-scala-module because sbt-version-policy sets |
@julienrf I don't think this is mergeable unless {we, you, somebody} figures that out can I interest you in adding sbt-version-policy to sbt-scala-module...? |
Sure, I will have a look. |
@@ -18,6 +18,7 @@ lazy val scalaLibraryNext = crossProject(JVMPlatform, JSPlatform) | |||
.jsEnablePlugins(ScalaJSJUnitPlugin) | |||
.settings( | |||
ScalaModulePlugin.scalaModuleSettings, | |||
versionPolicyIntention := Compatibility.None, // TODO Change to `Compatibility.BinaryAndSourceCompatible` after the first release |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we're committing to source compatibility? that seems... unusual
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We relax the compatibility guarantees according to our needs. In the case of scala-library-next, we never want break the binary compatibility, so we will be using Compatibility.BinaryAndSourceCompatible
between patch releases, and Compatibility.BinaryCompatible
between minor releases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
see scalacenter/sbt-version-policy#71 for discussion on what "source compatibility" even means in this context
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are we using BinaryAndSourceCompatible
as a proxy for forward and backward binary compatibility here? this seems like we've gone in a very confusing circle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are we using
BinaryAndSourceCompatible
as a proxy for forward and backward binary compatibility here?
No. I am sorry if this is confusing, but we are using BinaryAndSourceCompatible
between patch releases (which are expected to be both binary and source compatible with previous releases), and we use BinaryCompatible
only between minor releases (which are expected to be binary compatible with previous releases). Does that make sense? I don’t understand what is problematic here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't think we committed to strict source compatibility between patch releases is all
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@NthPortal Yeah, according to the recommended versioning scheme, patch releases must not break compilation (in addition to being binary compatible with the previous patch releases), so they must be source compatible.
Superseded by #96 |
Add sbt-version-policy to handle
versionScheme
.For now, there are no compatibility guarantees since there has been no release.
Fixes #72, Fixes #15