Skip to content

Commit

Permalink
Build definition on Mill 0.13
Browse files Browse the repository at this point in the history
  • Loading branch information
joan38 committed Feb 22, 2025
1 parent e3aa1ee commit e9f6eb4
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .mill-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.12.8
0.13.0-M0-93-a6992e
7 changes: 5 additions & 2 deletions .scalafix.conf
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
rules = [
// RemoveUnused
RemoveUnused
DisableSyntax
LeakingImplicitClassVal
NoValInForComprehension
ProcedureSyntax
NoAutoTupling
OrganizeImports
RedundantSyntax
]

OrganizeImports.targetDialect = Auto
DisableSyntax.noVars = true
DisableSyntax.noThrows = false
DisableSyntax.noNulls = true
Expand Down
6 changes: 3 additions & 3 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
version = 3.8.5
version = 3.9.0
runner.dialect = scala213source3
project.git = true
maxColumn = 120
align.preset = more
assumeStandardLibraryStripMargin = true
rewrite.rules = [AvoidInfix, SortImports, RedundantBraces, RedundantParens, SortModifiers]
rewrite.rules = [AvoidInfix, RedundantBraces, RedundantParens, SortModifiers, Imports]
rewrite.redundantBraces.stringInterpolation = true
spaces.afterTripleEquals = true
rewrite.imports.sort = original
34 changes: 15 additions & 19 deletions build.mill
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
import $ivy.`com.goyeau::mill-git::0.2.7`
import $ivy.`com.goyeau::mill-scalafix::0.5.0`
import $repo.`https://oss.sonatype.org/content/repositories/snapshots`
import $ivy.`com.goyeau::mill-git::0.2.7-8-118f733-SNAPSHOT`
import $ivy.`com.goyeau::mill-scalafix::0.5.1-1-e3aa1ee-SNAPSHOT`
import $ivy.`org.typelevel::scalac-options:0.1.7`
import com.goyeau.mill.git.{GitVersionModule, GitVersionedPublishModule}
import com.goyeau.mill.scalafix.StyleModule
import mill._
import mill.*
import mill.Task.dest
import mill.scalalib._
import mill.define.Cross
import mill.scalalib.*
import mill.scalalib.publish.{Developer, License, PomSettings, VersionControl}
import org.typelevel.scalacoptions.ScalacOptions._
import org.typelevel.scalacoptions.ScalacOptions.*
import org.typelevel.scalacoptions.{ScalaVersion, ScalacOptions}

object `mill-scalafix` extends Cross[MillScalafixCross]("0.12.0", "0.13.0-M0-93-a6992e")
trait MillScalafixCross extends Cross.Module[String] with StyleModule with GitVersionedPublishModule {
trait MillScalafixCross extends Cross.Module[String] with StyleModule with GitVersionedPublishModule:
val millVersion = crossValue

override def scalaVersion = millVersion match {
override def scalaVersion = millVersion match
case millVersion if millVersion.startsWith("0.12") => "2.13.16"
case millVersion if millVersion.startsWith("0.13") => "3.6.3"
}

override def scalacOptions = super.scalacOptions() ++ ScalacOptions.tokensForVersion(
ScalaVersion.unsafeFromString(scalaVersion()),
ScalacOptions.default + source3 ++ fatalWarningOptions
Expand All @@ -33,24 +32,22 @@ trait MillScalafixCross extends Cross.Module[String] with StyleModule with GitVe
ivy"org.scala-lang.modules::scala-java8-compat:1.0.2"
)

object test extends ScalaTests with TestModule.Munit {
object test extends ScalaTests with TestModule.Munit:
override def ivyDeps = Agg(
ivy"org.scalameta::munit::1.1.0",
ivy"com.lihaoyi::mill-testkit:$millVersion"
)
override def forkEnv = Map("MILL_EXECUTABLE_PATH" -> millExecutable.assembly().path.toString)

// Create a Mill executable configured for testing our plugin
object millExecutable extends JavaModule {
object millExecutable extends JavaModule:
override def ivyDeps = Agg(ivy"com.lihaoyi:mill-dist:$millVersion")
override def mainClass = Some("mill.runner.client.MillClientMain")
override def resources = T {
override def resources = Task:
val p = dest / MillScalafixCross.this.artifactId()
os.write(p, MillScalafixCross.this.localClasspath().map(_.path).mkString("\n"), createFolders = true)
Seq(PathRef(dest))
}
}
}
end test

override def artifactName = s"mill-scalafix_mill${millBinaryVersion(millVersion)}"
override def publishVersion = GitVersionModule.version(withSnapshotSuffix = true)()
Expand All @@ -62,10 +59,9 @@ trait MillScalafixCross extends Cross.Module[String] with StyleModule with GitVe
versionControl = VersionControl.github("joan38", "mill-scalafix"),
developers = Seq(Developer("joan38", "Joan Goyeau", "https://github.com/joan38"))
)
}
end MillScalafixCross

def millBinaryVersion(millVersion: String) = millVersion match {
def millBinaryVersion(millVersion: String) = millVersion match
case version if version.startsWith("0.12") => "0.11" // 0.12.x is binary compatible with 0.11.x
case version if version.startsWith("0.13") => "0.13.0-M0"
case _ => throw new IllegalArgumentException(s"Unsupported Mill version: $millVersion")
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package com.goyeau.mill.scalafix

import coursier.Repository
import coursier.core.Authentication
import coursier.ivy.IvyRepository
import coursier.maven.MavenRepository
import coursier.core.Authentication
import mill.scalalib.{CrossVersion, Dep}
import mill.scalalib.CrossVersion
import mill.scalalib.Dep

object CoursierUtils {
def toApiRepository(repo: Repository): coursierapi.Repository =
Expand All @@ -22,7 +23,7 @@ object CoursierUtils {
.withMetadataPattern(mdPatternOpt.orNull)
.withCredentials(credentialsOpt.orNull)
case other =>
throw new Exception(s"Unrecognized repository: " + other)
throw new Exception(s"Unrecognized repository: $other")
}

def toApiCredentials(auth: Authentication): coursierapi.Credentials =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import scalafix.interfaces.Scalafix
import scalafix.interfaces.ScalafixArguments

import java.util.concurrent.ConcurrentHashMap
import scala.jdk.CollectionConverters._
import scala.jdk.CollectionConverters.*
import scala.ref.SoftReference

private[scalafix] object ScalafixCache {
Expand Down
16 changes: 11 additions & 5 deletions mill-scalafix/src/com/goyeau/mill/scalafix/ScalafixModule.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package com.goyeau.mill.scalafix

import com.goyeau.mill.scalafix.ScalafixModule.{filesToFix, fixAction}
import com.goyeau.mill.scalafix.ScalafixModule.filesToFix
import com.goyeau.mill.scalafix.ScalafixModule.fixAction
import coursier.Repository
import mill.{Agg, Command, T, Task}
import mill.api.{Logger, PathRef, Result}
import mill.scalalib.{Dep, ScalaModule}

import mill.Agg
import mill.Command
import mill.T
import mill.Task
import mill.api.Logger
import mill.api.PathRef
import mill.api.Result
import mill.scalalib.Dep
import mill.scalalib.ScalaModule
import scalafix.interfaces.ScalafixError.*

import scala.compat.java8.OptionConverters.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.goyeau.mill.scalafix

import mill.Task
import mill.Command
import mill.Task
import mill.scalalib.scalafmt.ScalafmtModule

/** Combine Scalafmt and Scalafix together
Expand Down

0 comments on commit e9f6eb4

Please sign in to comment.