All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- 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;
- chore: Scala 2.13.17;
- chore: Scala Native 0.5.9;
- chore: Gradle 9.2.0;
- chore: dependency updates;
- cleanup;
- cleanup: remove failed attempt at supporting Gradle 8;
- chore: Gradle 9.1.0, Gradle 9.2.0-rc-1;
- chore: dependency updates;
- cleanup;
- fix: set Node version on the tasks correctly;
- fix: suppress error output when running command like
which; - chore: Gradle 9.1.0-rc-4;
- chore: dependency updates;
- cleanup;
- feat: include Scala-version-specific resources, not just Scala sources;
- feat: inclusion of Scala-version-specific Scala sources and resources is idempotent and permanent now;
- feat: include Scala-version-specific Scala sources and resources in the mixed project too;
- cleanup;
- feat: fully shared code in the mixed project root;
- chore: Scala 3.7.3;
- chore: Gradle 9.1.0-rc-3;
- chore: dependency updates;
- cleanup;
- fix: 108 from FlorianKirmaier - thank you!
- fix: run GitHub workflow on pull requests;
- chore: Gradle 9.1.0-rc-2;
- chore: dependency updates;
- cleanup;
- feat: support
Hedgehogtest framework onScala Native; - chore: Gradle 9.1.0-rc-1;
- chore: dependency updates;
- cleanup;
- feat: support
Weaver Testtest framework; - feat: support
Hedgehogtest framework; - feat: support
AirSpectest framework; - feat: support
Scalapropstest framework; - chore: dependency updates;
- cleanup;
- feat: code shared between some of the backends (partial sharing);
- chore: Scala 3.7.2;
- chore: Gradle 9.0.0;
- chore: dependency updates;
- cleanup;
- feat:
jsLink.esVersion; - chore: Gradle 9.0.0-rc-4;
- chore: dependency updates;
- cleanup;
- feat:
ZIO TestonScala.jsandScala Native; - chore: dependency updates;
- cleanup;
- feat:
specs2onScalaNative; - chore: Gradle 9.0.0-rc-3;
- chore: dependency updates;
- cleanup;
- chore: Gradle 9.0.0-rc-2;
- chore: dependency updates;
- cleanup;
- chore: dependency updates;
- cleanup;
- chore: dependency updates;
- cleanup;
- chore: Gradle 9.0.0-rc-1;
- cleanup: prepare for Gradle 9.0.0-rc-1;
- cleanup;
- cleanup;
- cleanup:
Version; - feat: support WASM for Scala.js;
- feat: select JS environment for Scala.js;
- fix: add Scala Parallel Collections Module dynamically;
- cleanup:
*Dependency*;
- cleanup: package
org.podval.tools.backend; - cleanup: package
org.podval.tools.scalapluginrenamed toorg.podval.tools.backendplugin; - fix: project path in
settings-includes.gradle; - cleanup: shared sources;
- fix: shared resources;
- doc: README update;
- chore: dependency updates;
- cleanup:
scalajspluginrenamed toscalaplugin; - cleanup:
ScalaJSPluginrenamed toBackendPlugin; - cleanup:
ScalaBackendExtensionrenamed toBackendExtension; - cleanup: removed
TestTask.backend; - feat:
BackendExtensionimprovements;
- feat: Scala version-specific sources;
- feat: Scala version property;
- feat:
ScalaBackendExtension; - fix: test interface goes to
testRuntimeOnly, nottestImplementationconfiguration; - fix:
testScalaCompilerPluginsconfiguration; - fix: no
runtask on JVM; - chore: dependency updates;
- cleanup:
ScalaVersionandScalaBinaryVersion; removedScalaPlatform; - cleanup:
Dependency.Makerknows itsScalaBackend; - cleanup:
OutputPiper.start(BaseExecSpec)implemented; - cleanup: use
abortforScalaNativetoo; - cleanup: very few
Versions can beCompound; - doc: README update;
- cleanup:
TestProjectandTestProjectWriter; - feat: multiple backends in subprojects;
- doc: added usage hints;
- doc: multiple backends documentation;
- doc: Scala Native;
- cleanup: use TaskProvider instead of Task more;
- cleanup:
NonJvm; - cleanup:
BackendDelegate; - cleanup:
GardleNamesandBackendDelegateBinding; - cleanup:
GroupingFunSpecandTestProject; - cleanup:
scalajsandscalanative; - dependency updates;
- feat (WIP): multiple backends in the same project;
- feat: support for Scala Native;
- cleanup:
BackendDelegate; - cleanup:
Version(Simple, Compound); - cleanup:
DependencyRequirement; - cleanup:
Named; - dependency updates;
- cleanup: install the default version of Node.js if none is installed locally nor a version to install specified;
- cleanup:
RunTestClassProcessor; - cleanup:
FrameworkProvider; - cleanup:
ScalaBackendandScalaBackendKind; - cleanup:
FrameworkDescriptor; - cleanup:
BackendDelegateandBackendDelegateKind; - doc:
READMEimprovements; - dependency updates;
- feat (WIP): support Scala Native;
- cleanup:
ScalaJSPluginandBackendDelegates; - cleanup: introduced
Running; - cleanup: introduced
FrameworkProvider; - cleanup:
RunTestClassProcessor; - dependency updates;
- doc:
READMEimprovements;
- fix: running test cases of the nested test suites on ScalaTest;
- fix: attribute test cases to the correct test classes;
- test: added
NestedSuitesTestfor testing of the nested test suite support; - doc: Nested Test Suites, Credits, etc.
- cleanup:
RunTestClassProcessor; - dependency updates;
- WIP: mixing JVM and Scala.js;
- fix: remaining Scala 2.12 incompatibilities;
- feat: classfile-based test detection (including JUnit4 for Scala.js);
- cleanup: removed analysis-based test detection;
- feat: dry run support;
- cleanup: TODOs;
- cleanup:
test.filter; - cleanup:
test.environment; - cleanup:
scalajsplugin; - cleanup:
TestEnvironment; - cleanup: logging;
- cleanup: notes;
- build: GitHub CI workflows;
- doc: README notes cleanup;
- feat: support Scala.js JUnit4 on Scala 2;
- feat: support filtering multiple specific tests in a class;
- doc: test filtering;
- cleanup: underlying test framework;
- cleanup: ScalaJSPlugin.Delegate;
- cleanup: test filtering;
- cleanup: test detection;
- cleanup: taskdef;
- cleanup: RunningTestClassProcessor;
- chore: dependency updates;
- feat: support JUnit4 Scala.js framework;
- feat: test tagging for JUnit4;
- feat: test tagging for MUnit;
- feat: test tagging for ScalaTest;
- feat: test tagging for specs2;
- feat: test tagging for ZIO Test;
- feat: support test tag inclusions;
- feat: support JUnit4 assumptions;
- feat: running tests on Scala 2.13 JVM and JS;
- feat: running tests on Scala 2.12 JVM and JS;
- doc: documented test framework dependencies;
- doc: documented test framework test tagging;
- cleanup: ScalaOnlyTest re-absorbed and removed;
- cleanup: ScalaPlatform;
- cleanup: Dependency.Maker;
- cleanup: OptionStyle;
- cleanup: FrameworkDescriptor;
- cleanup: Scala.js actions;
- cleanup: braces;
- cleanup: documentation;
- cleanup:
testingpackage (renamedtest); - chore: dependency updates;
- chore: cleanup;
- chore: dependency updates;
- chore: Scala.js dependency update;
- chore: moved
build,nodeandplatformpackages and some utility classes back here from OpenTorah: the classes are only used here; if need be, I can package them into an artifact and publish them from here... - cleanup: apply DependencyRequirement to configuration only, not to classpath, so not force resolution of the configurations!
- cleanup: split Scala.js dependencies;
- cleanup: add Scala.js dependencies to the plugin classpath in the plugin itself, not in the LinkTask;
- cleanup: add Zinc dependencies to the plugin classpath in the plugin itself, not in the TestTask;
- cleanup: no need to delay calculation of
analysisFile; - cleanup: ScalaJSTask.scalaJs;
- cleanup: set LinkTask.runtimeClassPath in the plugin to eliminate a
Task.getProjectcall during task execution - the last such call! - chore: Gradle update;
- cleanup: Node setup;
- cleanup: split the plugin class into
ScalaDelegateandScalaJSDelegate; - cleanup: Gradle;
- doc: converted
READMEfrom MarkDown to AsciiDoc; - doc: refreshed
README; - doc: patch
READMEwith version attributes programmatically; - build: set dependency versions from properties in
gradle.propertieswritten programmatically; - build:
ScalaOnlyTestnow writes thetest-projects/scala-onlyproject instead of using prepared one; - cleanup: org.podval.tools.testing.Sbt;
- cleanup: org.podval.tools.build.ScalaLibrary;
- cleanup: ScalaJS;
- cleanup: split out core Scala.js support;
- cleanup: Dependency;
- chore: updated Gradle Plugin Publishing Plugin to a just released version without Task.getProject() during execution;
- cleanup: minor cleanup
- chore: minor dependency updates
- fix: eliminated calls to Task.getProject() during task execution
- chore: Scala.js dependency update;
- ZioTest dependency update;
- cleanup: changed deprecated
org.junit.Assert.assertThattoorg.hamcrest.MatcherAssert.assertThat; - re-use Gradle's
JUnitOptionsas our TestFrameworkOptions (see the code for the reasons); as a result: useSbtblock now usesincludeCategories/excludeCategoriesinstead ofincludeTags/excludeTags- fix: eliminated calls to Project.afterEvaluate() in Gradle Tasks
- chore: Java 21
- chore: Scala 3.6.3
- chore: latest OpenTorah with Gradle cleanup
- fix: OS detection fails in macOS opentorah/opentorah#341
- chore: Gradle 8.12 adjustments and forced update to sbt/zinc
- chore: update ScalaJS
- chore: update test framework versions
- chore: update Scala to 3.6.2
- chore: latest OpenTorah
- chore: update test framework versions
- chore: Gradle 8.9 adjustments
- chore: Gradle 8.4 adjustments
- chore: update test framework versions
- chore: update ScalaJs
- chore: update Scala to 3.4.2
- chore: update Scala version used in tests (some frameworks require it)
- chore: Gradle 8.7 adjustments
- chore: Gradle 8.8
- chore: tracking OpenTorah Dependency changes
- chore: tracking OpenTorah Dependency changes
- chore: dependency updates
- chore: Gradle 8.3 adjustments
- tests: better test testing infrastructure
- cleanup: ScalaJS tutorial and frameworks test projects are now written by the testing infrastructure
- chore: Scala 3.3.0
- chore: ScalaTest 3.2.16
- chore: ScalaJS 1.13.1
- chore: Gradle 8.1.1
- chore: tracking OpenTorah Node changes
- feat:
nodeextension - feat:
nodeandnpmtasks - feat: auto-install
NodeJS - feat: initialize Node project and install modules
- feat:
ZIO Testsupport - fix: running single test method needs to be wrapped in the implied suite
- fix: explicit
selectorsEqual() - fix:
FixUpRootTestOutputTestResultProcessor - test: tests for the assorted frameworks on ScalaJS
- cleanup: all ScalaJS code is in the
ScalaJSsubclasses - cleanup: unfolded
TaskDefExintoTestClassProcessor - chore: latest
opentorah-util
- fix: do not specify success for the overall task completion in
TestClassProcessor.run() - fix: remove class name prefix from the test method names returned by
JUnit4andMUnit - fix: do not use
event.fullyQualifiedNameandevent.fingerprint, lest Gradle interpret methods as classes - feat: explicit
TestEnvironment.loadFrameworks(testClassPath) - feat: made running of the frameworks possible during test detection
- feat: made running Scala tests without forking possible
- cleanup: replaced
sbt.IOcalls - cleanup: minimized classpath expansion
- cleanup:
TestClassvsTaskDefTestSpec - cleanup: dissolved
TaskDefTest - cleanup: updated to the latest Gradle's
DefaultTestExecuter - cleanup: processing test files one-by-one in the
TestFrameworkDetector - cleanup: delay some parameters of the
TestFramework
- build: automated test-projects tests
- fix: set
NODE_PATHto point tonode_moduleunder the project root so that ScalaJS tests run - feat: introduced
TestTask.useSbtamd moved include/exclude tags into theTestFrameworkOptionsclosure - cleanup: add
test-interfaceto thetestImplementationconfiguration when running plain Scala; then, there is no need to add the jar in theTestFramework'sAction - cleanup: package structure
- cleanup: set test ids in the
TestClassProcessor; use a placeholder forrootTestSuiteIdand fix it up inFixUpRootTestOutputTestResultProcessor - cleanup: switched from serializers to writers: deleted all serializers, serializer registry,
ForkingTestClassProcessorandTestWorker - cleanup:
AnalysisDetector/TestClass - cleanup:
sbtconfiguration removed;zincis used instead - feat: ZIOTest
- feat: converting framework-specific exceptions to TestFailures
- chore: Gradle 8.0.2 and its DefaultTestExecuter
- change: removed
groupByFrameworkas not feasible - chore: update ScalaJS DOM library
- fix: handle parentId for the nested tasks correctly (ScalaCheck uses them)
- cleanup: no TestStartEvent.parentId
- cleanup: no TaskDefTest.parentId
- cleanup: get rootTestSuiteId to the TestClassProcessor
- cleanup: all test ids are composite of any length, not just 2 as Gradle's serializer does
- cleanup: replicated all TestEventSerializer's serializers - but with my id serializer
- cleanup: no disambiguation needed in the TestSerializerRegistry
- cleanup: packaged proxying of the test events in the non-forking scenario into SingleThreadingTestResultProcessor
- cleanup: introduced TestFramework
- cleanup: packaged TestScanner as a TestFrameworkDetector
- cleanup: use Gradle's DefaultTest[Class|Method]Descriptor in test events instead of TaskDefTest
- cleanup: use Gradle's TestMainAction and WorkerTestClassProcessor
- cleanup: boiled down the differences between Gradle's ForkingTestClassProcessor and mine to overridable methods
- cleanup: boiled down the differences between Gradle's TestWorker and mine to overridable methods
- cleanup: boiled down the differences between Gradle's DefaultTestExecuter and mine to overridable methods
- cleanup: tested with the modified Gradle
- fix: "Could not dispatch message" caused by the presence of a test classes with no tests in them
- cleanup: ForkingTestClassProcessor
- fix: tests fail to terminate when parallelized caused by the missing
TestFailureSerializer - feat: take Gradle log level into account when processing test output
- cleanup: consolidated test output processing in TestClassProcessor
- cleanup: factored out FrameworkRuns
- cleanup: removed TestResultProcessorEx
- chore: Gradle 8.0.1
- chore: latest Gradle plugin publishing plugin
- chore: dependency updates
- chore: Gradle 7.6 compatibility
- chore: update to the latest Scala, ScalaJS, ScalaTest, ScalaCheck, sbt
- chore: dependency updates
- bug: fixed a Gradle issue with ModuleInitializers
- docs: documented Node.js version compatibility
- chore: cleanup
- feat: run Scala-only tests in parallel
- feat: added groupByFramework option to the test task
- feat: support ScalaCheck
- feat: support uTest
- feat: support specs2
- feat: support MUnit
- feat: support JUnit4
- build: use the plugin for plugin tests
Release theme: forking
To make serialization work, my own:
- TestSerializerRegistry
- ForkingTestClassProcessor
- WorkerTestClassProcessor
- TestWorker.
ScalaCheck does produce nested tasks - adjusted TestClassProcessor to handle them.
- feat: Scala 2.12 support
- feat: report ignored tests
- wip: running tests in parallel
- refactor: package test functionality using Gradle test-related classes
- wip: test filtering
- refactor: use sbt Selectors in filtering tests
- wip: filtering suites based on tags
- test: move test projects into
test-projects - chore: latest Gradle, Zinc, OpenTorah, ScalaTest etc.
- testing integrated with Gradle;
- testing integrated with IntelliJ Idea;
- running sbt test frameworks without ScalaJS;
- working on test filtering;
- latest Gradle, Zinc and OpenTorah;
BREAKING CHANGES:
- no more extension;
- task names changed;
- ScalaJS tutorial for both Scala 2 and Scala 3;
- add correct dependencies and configuration for both Scala 3 and Scala 2;
- using zinc configured by the Scala plugin;
- using ScalaJS dependencies dynamically;
- working on Gradle-ifying test listening;
- source-map test failure messages;
- serializing/deserializing linking report;
- verifying that the 'main' module exists before running and testing;
- moving towards using Gradle testing classes;
- add dependencies and Scala compiler options needed for ScalaJS;
- running the linked code;
- running tests;
BREAKING CHANGES:
- task names changed
- configuration property
scalajs.outputDirectoryremoved
Plugin:
- split plugin classes;
- stage configuration;
- distinct output directories for main/test, fast/full optimization;
- write linker report to disk;
- tasks for linking of the test code;
- depend on opentorah-util;
- depend on org.scala-js:scalajs-env-jsdom-nodejs for running on Node;
- tasks for running the JavaScript code on Node;
- dependencies and Gradle updated;
Testing ScalaJS:
- depend on org.scala-js:scalajs-sbt-test-adapter;
- depend on org.scala-sbt:test-interface;
- depend on org.scala-sbt:compiler-interface;
- depend on org.scala-sbt:zinc (persist, core, apiinfo);
- glue code inspired by a few classes from sbt (org.scala-sbt.testing, org.scala-sbt.actions);
- tasks for testing;
ScalaJS tutorial:
- added sbt-based project based on it;
- updated its dependencies;
- switched to Scala 3;
- switched to ScalaTest;
- added Gradle setup to it, using the plugin via composite build;
- depend on org.scala-js:scalajs-dom_sjs1;
- depend on org.scalatest:scalatest_sjs1 for tests;
- depend on org.scala-js:scalajs-test-bridge (something the plugin should add automatically);
- first release;
- basic functionality (ScalaJS linker);