Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.9.15] - 2026-01-16
- chore: Scala 3.7.4;
- chore: Scala 2.13.18;
- chore: Scala 2.12.21;
- chore: Scala.js 1.20.2;
- chore: Gradle 9.2.1;
- chore: dependency updates;
- cleanup;

## [0.9.14] - 2025-10-30
- chore: Scala 2.13.17;
- chore: Scala Native 0.5.9;
Expand Down
28 changes: 15 additions & 13 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,35 @@
:toc: preamble
:icons: font
// INCLUDED ATTRIBUTES
:version-plugin: 0.9.14
:version-gradle: 9.2.0
:version-scala: 3.7.3
:version-scala-213: 2.13.17
:version-scala-212: 2.12.20
:version-plugin: 0.9.15
:version-gradle: 9.2.1
:version-scala: 3.7.4
:version-scala-213: 2.13.18
:version-scala-212: 2.12.21
:version-sbt-test-interface: 1.0
:version-scalajs: 1.20.1
:version-scalanative: 0.5.9
:version-scalajs: 1.20.2
:version-scalajs-dom: 2.8.1
:version-scalajs-env-jsdom-nodejs: 1.1.1
:version-scala-js-env-playwright: 0.1.18
:version-node: 24.9.0
:version-scalanative: 0.5.9
:version-junit: 4.13.2
:version-framework-junit4-jvm: 0.13.3
:version-framework-junit4-scalajs: 1.20.1
:version-framework-junit4-scalajs: 1.20.2
:version-framework-junit4-scalanative: 0.5.9
:version-framework-airspec: 2025.1.21
:version-framework-airspec: 2025.1.27
:version-framework-hedgehog: 0.13.0
:version-framework-munit: 1.2.1
:version-framework-scalacheck: 1.19.0
:version-framework-scalaprops: 0.10.0
:version-framework-scalatest: 3.2.19
:version-framework-specs2: 5.7.0
:version-framework-specs2-scala2: 4.23.0
:version-framework-utest: 0.9.1
:version-framework-weaver: 0.10.1
:version-framework-zio-test: 2.1.22
:version-framework-utest: 0.9.5
:version-framework-weaver: 0.11.3
:version-framework-zio-test: 2.1.24
:attribute-pluginScalaBackendProperty: org.podval.tools.backend
:attribute-gradleVersionForBadge: 9.2.0
:attribute-gradleVersionForBadge: 9.2.1
// INCLUDED ATTRIBUTES

image:https://github.com/dubinsky/scalajs-gradle/actions/workflows/CI.yaml/badge.svg[]
Expand All @@ -42,6 +42,8 @@ image:https://img.shields.io/badge/Scala.js-{version-scalajs}-blue[]
image:https://img.shields.io/badge/Scala_Native-{version-scalanative}-blue[]
image:https://img.shields.io/badge/Node-{version-node}-blue?logo=nodedotjs[]

image:https://api.star-history.com/svg?repos=dubinsky/scalajs-gradle&type=Date[Star History Chart]

== Summary

This is a https://gradle.org/[Gradle] plugin that adds functionality to the
Expand Down
12 changes: 6 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ plugins {
id 'com.github.ben-manes.versions' version '0.53.0'
id 'scala'
id 'signing'
id 'org.podval.tools.scalajs' version '0.9.13'
id 'org.podval.tools.scalajs' version '0.9.14'
id 'com.gradle.plugin-publish' version '2.0.0'
}

Expand All @@ -16,7 +16,7 @@ project.gradle.startParameter.excludedTaskNames.add('compileJava')

