diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8bf19ab..ff1d33a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,18 @@ jobs: restore-keys: | ${{ runner.os }}-sbt- + # TEMPORARY: dimwit 0.2-SNAPSHOT is not published to any remote yet, so CI builds it from source. + - name: Check out dimwit + uses: actions/checkout@v4 + with: + repository: marcelluethi/dimwit + ref: version-0.2-SNAPSHOT + path: dimwit + + - name: Publish dimwit-core to the local ivy repo + working-directory: dimwit + run: sbt core/publishLocal + - name: Check formatting run: sbt scalafmtCheckAll diff --git a/README.md b/README.md index c4a51d3..8ee7e72 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ DeepWit's API is expressed in DimWit's tensor types, so you will import from bot ```scala libraryDependencies ++= Seq( - "ch.contrafactus" %% "deepwit-core" % "0.1.0", + "ch.contrafactus" %% "deepwit-core" % "0.2-SNAPSHOT", "ch.contrafactus" %% "dimwit-core" % "0.1.0" ) ``` diff --git a/build.sbt b/build.sbt index 8a6ffdb..e41cb78 100644 --- a/build.sbt +++ b/build.sbt @@ -4,7 +4,7 @@ import scala.sys.process._ run / fork := true Global / cancelable := true -ThisBuild / version := "0.1.0" +ThisBuild / version := "0.2-SNAPSHOT" ThisBuild / scalaVersion := "3.8.1" ThisBuild / organization := "ch.contrafactus" ThisBuild / versionScheme := Some("early-semver") @@ -40,17 +40,8 @@ ThisBuild / developers := List( // semanticdb and -Wunused to be on. Run it with `sbt scalafixAll`. ThisBuild / semanticdbEnabled := true ThisBuild / scalacOptions += "-Wunused:imports" - -// `core` depends only on released artifacts so that it can be published and consumed without any -// local publishing. `examples` additionally needs plotwit, which is not published anywhere yet and -// so still resolves from the local ivy repo via `publishLocal` in the plotwit checkout. ThisBuild / resolvers += "Central Portal Snapshots" at "https://central.sonatype.com/repository/maven-snapshots/" -// Consequence of that split: `core` asks for the released dimwit 0.1.0 while the locally published -// plotwit asks for 0.2-SNAPSHOT, which sbt reads as a binary-incompatible conflict under -// early-semver. Let the newer snapshot win in `examples`; `core` on its own resolves 0.1.0. -ThisBuild / libraryDependencySchemes += "ch.contrafactus" %% "dimwit-core" % "always" - addCommandAlias("testAndCoverage", "; clean; coverage; test; coverageReport") // Publishes `core` only. `examples` depends on plotwit, which is not published. @@ -82,7 +73,7 @@ lazy val core = (project in file("core")) "org.scalacheck" %% "scalacheck" % "1.18.0" % Test, "org.scalatestplus" %% "scalacheck-1-18" % "3.2.19.0" % Test, "dev.scalapy" %% "scalapy-core" % "0.5.3", - "ch.contrafactus" %% "dimwit-core" % "0.1.0" + "ch.contrafactus" %% "dimwit-core" % "0.2-SNAPSHOT" changing () ), // ScalaPy drives a single embedded CPython interpreter, and two suites importing jax at the same // time race into a partially initialized module. Whichever suites happen to touch a tensor first