Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
d57983b
Added standalone tests for SBT import
ajaychandran Jul 20, 2025
55eb124
Rebase
ajaychandran Jul 29, 2025
5410f43
Merged code from new modules in to existing ones
ajaychandran Jul 31, 2025
2e82d15
Restored log statement required by examples
ajaychandran Jul 31, 2025
a2b17d2
Updated failing example
ajaychandran Jul 31, 2025
0c135ff
Cleanup
ajaychandran Aug 1, 2025
18b0e78
Refined core design and extended cross development support.
ajaychandran Aug 7, 2025
ff61532
Cleanup
ajaychandran Aug 7, 2025
6e10b2d
Removed build transformation options.
ajaychandran Aug 7, 2025
2113a73
Cleanup
ajaychandran Aug 7, 2025
50ec630
Updated incomplete example
ajaychandran Aug 7, 2025
d90a39a
Cleanup
ajaychandran Aug 7, 2025
997ee71
Added base trait and merge features, fixed issue with missing modules…
ajaychandran Aug 9, 2025
f3802b8
Cleanup
ajaychandran Aug 11, 2025
3948dbb
Render output using concatenation
ajaychandran Aug 14, 2025
335bca9
Updated Gradle implementation
ajaychandran Aug 20, 2025
aa3c626
Cleanup
ajaychandran Aug 21, 2025
fcf163b
Set .mill-jvm-version for Mockito tests
ajaychandran Aug 21, 2025
63731fb
Set .mill-jvm-version for Fluency example
ajaychandran Aug 21, 2025
59055b7
Updated Maven conversion
ajaychandran Aug 29, 2025
cce84a5
Cleanup
ajaychandran Aug 29, 2025
5a889fc
Fix mima
ajaychandran Aug 31, 2025
199b26e
Revert name change
ajaychandran Sep 1, 2025
d8c8089
Updated Scaladocs
ajaychandran Sep 2, 2025
9f49707
Eliminated MiMa filters
ajaychandran Sep 2, 2025
6bfd04c
Cleanup
ajaychandran Sep 2, 2025
66f7bf9
Reinstated mill-jvm-version in build header and added lower bound for…
ajaychandran Sep 2, 2025
aeb3fbb
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Sep 2, 2025
fa2a015
Added fixes for binary compatibility
ajaychandran Sep 2, 2025
a2b0e1e
Added/updated tests
ajaychandran Oct 1, 2025
3f5062e
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 1, 2025
654591f
Cleanup
ajaychandran Oct 1, 2025
90380c3
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 4, 2025
f959ba3
Cleanup
ajaychandran Oct 4, 2025
910c330
docs
ajaychandran Oct 4, 2025
9480498
Cleanup
ajaychandran Oct 4, 2025
c87bf31
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 5, 2025
fb85b6a
Refactored and simplified new build representations
ajaychandran Oct 5, 2025
93cbb5c
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 12, 2025
5be1e0a
Cleanup
ajaychandran Oct 12, 2025
605f908
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 13, 2025
623448e
Cleanup
ajaychandran Oct 13, 2025
463f508
Updated base module name generation to use fixed "Project" prefix whe…
ajaychandran Oct 13, 2025
e07804a
Removed unused files in test resources
ajaychandran Oct 13, 2025
9789f5a
Change nullable fields in `PomSettings` to `Option`s.
ajaychandran Oct 13, 2025
f9f3213
Cleanup render for configurations with single value
ajaychandran Oct 13, 2025
a492ad8
Skip generating root build file for meta-build
ajaychandran Oct 13, 2025
59b7524
Skip emitting header setting for `mill-jvm-opts` when the value is empty
ajaychandran Oct 13, 2025
eea294a
Simplify regexes used in `split`
ajaychandran Oct 13, 2025
e8fd0cf
Include `TestConfig` fields for golden tests
ajaychandran Oct 13, 2025
3682bbb
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 13, 2025
4131f6f
Disable configuration check on CI
ajaychandran Oct 13, 2025
cb1857f
Revert change
ajaychandran Oct 14, 2025
828df54
Avoided creating the same list multiple times
ajaychandran Oct 15, 2025
9306958
Combined multiple `Seq.filter` into one.
ajaychandran Oct 15, 2025
fef54c6
Inlined constant value
ajaychandran Oct 15, 2025
593caa0
Refactored integration tests
ajaychandran Oct 16, 2025
388f4d0
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 16, 2025
39fa1f9
Defined alternate entry point for conversion.
ajaychandran Oct 17, 2025
35e5bc9
Added annotations for return types.
ajaychandran Oct 17, 2025
deb22ad
Merge remote-tracking branch 'upstream/main' into importer
ajaychandran Oct 17, 2025
083c925
Added sbt.api module for exported types.
ajaychandran Oct 17, 2025
cc29eef
Switch to Scala 3 dialect for code generation/formatting.
ajaychandran Oct 17, 2025
3e60aca
Fix formatting in golden files
ajaychandran Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ project {
"glob:**/example/**/*-spotless*/**",
"glob:**/javalib/test/resources/checkstyle/**",
"glob:**/init/test/resources/giter8/hello.g8/src/main/g8/build.mill",
"glob:**/init/gradle/test/resources/**",
"glob:**/init/maven/test/resources/**",
"glob:**/init/sbt/test/resources/**",
"glob:**/javalib/test/resources/javalib/palantirformat/**",
"glob:**/integration/failure/parse-error/**",
"glob:**/testkit/test/resources/example-test-example-project/build.mill",
Expand Down
4 changes: 3 additions & 1 deletion example/migrating/javalib/3-maven-complete-large/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
> git remote add -f origin https://github.com/iluwatar/java-design-patterns
> git checkout ede37bd05568b1b8b814d8e9a1d2bbd71d9d615d

> ./mill init --jvm-id 21 # Repo needs Java >=21 to build and test
> ./mill init

> echo 21 > .mill-jvm-version # Repo needs Java >=21 to build and test

> rm twin/src/test/java/com/iluwatar/twin/BallThreadTest.java # skip flaky test
> rm actor-model/src/test/java/com/iluwatar/actor/ActorModelTest.java # skip flaky test
Expand Down
2 changes: 1 addition & 1 deletion example/migrating/javalib/4-gradle-complete/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
> git remote add -f origin https://github.com/komamitsu/fluency.git
> git checkout 2.7.3 # multi-module Java project that requires Java 16+

> ./mill init --base-module FluencyModule --jvm-id 16
> ./mill init
converting Gradle build
...
init completed, run "mill resolve _" to list available tasks
Expand Down
9 changes: 4 additions & 5 deletions example/migrating/javalib/5-gradle-incomplete/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@

> git init .
> git remote add -f origin https://github.com/mockito/mockito.git
> git checkout v5.15.2 # multi-module Java project that requires Java 17+
> git checkout v5.19.0 # multi-module Java project

> ./mill init --base-module MockitoModule --jvm-id 17 # init ignores custom dependency configurations
> ./mill init --gradle-jvm-id 17 # imported modules are not fully functional
converting Gradle build
ignoring errorprone dependency (com.google.errorprone,error_prone_core,2.23.0)
init completed, run "mill resolve _" to list available tasks

> ./mill __.compile # compilation error can be by fixed by using the Mill plugin for ErrorProne
error: plug-in not found: ErrorProne
> ./mill mockito-core.compile # module jvmId needs tweaking
error: java.lang.UnsupportedClassVersionError: com/google/errorprone/ErrorProneJavacPlugin has been compiled by a more recent version...
*/
12 changes: 5 additions & 7 deletions example/migrating/scalalib/2-sbt-incomplete/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,15 @@
> rm build.mill # remove any existing build file

> git init .
> git remote add -f origin https://github.com/tototoshi/scala-csv.git
> git checkout 2.0.0
> git remote add -f origin https://github.com/fthomas/refined.git
> git checkout v0.11.3

> ./mill init
converting sbt build
...
init completed, run "mill resolve _" to list available tasks

> ./mill compile # You will have to further configure the `CrossScalaModule` for different Scala versions
compiling 7 Scala sources and 3 Java sources to ...
error: class CSVReader protected (private val lineReader: LineReader)(implicit format: CSVFormat) extends Closeable with CSVReaderCompat {
error: ^
error: one error found
> ./mill modules.core.jvm[2.12.20].compile # source roots for custom version ranges need tweaking
compiling 22 Scala sources to ...
error: ...object boolean is not a member of package eu.timepit.refined
*/
13 changes: 13 additions & 0 deletions integration/manual/migrating/src/MillInitGradleAsmTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package mill.integration
import utest.*
object MillInitGradleAsmTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://gitlab.ow2.org/asm/asm.git",
gitBranch = "ASM_9_8",
initArgs = Seq("--gradle-jvm-id", "11"),
passingTasks = Seq("asm.compile"),
failingTasks = Seq("tools.retrofitter.compile")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitGradleEhcache3Tests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleEhcache3Tests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/ehcache/ehcache3.git",
gitBranch = "v3.10.8",
initArgs = Seq("--gradle-jvm-id", "11"),
failingTasks = Seq("ehcache-api.compile")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitGradleFastCsvTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleFastCsvTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/osiegmar/FastCSV.git",
gitBranch = "v4.0.0",
initArgs = Seq("--gradle-jvm-id", "24"),
failingTasks = Seq("lib.compile")
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleJCommanderTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/cbeust/jcommander.git",
gitBranch = "2.0",
initArgs = Seq("--gradle-jvm-id", "11"),
failingTasks = Seq("test.compile")
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleMicroconfigTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/microconfig/microconfig.git",
gitBranch = "v4.9.5",
initArgs = Seq("--merge"),
passingTasks = Seq("_.test")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitGradleMockitoTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleMockitoTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/mockito/mockito.git",
gitBranch = "v5.19.0",
initArgs = Seq("--gradle-jvm-id", "17"),
failingTasks = Seq("mockito-core.compile")
)
}
}
13 changes: 13 additions & 0 deletions integration/manual/migrating/src/MillInitGradleSpotbugsTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package mill.integration
import utest.*
object MillInitGradleSpotbugsTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/spotbugs/spotbugs.git",
gitBranch = "4.9.4",
initArgs = Seq("--gradle-jvm-id", "17"),
passingTasks = Seq("spotbugs.compile"),
failingTasks = Seq("eclipsePlugin-test.resolvedMvnDeps")
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitGradleSpringFrameworkTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/spring-projects/spring-framework.git",
gitBranch = "v6.2.11",
initArgs = Seq("--gradle-jvm-id", "24"),
failingTasks = Seq("spring-instrument.resolvedMvnDeps")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitMavenByteBuddyTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitMavenByteBuddyTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
gitUrl = "https://github.com/raphw/byte-buddy.git",
gitBranch = "byte-buddy-1.17.7",
passingTasks = Seq("byte-buddy.compile"),
failingTasks = Seq("byte-buddy-android-test.compile")
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenCheckstyleTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/checkstyle/checkstyle.git",
"checkstyle-11.0.0",
failingTasks = Seq("compile")
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenErrorProneTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/google/error-prone.git",
"v2.41.0",
failingTasks = Seq("annotation.javaHome")
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitMavenJansiTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenJansiTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/fusesource/jansi.git",
"jansi-2.4.2",
passingTasks = Seq("test")
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitMavenJodaBeansTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenJodaBeansTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/JodaOrg/joda-beans.git",
"v2.11.1",
passingTasks = Seq("test")
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitMavenNettyTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenNettyTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/netty/netty.git",
"netty-4.2.6.Final",
failingTasks = Seq("buffer.test.discoveredTestClasses")
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitMavenSpringAiTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitMavenSpringAiTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/spring-projects/spring-ai.git",
"v1.0.3",
failingTasks = Seq("spring-ai-commons.resolvedMvnDeps")
)
}
}
13 changes: 13 additions & 0 deletions integration/manual/migrating/src/MillInitSbtAirstreamTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package mill.integration
import utest.*
object MillInitSbtAirstreamTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/raquo/Airstream.git",
"v17.2.1",
failingTasks = Seq(
("[2.13.16].test.testOnly", "com.raquo.airstream.web.WebStorageVarSpec")
)
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitSbtCatsTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitSbtCatsTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/typelevel/cats.git",
"v2.13.0",
failingTasks = Seq("kernel.jvm[2.13.16].compile")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitSbtEnumeratumTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitSbtEnumeratumTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/lloydmeta/enumeratum.git",
"enumeratum-1.9.0",
passingTasks = Seq("enumeratum-core.jvm[2.13.16].compile"),
failingTasks = Seq("macros.jvm[2.13.16].compile")
)
}
}
18 changes: 18 additions & 0 deletions integration/manual/migrating/src/MillInitSbtFs2Tests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package mill.integration
import utest.*
object MillInitSbtFs2Tests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/typelevel/fs2.git",
"v3.12.0",
passingTasks = Seq(
("core.js[2.13.16].test.testOnly", "fs2.hashing.HashingSuite"),
("core.jvm[3.3.5].test.testOnly", "fs2.hashing.HashingSuite")
),
failingTasks = Seq(
"core.native[2.12.20].test.scalaNativeWorkerClasspath",
"benchmark[3.3.5].compile"
)
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitSbtGatlingTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitSbtGatlingTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/gatling/gatling.git",
"v3.14.3",
failingTasks = Seq("gatling-http-client.test.compile")
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitSbtLilaTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitSbtLilaTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/lichess-org/lila.git",
"master",
failingTasks = Seq(("resolve", "_"))
)
}
}
11 changes: 11 additions & 0 deletions integration/manual/migrating/src/MillInitSbtNscalaTimeTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mill.integration
import utest.*
object MillInitSbtNscalaTimeTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/nscala-time/nscala-time.git",
"releases/3.0.0",
passingTasks = Seq("_.test")
)
}
}
12 changes: 12 additions & 0 deletions integration/manual/migrating/src/MillInitSbtRefinedTests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package mill.integration
import utest.*
object MillInitSbtRefinedTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/fthomas/refined.git",
"v0.11.3",
passingTasks = Seq("__.showModuleDeps"),
failingTasks = Seq("modules.core.jvm[3.3.4].compile")
)
}
}
14 changes: 14 additions & 0 deletions integration/manual/migrating/src/MillInitSbtScala3Tests.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package mill.integration

import utest.*

object MillInitSbtScala3Tests extends MillInitTestSuite {
def tests = Tests {
// sbt 1.11.0
test - checkImport(
"https://github.com/scala/scala3.git",
"3.7.1",
failingTasks = Seq(("resolve", "_"))
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package mill.integration

import utest.*

object MillInitSbtScalaLoggingTests extends MillInitTestSuite {
def tests = Tests {
test - checkImport(
"https://github.com/lightbend-labs/scala-logging.git",
"v3.9.5",
passingTasks = Seq("_.test")
)
}
}
Loading
Loading