From 9dd3f33d0ef4ab77c7fdafdc5d9c04cd3c28bcf4 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Tue, 28 Jan 2025 11:18:47 +0800 Subject: [PATCH 1/6] Bump mill from 0.11.5 to 0.12.5 --- .mill-version | 2 +- build.sc => build.mill | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename build.sc => build.mill (84%) diff --git a/.mill-version b/.mill-version index 62d5dbd..6799343 100644 --- a/.mill-version +++ b/.mill-version @@ -1 +1 @@ -0.11.5 +0.12.5 \ No newline at end of file diff --git a/build.sc b/build.mill similarity index 84% rename from build.sc rename to build.mill index 20bfb1a..3fae46e 100644 --- a/build.sc +++ b/build.mill @@ -8,7 +8,7 @@ import scalalib._ import mill.bsp._ object %NAME% extends SbtModule { m => - override def millSourcePath = os.pwd + override def millSourcePath = super.millSourcePath / os.up override def scalaVersion = "2.13.15" override def scalacOptions = Seq( "-language:reflectiveCalls", @@ -22,7 +22,7 @@ object %NAME% extends SbtModule { m => override def scalacPluginIvyDeps = Agg( ivy"org.chipsalliance:::chisel-plugin:6.6.0", ) - object test extends SbtModuleTests with TestModule.ScalaTest { + object test extends SbtTests with TestModule.ScalaTest { override def ivyDeps = m.ivyDeps() ++ Agg( ivy"org.scalatest::scalatest::3.2.16" ) From 3e8cc8ad6cf3c273b3c0d2fea220dd577a25d9cc Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Tue, 28 Jan 2025 11:44:02 +0800 Subject: [PATCH 2/6] Rename build.sc to build.mill in template-cleanup.yml --- .github/workflows/template-cleanup.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/template-cleanup.yml b/.github/workflows/template-cleanup.yml index 340495b..28d415e 100644 --- a/.github/workflows/template-cleanup.yml +++ b/.github/workflows/template-cleanup.yml @@ -41,7 +41,7 @@ jobs: # Replace placeholders sed -i "s/%NAME%/$NAME/g" build.sbt README.md src/test/scala/gcd/* - sed -i "s/%NAME%/$WRAPPED_NAME/g" build.sc + sed -i "s/%NAME%/$WRAPPED_NAME/g" build.mill sed -i "s/%REPOSITORY%/${GITHUB_REPOSITORY/\//\\/}/g" README.md sed -i "s/%ORGANIZATION%/$GROUP/g" build.sbt From 36bbc9a5dbfa5942c3b9037de7403d63694ce639 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Wed, 29 Jan 2025 09:30:43 +0800 Subject: [PATCH 3/6] Add .mill-jvm-opts for Chisel test generation and output file handling * Add .mill-jvm-opts * Add explanation comments in build.mill Signed-off-by: Qiming Chu --- .mill-jvm-opts | 1 + build.mill | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 .mill-jvm-opts diff --git a/.mill-jvm-opts b/.mill-jvm-opts new file mode 100644 index 0000000..f5f4f57 --- /dev/null +++ b/.mill-jvm-opts @@ -0,0 +1 @@ +-Dchisel.project.root=${PWD} diff --git a/build.mill b/build.mill index 3fae46e..6b5b08d 100644 --- a/build.mill +++ b/build.mill @@ -7,6 +7,12 @@ import scalalib._ // support BSP import mill.bsp._ +// Note: This project requires .mill-jvm-opts file containing: +// -Dchisel.project.root=${PWD} +// This is needed because Chisel needs to know the project root directory +// to properly generate and handle test directories and output files. +// See: https://github.com/com-lihaoyi/mill/issues/3840 + object %NAME% extends SbtModule { m => override def millSourcePath = super.millSourcePath / os.up override def scalaVersion = "2.13.15" From 155f4409716b46ba33c90ede4a8106ff82262012 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Wed, 29 Jan 2025 09:34:34 +0800 Subject: [PATCH 4/6] Update Java version requirement to JDK 11 in README.md Update README to clarify that Mill 0.12+ requires Java 11 or newer, while noting that Chisel itself is compatible with Java 8. Signed-off-by: Qiming Chu --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index db79f5a..b63d8b4 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ with a clean running [Chisel3](https://www.chisel-lang.org/) project. ### Dependencies -#### JDK 8 or newer +#### JDK 11 or newer -We recommend LTS releases Java 8 and Java 11. You can install the JDK as your operating system recommends, or use the prebuilt binaries from [AdoptOpenJDK](https://adoptopenjdk.net/). +We recommend using Java 11 or later LTS releases. While Chisel itself works with Java 8, our preferred build tool Mill requires Java 11. You can install the JDK as your operating system recommends, or use the prebuilt binaries from [Adoptium](https://adoptium.net/) (formerly AdoptOpenJDK). #### SBT or mill From bf6e7be35f396f6f8fa7b3614d55d5690d5884dc Mon Sep 17 00:00:00 2001 From: qiming chu <1346550347@qq.com> Date: Wed, 29 Jan 2025 18:03:45 +0800 Subject: [PATCH 5/6] Rename build.sc to build.mill in test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb323e7..3f4114f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Cleanup - run: sed -i "s/%NAME%/test/g" build.sc + run: sed -i "s/%NAME%/test/g" build.mill - name: Cache Scala uses: coursier/cache-action@v6 - name: Setup Scala From 15af1708e088214204ae426bf72ad67e67d20475 Mon Sep 17 00:00:00 2001 From: Qiming Chu Date: Thu, 30 Jan 2025 07:55:07 +0800 Subject: [PATCH 6/6] Use Mill bootstrap script in ci Signed-off-by: Qiming Chu --- .github/workflows/test.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f4114f..e0d656a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,10 @@ jobs: uses: coursier/setup-action@v1 with: jvm: adopt:11 - apps: sbt mill + apps: sbt + - name: Setup Mill + run: | + curl -L https://github.com/com-lihaoyi/mill/releases/download/0.12.5/0.12.5 > mill && chmod +x mill - name: Setup Dependencies run: | sudo apt-get install ccache @@ -56,4 +59,4 @@ jobs: - name: SBT Test run: sbt test - name: mill Test - run: mill _.test + run: ./mill _.test