dependencies {
// for TestClassVisitor
implementation 'org.ow2.asm:asm:9.9'
implementation 'org.ow2.asm:asm:9.9.1'

// for running tests
compileOnly "org.scala-sbt:test-interface:$version_sbt_test_interface"
Expand Down Expand Up @@ -65,8 +65,8 @@ tasks.withType(ScalaCompile).configureEach {
additionalParameters = [
'-new-syntax',
'-feature',
'-language:strictEquality'
// '-source:future'
'-language:strictEquality',
'-source:future'
]
}
}
Expand Down Expand Up @@ -133,8 +133,8 @@ publishing {
signing {
sign publishing.publications.library
useInMemoryPgpKeys(
findProperty('gnupg.dub-podval-org.key').toString(),
findProperty('gnupg.dub-podval-org.password').toString()
findProperty('signingKey').toString(),
findProperty('signingPassword').toString()
)
}

Expand Down
24 changes: 12 additions & 12 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
org.podval.tools.backend = JVM
version_plugin = 0.9.14
version_gradle = 9.2.0
version_scala = 3.7.3
version_scala_213 = 2.13.17
version_scala_212 = 2.12.20
version_plugin = 0.9.15
version_gradle = 9.2.1
version_scala = 3.7.4
version_scala_213 = 2.13.18
version_scala_212 = 2.12.21
version_sbt_test_interface = 1.0
version_scalajs = 1.20.1
version_scalanative = 0.5.9
version_scalajs = 1.20.2
version_scalajs_dom = 2.8.1
version_scalajs_env_jsdom_nodejs = 1.1.1
version_scala_js_env_playwright = 0.1.18
version_node = 24.9.0
version_scalanative = 0.5.9
version_junit = 4.13.2
version_framework_junit4_jvm = 0.13.3
version_framework_junit4_scalajs = 1.20.1
version_framework_junit4_scalajs = 1.20.2
version_framework_junit4_scalanative = 0.5.9
version_framework_airspec = 2025.1.21
version_framework_airspec = 2025.1.27
version_framework_hedgehog = 0.13.0
version_framework_munit = 1.2.1
version_framework_scalacheck = 1.19.0
version_framework_scalaprops = 0.10.0
version_framework_scalatest = 3.2.19
version_framework_specs2 = 5.7.0
version_framework_specs2_scala2 = 4.23.0
version_framework_utest = 0.9.1
version_framework_weaver = 0.10.1
version_framework_zio_test = 2.1.22
version_framework_utest = 0.9.5
version_framework_weaver = 0.11.3
version_framework_zio_test = 2.1.24
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
45 changes: 23 additions & 22 deletions src/main/scala/org/podval/tools/backend/VersionsWriter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ import java.io.File
// This writes versions of everything into an AsciiDoc file that the documentation uses;
// this way, the versions are guaranteed to be consistent - if this was run ;)
object VersionsWriter:
private val gradleVersion: Version = Version("9.2.0")
private val gradleVersion: Version = Version("9.2.1")

private val versions: Seq[(String, Version)] = Seq(
"plugin" -> Version("0.9.14"),
"plugin" -> Version("0.9.15"),

"gradle" -> gradleVersion,

Expand All @@ -24,31 +24,32 @@ object VersionsWriter:
"scala-212" -> ScalaBinaryVersion.Scala2_12.scalaVersionDefault.version,

"sbt-test-interface" -> JvmBackend.sbtTestInterfaceVersion,

"scalajs" -> ScalaJSBackend.versionDefault,

"scalanative" -> ScalaNativeBackend.versionDefault,

"scalajs" -> ScalaJSBackend .versionDefault,

"scalajs-dom" -> ScalaJSBackend.domVersion,
"scalajs-env-jsdom-nodejs" -> ScalaJSBackend.jsDomNodeVersion,
"scala-js-env-playwright" -> ScalaJSBackend.playwrightVersion,

"node" -> NodeDependency.dependency.versionDefault,

"scalanative" -> ScalaNativeBackend.versionDefault,
"node" -> NodeDependency.dependency .versionDefault,

"junit" -> framework.JUnit4Jvm.Underlying.versionDefault,
"framework-junit4-jvm" -> framework.JUnit4Jvm .versionDefault,
"framework-junit4-scalajs" -> framework.JUnit4ScalaJS .versionDefault,
"framework-junit4-scalanative" -> framework.JUnit4ScalaNative.versionDefault,
"framework-airspec" -> framework.AirSpec .versionDefault,
"framework-hedgehog" -> framework.Hedgehog .versionDefault,
"framework-munit" -> framework.MUnit .versionDefault,
"framework-scalacheck" -> framework.ScalaCheck .versionDefault,
"framework-scalaprops" -> framework.Scalaprops .versionDefault,
"framework-scalatest" -> framework.ScalaTest .versionDefault,
"framework-specs2" -> framework.Specs2 .versionDefault,
"framework-specs2-scala2" -> framework.Specs2 .versionDefaultScala2,
"framework-utest" -> framework.UTest .versionDefault,
"framework-weaver" -> framework.WeaverTest .versionDefault,
"framework-zio-test" -> framework.ZioTest .versionDefault
"framework-junit4-jvm" -> framework.JUnit4Jvm .versionDefault,
"framework-junit4-scalajs" -> framework.JUnit4ScalaJS .versionDefault,
"framework-junit4-scalanative" -> framework.JUnit4ScalaNative .versionDefault,
"framework-airspec" -> framework.AirSpec .versionDefault,
"framework-hedgehog" -> framework.Hedgehog .versionDefault,
"framework-munit" -> framework.MUnit .versionDefault,
"framework-scalacheck" -> framework.ScalaCheck .versionDefault,
"framework-scalaprops" -> framework.Scalaprops .versionDefault,
"framework-scalatest" -> framework.ScalaTest .versionDefault,
"framework-specs2" -> framework.Specs2 .versionDefault,
"framework-specs2-scala2" -> framework.Specs2 .versionDefaultScala2,
"framework-utest" -> framework.UTest .versionDefault,
"framework-weaver" -> framework.WeaverTest .versionDefault,
"framework-zio-test" -> framework.ZioTest .versionDefault
)

private val attributes: Seq[(String, String)] = Seq(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ object ScalaBinaryVersion:
override def versionSuffixLength: Int = 1
override def artifact: String = "scala3-library_3"
override def description: String = "Scala 3 Library."
override val scalaVersionDefault: ScalaVersion = ScalaVersion("3.7.3")
override val scalaVersionDefault: ScalaVersion = ScalaVersion("3.7.4")
override def isScala3: Boolean = true
override def isScala2: Boolean = false
override def isScala213: Boolean = false
Expand All @@ -59,10 +59,10 @@ object ScalaBinaryVersion:
override def versionMinor: Int = 13
override def isScala213: Boolean = true
override def isScala212: Boolean = false
override val scalaVersionDefault: ScalaVersion = ScalaVersion("2.13.17")
override val scalaVersionDefault: ScalaVersion = ScalaVersion("2.13.18")

object Scala2_12 extends Scala2:
override def versionMinor: Int = 12
override def isScala213: Boolean = false
override def isScala212: Boolean = true
override val scalaVersionDefault: ScalaVersion = ScalaVersion("2.12.20")
override val scalaVersionDefault: ScalaVersion = ScalaVersion("2.12.21")
2 changes: 1 addition & 1 deletion src/main/scala/org/podval/tools/build/ScalaVersion.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ final class ScalaVersion(val version: Version) derives CanEqual:

override def toString: String = version.toString

override def equals(other: Any): Boolean = other match
override def equals(other: Any): Boolean = other.asInstanceOf[Matchable] match
case that: ScalaVersion => this.version == that.version
case _ => false

Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/podval/tools/build/Version.scala
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ object Version:
abstract class Pre derives CanEqual:
def version: Version

final override def equals(other: Any): Boolean = other match
final override def equals(other: Any): Boolean = other.asInstanceOf[Matchable] match
case that: Pre => this.toString == that.toString
case _ => false

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package org.podval.tools.nonjvm
import org.podval.tools.build.ScalaBackend
import org.podval.tools.test.framework.Framework
import org.podval.tools.test.task.{SourceMapper, TestEnvironment}
import sbt.testing.Framework => FrameworkSBT
import sbt.testing.Framework as FrameworkSBT

final class NonJvmTestEnvironment[B <: ScalaBackend, A](
backend: B,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import org.podval.tools.test.framework.JUnit4ScalaJS
object ScalaJSBackend extends NonJvmBackend(
name = "Scala.js",
group = "org.scala-js",
versionDefault = Version("1.20.1"),
versionDefault = Version("1.20.2"),
sourceRoot = "js",
artifactSuffix = "sjs1",
pluginDependenciesConfigurationName = "scalajs",
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/podval/tools/scalajs/ScalaJSBuild.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import org.podval.tools.nonjvm.Build
import org.podval.tools.platform.Output
import org.scalajs.logging.{Level as LevelJS, Logger as LoggerJS}

class ScalaJSBuild(output: Output) extends Build[LoggerJS](output):
open class ScalaJSBuild(output: Output) extends Build[LoggerJS](output):
final override protected def interceptedExceptions: Set[Class[? <: Exception]] = Set.empty

final override protected def backendLogger: LoggerJS = new LoggerJS:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import scala.scalanative.build.Logger as LoggerN

// see scala.scalanative.sbtplugin.ScalaNativePluginInternal
// https://github.com/scala-native/scala-native/blob/main/sbt-scala-native/src/main/scala/scala/scalanative/sbtplugin/ScalaNativePluginInternal.scala
class ScalaNativeBuild(output: Output) extends Build[LoggerN](output):
open class ScalaNativeBuild(output: Output) extends Build[LoggerN](output):
final override protected val interceptedExceptions: Set[Class[? <: Exception]] = Set(
classOf[scala.scalanative.build.BuildException],
classOf[org.scalajs.linker.interface.LinkingException]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,10 @@ final class ScalaNativeLink(

override def link(): Unit =
debug(s"ScalaNativeLink.link($config)")

implicit val scope: Scope = Scope.forever
interceptException(
Build.buildCachedAwait(config
.withLogger(backendLogger)
)
)(using Scope.forever)
)

object ScalaNativeLink:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ abstract class FingerprintDetector(
):
final override def toString: String = Fingerprints.toString(fingerprint)

final override def equals(other: Any): Boolean = other match
final override def equals(other: Any): Boolean = other.asInstanceOf[Matchable] match
case that: FingerprintDetector =>
this.framework.name == that.framework.name &&
Fingerprints.equal(this.fingerprint, that.fingerprint)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ object AirSpec extends ScalaFramework(
description = "AirSpec",
group = "org.wvlet.airframe",
artifact = "airspec",
versionDefault = Version("2025.1.21"),
versionDefault = Version("2025.1.27"),
className = "wvlet.airspec.Framework",
sharedPackages = List("wvlet.airspec"),
tagOptions = None
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/org/podval/tools/test/framework/UTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ object UTest extends ScalaFramework(
description = "UTest",
group = "com.lihaoyi",
artifact = "utest",
versionDefault = Version("0.9.1"),
versionDefault = Version("0.9.5"),
className =
//"utest.runner.MillFramework", // logs progress, but writes summary to standard out
"utest.runner.Framework", // returns correct summary, but writes progress to standard out
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ object WeaverTest extends ScalaFramework(
description = "Weaver-test",
group = "org.typelevel",
artifact = "weaver-cats",
versionDefault = Version("0.10.1"),
versionDefault = Version("0.11.3"),
className = "weaver.framework.CatsEffect",
sharedPackages = List("weaver"),
tagOptions = None
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ object ZioTest extends ScalaFramework(
description = "ZioTest",
group = "dev.zio",
artifact = "zio-test-sbt",
versionDefault = Version("2.1.22"),
versionDefault = Version("2.1.24"),
className = "zio.test.sbt.ZTestFramework",
sharedPackages = List("zio.test.sbt"),
tagOptions = TagOptions.OptionPerValue("-tags", "-ignore-tags")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import java.io.File
// Translated and improved org.gradle.api.internal.tasks.testing.detection.DefaultTestExecuter.
// This is the only Gradle class that I need to fork, modify and maintain -
// to use NonForkingTestClassProcessor needed for Scala.js and Scala Native tests.
class DefaultTestExecuter(
open class DefaultTestExecuter(
workerFactory: WorkerProcessFactory,
actorFactory: ActorFactory,
moduleRegistry: ModuleRegistry,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ final class Feature(
val excludeTags: Seq[String] = Seq.empty
) derives CanEqual:
override def hashCode(): Int = name.hashCode
override def equals(obj: Any): Boolean = obj match
override def equals(obj: Any): Boolean = obj.asInstanceOf[Matchable] match
case that: Feature => this.name == that.name
case _ => false