sbt-compatibility-dummy


License

License

Categories

Categories

Scala Languages
GroupId

GroupId

ch.epfl.scala
ArtifactId

ArtifactId

sbt-compatibility-dummy_2.12
Last Version

Last Version

0.0.9
Release Date

Release Date

Type

Type

jar
Description

Description

sbt-compatibility-dummy
sbt-compatibility-dummy
Project URL

Project URL

https://github.com/scalacenter/sbt-compatibility
Project Organization

Project Organization

ch.epfl.scala
Source Code Management

Source Code Management

https://github.com/scalacenter/sbt-compatibility

Download sbt-compatibility-dummy_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/ch.epfl.scala/sbt-compatibility-dummy_2.12/ -->
<dependency>
    <groupId>ch.epfl.scala</groupId>
    <artifactId>sbt-compatibility-dummy_2.12</artifactId>
    <version>0.0.9</version>
</dependency>
// https://jarcasting.com/artifacts/ch.epfl.scala/sbt-compatibility-dummy_2.12/
implementation 'ch.epfl.scala:sbt-compatibility-dummy_2.12:0.0.9'
// https://jarcasting.com/artifacts/ch.epfl.scala/sbt-compatibility-dummy_2.12/
implementation ("ch.epfl.scala:sbt-compatibility-dummy_2.12:0.0.9")
'ch.epfl.scala:sbt-compatibility-dummy_2.12:jar:0.0.9'
<dependency org="ch.epfl.scala" name="sbt-compatibility-dummy_2.12" rev="0.0.9">
  <artifact name="sbt-compatibility-dummy_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='ch.epfl.scala', module='sbt-compatibility-dummy_2.12', version='0.0.9')
)
libraryDependencies += "ch.epfl.scala" % "sbt-compatibility-dummy_2.12" % "0.0.9"
[ch.epfl.scala/sbt-compatibility-dummy_2.12 "0.0.9"]

Dependencies

compile (1)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.11

Project Modules

There are no modules declared in this project.

sbt-version-policy

sbt-version-policy:

How to use

Add to your project/plugins.sbt:

addSbtPlugin("ch.epfl.scala" % "sbt-version-policy" % "1.0.0-RC1")

The latest version is Maven Central.

sbt-version-policy depends on sbt-mima, so that you don't need to explicitly depend on it.

versionPolicyCheck

The versionPolicyCheck task:

  • runs mimaReportBinaryIssues,
  • along with versionPolicyReportDependencyIssues

versionPolicyReportDependencyIssues itself checks for

  • removed dependencies, or
  • dependencies bumped in an incompatible way,

and fails if any of these checks fails.

Automatic previous version calculation

sbt-version-policy automatically sets mimaPreviousArtifacts, depending on the current value of version, kind of like sbt-mima-version-check does. The previously compatible version is computed from version the following way:

  • drop any "metadata part" (anything after a +, including the + itself)
    • if the resulting version contains only zeros (like 0.0.0), leave mimaPreviousArtifacts empty,
    • else if the resulting version does not contain a qualifier (see below), it is used in mimaPreviousArtifacts.
  • else, drop the qualifier part, that is any suffix like -RC1 or -M2 or -alpha or -SNAPSHOT
    • if the resulting version ends with .0, mimaPreviousArtifacts is left empty
    • else, the last numerical part of this version is decreased by one, and used in mimaPreviousArtifacts.

versionPolicyPreviousArtifacts

versionPolicyReportDependencyIssues compares the dependencies of versionPolicyPreviousArtifacts to the current ones.

By default, versionPolicyPreviousArtifacts relies on mimaPreviousArtifacts from sbt-mima, so that only setting / changing mimaPreviousArtifacts is enough for both sbt-mima and sbt-version-policy.

Dependency compatibility adjustments

Set versionPolicyDependencyRules to specify whether library dependency upgrades are compatible or not. For instance:

versionPolicyDependencyRules += "org.scala-lang" % "scala-compiler" % "strict"

The following compatility types are available:

  • early-semver: assumes the matched modules follow a variant of Semantic Versioning that enforces compatibility within 0.1.z,
  • semver-spec: assumes the matched modules follow semantic versioning,
  • pvp: assumes the matched modules follow package versioning policy (quite common in Scala),
  • always: assumes all versions of the matched modules are compatible with each other,
  • strict: requires exact matches between the wanted and the selected versions of the matched modules.

If no rule for a module is found in versionPolicyDependencyRules, versionPolicyDefaultReconciliation is used as a compatibility type. Its default value is VersionCompatibility.PackVer (package versioning policy).

Acknowledgments

sbt-version-policy is funded by the Scala Center.

ch.epfl.scala

Scala Center

Versions

Version
0.0.9