Skip to content

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

Closed
wants to merge 1 commit into from
Closed

Declare versionScheme #93

wants to merge 1 commit into from

Conversation

julienrf
Copy link
Contributor

@julienrf julienrf commented Jul 14, 2021

Add sbt-version-policy to handle versionScheme.

For now, there are no compatibility guarantees since there has been no release.

Fixes #72, Fixes #15

Add sbt-version-policy to handle `versionScheme`.

For now, there are no compatibility guarantees since there has been no release.

Fixes #72
@julienrf julienrf requested a review from SethTisue July 14, 2021 14:49
@julienrf
Copy link
Contributor Author

@SethTisue I’m not sure how this interacts with sbt-scala-module because sbt-version-policy sets mimaPreviousArtifacts.

@SethTisue
Copy link
Member

@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...?

@julienrf
Copy link
Contributor Author

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
Copy link
Contributor

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

Copy link
Contributor Author

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.

Copy link
Member

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

Copy link
Contributor

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

Copy link
Contributor Author

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.

Copy link
Contributor

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

Copy link
Contributor Author

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.

@julienrf
Copy link
Contributor Author

julienrf commented Aug 4, 2021

Superseded by #96

@julienrf julienrf closed this Aug 4, 2021
@SethTisue SethTisue deleted the declare-versionScheme branch October 1, 2021 17:38
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.

enable MiMa post-release Build should declare a versionScheme
3 participants