From d5d0e86ceab91f76bf025e23fda07f0534aee8c7 Mon Sep 17 00:00:00 2001 From: Alex Archambault Date: Thu, 5 Dec 2024 17:37:21 +0100 Subject: [PATCH 1/2] Stop using "_" to mean empty version / version to read in BOM --- scalalib/src/mill/scalalib/CoursierModule.scala | 10 +++++----- scalalib/src/mill/scalalib/Dep.scala | 4 ++-- scalalib/src/mill/scalalib/JavaModule.scala | 6 +++--- scalalib/src/mill/scalalib/PublishModule.scala | 4 ++-- scalalib/src/mill/scalalib/publish/Pom.scala | 2 +- scalalib/test/src/mill/scalalib/BomTests.scala | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/scalalib/src/mill/scalalib/CoursierModule.scala b/scalalib/src/mill/scalalib/CoursierModule.scala index 1bb2024885c..196123074ed 100644 --- a/scalalib/src/mill/scalalib/CoursierModule.scala +++ b/scalalib/src/mill/scalalib/CoursierModule.scala @@ -235,15 +235,15 @@ object CoursierModule { /** * Processes dependencies and BOMs with coursier * - * This makes coursier read and process BOM dependencies, and fill version placeholders + * This makes coursier read and process BOM dependencies, and fill empty versions * in dependencies with the BOMs. * - * Note that this doesn't throw when a version placeholder cannot be filled, and just leaves - * the placeholder behind. + * Note that this doesn't throw when an empty version cannot be filled, and just leaves + * the empty version behind. * - * @param deps dependencies that might have placeholder versions ("_" as version) + * @param deps dependencies that might have empty versions * @param resolutionParams coursier resolution parameters - * @return dependencies with version placeholder filled + * @return dependencies with empty version filled */ def processDeps[T: CoursierModule.Resolvable]( deps: IterableOnce[T], diff --git a/scalalib/src/mill/scalalib/Dep.scala b/scalalib/src/mill/scalalib/Dep.scala index 3b02d8daa4d..a2e8b260b17 100644 --- a/scalalib/src/mill/scalalib/Dep.scala +++ b/scalalib/src/mill/scalalib/Dep.scala @@ -118,8 +118,8 @@ object Dep { } (module.split(':') match { - case Array(a, b) => Dep(a, b, "_", cross = empty(platformed = false)) - case Array(a, "", b) => Dep(a, b, "_", cross = Binary(platformed = false)) + case Array(a, b) => Dep(a, b, "", cross = empty(platformed = false)) + case Array(a, "", b) => Dep(a, b, "", cross = Binary(platformed = false)) case Array(a, b, c) => Dep(a, b, c, cross = empty(platformed = false)) case Array(a, b, "", c) => Dep(a, b, c, cross = empty(platformed = true)) case Array(a, "", b, c) => Dep(a, b, c, cross = Binary(platformed = false)) diff --git a/scalalib/src/mill/scalalib/JavaModule.scala b/scalalib/src/mill/scalalib/JavaModule.scala index 26fcfcddff1..09ced912f45 100644 --- a/scalalib/src/mill/scalalib/JavaModule.scala +++ b/scalalib/src/mill/scalalib/JavaModule.scala @@ -223,7 +223,8 @@ trait JavaModule dep.publication.classifier ) val versionOverrideOpt = - if (dep.version == "_") depMgmtMap.get(depMgmtKey).map(_.version).filter(_.nonEmpty) + if (dep.version.isEmpty) + depMgmtMap.get(depMgmtKey).map(_.version).filter(_.nonEmpty) else None val extraExclusions = depMgmtMap.get(depMgmtKey).map(_.minimizedExclusions) dep @@ -270,8 +271,7 @@ trait JavaModule ) val values = DependencyManagement.Values( Configuration.empty, - if (depMgmt.version == "_") "" // shouldn't be needed with future coursier versions - else depMgmt.version, + depMgmt.version, depMgmt.minimizedExclusions, depMgmt.optional ) diff --git a/scalalib/src/mill/scalalib/PublishModule.scala b/scalalib/src/mill/scalalib/PublishModule.scala index de0d707cb2d..e699745f8aa 100644 --- a/scalalib/src/mill/scalalib/PublishModule.scala +++ b/scalalib/src/mill/scalalib/PublishModule.scala @@ -147,7 +147,7 @@ trait PublishModule extends JavaModule { outer => def ivy: T[PathRef] = Task { val (rootDepVersions, bomDepMgmt) = bomDetails() val publishXmlDeps0 = publishXmlDeps().map { dep => - if (dep.artifact.version == "_") + if (dep.artifact.version.isEmpty) dep.copy( artifact = dep.artifact.copy( version = rootDepVersions.getOrElse( @@ -168,7 +168,7 @@ trait PublishModule extends JavaModule { outer => depManagement().toSeq .map(bindDependency()) .map(_.dep) - .filter(depMgmt => depMgmt.version.nonEmpty && depMgmt.version != "_") + .filter(_.version.nonEmpty) ) val entries = coursier.core.DependencyManagement.add( Map.empty, diff --git a/scalalib/src/mill/scalalib/publish/Pom.scala b/scalalib/src/mill/scalalib/publish/Pom.scala index 9598222fefb..e6d699539c6 100644 --- a/scalalib/src/mill/scalalib/publish/Pom.scala +++ b/scalalib/src/mill/scalalib/publish/Pom.scala @@ -209,7 +209,7 @@ object Pom { val optional = if (d.optional) true else NodeSeq.Empty val version = - if (d.artifact.version == "_") NodeSeq.Empty + if (d.artifact.version.isEmpty) NodeSeq.Empty else {d.artifact.version} if (d.exclusions.isEmpty) diff --git a/scalalib/test/src/mill/scalalib/BomTests.scala b/scalalib/test/src/mill/scalalib/BomTests.scala index b7fe411d1c4..ffad2b23fec 100644 --- a/scalalib/test/src/mill/scalalib/BomTests.scala +++ b/scalalib/test/src/mill/scalalib/BomTests.scala @@ -400,7 +400,7 @@ object BomTests extends TestSuite { val res = eval(modules.bom.placeholder.check.compileClasspath) assert( res.left.exists(_.toString.contains( - "not found: https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/_/protobuf-java-_.pom" + "not found: https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java//protobuf-java-.pom" )) ) } From 4d27f01e147f3aa2a77ef4dd0e56591cfd2559bb Mon Sep 17 00:00:00 2001 From: Alex Archambault Date: Fri, 6 Dec 2024 16:30:03 +0100 Subject: [PATCH 2/2] bump coursier --- build.mill | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.mill b/build.mill index c3cb65ff74d..9216ba8ef98 100644 --- a/build.mill +++ b/build.mill @@ -116,7 +116,7 @@ object Deps { val asmTree = ivy"org.ow2.asm:asm-tree:9.7.1" val bloopConfig = ivy"ch.epfl.scala::bloop-config:1.5.5" - val coursierVersion = "2.1.20" + val coursierVersion = "2.1.21" val coursier = ivy"io.get-coursier::coursier:$coursierVersion" val coursierInterface = ivy"io.get-coursier:interface:1.0.26" val coursierJvm = ivy"io.get-coursier::coursier-jvm:$coursierVersion"