diff --git a/scala/3rdparty/workspace.bzl b/scala/3rdparty/workspace.bzl index 7df8369f..0effa737 100644 --- a/scala/3rdparty/workspace.bzl +++ b/scala/3rdparty/workspace.bzl @@ -53,41 +53,41 @@ def list_dependencies(): {"artifact":"org.apache.logging.log4j:log4j-core:2.17.1","url":"https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.jar","name":"org_apache_logging_log4j_log4j_core","actual":"@org_apache_logging_log4j_log4j_core//jar","bind": "jar/org/apache/logging/log4j/log4j_core"}, {"artifact":"org.fusesource.jansi:jansi:2.4.1","url":"https://repo1.maven.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.jar","name":"org_fusesource_jansi_jansi","actual":"@org_fusesource_jansi_jansi//jar","bind": "jar/org/fusesource/jansi/jansi"}, {"artifact":"org.hamcrest:hamcrest-core:1.3","url":"https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar","name":"org_hamcrest_hamcrest_core","actual":"@org_hamcrest_hamcrest_core//jar","bind": "jar/org/hamcrest/hamcrest_core"}, - {"artifact":"org.jacoco:org.jacoco.core:0.8.10","url":"https://repo1.maven.org/maven2/org/jacoco/org.jacoco.core/0.8.10/org.jacoco.core-0.8.10.jar","name":"org_jacoco_org_jacoco_core","actual":"@org_jacoco_org_jacoco_core//jar","bind": "jar/org/jacoco/org_jacoco_core"}, - {"artifact":"org.jline:jline-native:3.24.1","url":"https://repo1.maven.org/maven2/org/jline/jline-native/3.24.1/jline-native-3.24.1.jar","name":"org_jline_jline_native","actual":"@org_jline_jline_native//jar","bind": "jar/org/jline/jline_native"}, - {"artifact":"org.jline:jline-reader:3.24.1","url":"https://repo1.maven.org/maven2/org/jline/jline-reader/3.24.1/jline-reader-3.24.1.jar","name":"org_jline_jline_reader","actual":"@org_jline_jline_reader//jar","bind": "jar/org/jline/jline_reader"}, - {"artifact":"org.jline:jline-terminal:3.24.1","url":"https://repo1.maven.org/maven2/org/jline/jline-terminal/3.24.1/jline-terminal-3.24.1.jar","name":"org_jline_jline_terminal","actual":"@org_jline_jline_terminal//jar","bind": "jar/org/jline/jline_terminal"}, + {"artifact":"org.jacoco:org.jacoco.core:0.8.12","url":"https://repo1.maven.org/maven2/org/jacoco/org.jacoco.core/0.8.12/org.jacoco.core-0.8.12.jar","name":"org_jacoco_org_jacoco_core","actual":"@org_jacoco_org_jacoco_core//jar","bind": "jar/org/jacoco/org_jacoco_core"}, + {"artifact":"org.jline:jline-native:3.28.0","url":"https://repo1.maven.org/maven2/org/jline/jline-native/3.28.0/jline-native-3.28.0.jar","name":"org_jline_jline_native","actual":"@org_jline_jline_native//jar","bind": "jar/org/jline/jline_native"}, + {"artifact":"org.jline:jline-reader:3.28.0","url":"https://repo1.maven.org/maven2/org/jline/jline-reader/3.28.0/jline-reader-3.28.0.jar","name":"org_jline_jline_reader","actual":"@org_jline_jline_reader//jar","bind": "jar/org/jline/jline_reader"}, + {"artifact":"org.jline:jline-terminal:3.28.0","url":"https://repo1.maven.org/maven2/org/jline/jline-terminal/3.28.0/jline-terminal-3.28.0.jar","name":"org_jline_jline_terminal","actual":"@org_jline_jline_terminal//jar","bind": "jar/org/jline/jline_terminal"}, {"artifact":"org.jline:jline-terminal-jansi:3.24.1","url":"https://repo1.maven.org/maven2/org/jline/jline-terminal-jansi/3.24.1/jline-terminal-jansi-3.24.1.jar","name":"org_jline_jline_terminal_jansi","actual":"@org_jline_jline_terminal_jansi//jar","bind": "jar/org/jline/jline_terminal_jansi"}, {"artifact":"org.jline:jline-terminal-jna:3.24.1","url":"https://repo1.maven.org/maven2/org/jline/jline-terminal-jna/3.24.1/jline-terminal-jna-3.24.1.jar","name":"org_jline_jline_terminal_jna","actual":"@org_jline_jline_terminal_jna//jar","bind": "jar/org/jline/jline_terminal_jna"}, - {"artifact":"org.ow2.asm:asm:9.5","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar","name":"org_ow2_asm_asm","actual":"@org_ow2_asm_asm//jar","bind": "jar/org/ow2/asm/asm"}, - {"artifact":"org.ow2.asm:asm-commons:9.5","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar","name":"org_ow2_asm_asm_commons","actual":"@org_ow2_asm_asm_commons//jar","bind": "jar/org/ow2/asm/asm_commons"}, - {"artifact":"org.ow2.asm:asm-tree:9.5","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar","name":"org_ow2_asm_asm_tree","actual":"@org_ow2_asm_asm_tree//jar","bind": "jar/org/ow2/asm/asm_tree"}, + {"artifact":"org.ow2.asm:asm:9.7","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm/9.7/asm-9.7.jar","name":"org_ow2_asm_asm","actual":"@org_ow2_asm_asm//jar","bind": "jar/org/ow2/asm/asm"}, + {"artifact":"org.ow2.asm:asm-commons:9.7","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.7/asm-commons-9.7.jar","name":"org_ow2_asm_asm_commons","actual":"@org_ow2_asm_asm_commons//jar","bind": "jar/org/ow2/asm/asm_commons"}, + {"artifact":"org.ow2.asm:asm-tree:9.7","url":"https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.7/asm-tree-9.7.jar","name":"org_ow2_asm_asm_tree","actual":"@org_ow2_asm_asm_tree//jar","bind": "jar/org/ow2/asm/asm_tree"}, {"artifact":"org.scala-lang.modules:scala-collection-compat_3:2.11.0","url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_3/2.11.0/scala-collection-compat_3-2.11.0.jar","name":"org_scala_lang_modules_scala_collection_compat_3","actual":"@org_scala_lang_modules_scala_collection_compat_3//jar","bind": "jar/org/scala_lang/modules/scala_collection_compat_3"}, {"artifact":"org.scala-lang.modules:scala-parallel-collections_3:1.0.4","url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_3/1.0.4/scala-parallel-collections_3-1.0.4.jar","name":"org_scala_lang_modules_scala_parallel_collections_3","actual":"@org_scala_lang_modules_scala_parallel_collections_3//jar","bind": "jar/org/scala_lang/modules/scala_parallel_collections_3"}, {"artifact":"org.scala-lang.modules:scala-parser-combinators_3:2.1.0","url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parser-combinators_3/2.1.0/scala-parser-combinators_3-2.1.0.jar","name":"org_scala_lang_modules_scala_parser_combinators_3","actual":"@org_scala_lang_modules_scala_parser_combinators_3//jar","bind": "jar/org/scala_lang/modules/scala_parser_combinators_3"}, {"artifact":"org.scala-lang.modules:scala-xml_3:2.3.0","url":"https://repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_3/2.3.0/scala-xml_3-2.3.0.jar","name":"org_scala_lang_modules_scala_xml_3","actual":"@org_scala_lang_modules_scala_xml_3//jar","bind": "jar/org/scala_lang/modules/scala_xml_3"}, - {"artifact":"org.scala-sbt:compiler-interface:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/2.0.0-alpha14/compiler-interface-2.0.0-alpha14.jar","name":"org_scala_sbt_compiler_interface","actual":"@org_scala_sbt_compiler_interface//jar","bind": "jar/org/scala_sbt/compiler_interface"}, + {"artifact":"org.scala-sbt:compiler-interface:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/2.0.0-M1/compiler-interface-2.0.0-M1.jar","name":"org_scala_sbt_compiler_interface","actual":"@org_scala_sbt_compiler_interface//jar","bind": "jar/org/scala_sbt/compiler_interface"}, {"artifact":"org.scala-sbt:io_3:1.10.0","url":"https://repo1.maven.org/maven2/org/scala-sbt/io_3/1.10.0/io_3-1.10.0.jar","name":"org_scala_sbt_io_3","actual":"@org_scala_sbt_io_3//jar","bind": "jar/org/scala_sbt/io_3"}, {"artifact":"org.scala-sbt.jline:jline:2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79","url":"https://repo1.maven.org/maven2/org/scala-sbt/jline/jline/2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79/jline-2.14.7-sbt-9c3b6aca11c57e339441442bbf58e550cdfecb79.jar","name":"org_scala_sbt_jline_jline","actual":"@org_scala_sbt_jline_jline//jar","bind": "jar/org/scala_sbt/jline/jline"}, - {"artifact":"org.scala-sbt:launcher-interface:1.4.2","url":"https://repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.4.2/launcher-interface-1.4.2.jar","name":"org_scala_sbt_launcher_interface","actual":"@org_scala_sbt_launcher_interface//jar","bind": "jar/org/scala_sbt/launcher_interface"}, + {"artifact":"org.scala-sbt:launcher-interface:1.4.3","url":"https://repo1.maven.org/maven2/org/scala-sbt/launcher-interface/1.4.3/launcher-interface-1.4.3.jar","name":"org_scala_sbt_launcher_interface","actual":"@org_scala_sbt_launcher_interface//jar","bind": "jar/org/scala_sbt/launcher_interface"}, {"artifact":"org.scala-sbt:sbinary_3:0.5.1","url":"https://repo1.maven.org/maven2/org/scala-sbt/sbinary_3/0.5.1/sbinary_3-0.5.1.jar","name":"org_scala_sbt_sbinary_3","actual":"@org_scala_sbt_sbinary_3//jar","bind": "jar/org/scala_sbt/sbinary_3"}, {"artifact":"org.scala-sbt:test-interface:1.0","url":"https://repo1.maven.org/maven2/org/scala-sbt/test-interface/1.0/test-interface-1.0.jar","name":"org_scala_sbt_test_interface","actual":"@org_scala_sbt_test_interface//jar","bind": "jar/org/scala_sbt/test_interface"}, - {"artifact":"org.scala-sbt:util-control_3:2.0.0-alpha10","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-control_3/2.0.0-alpha10/util-control_3-2.0.0-alpha10.jar","name":"org_scala_sbt_util_control_3","actual":"@org_scala_sbt_util_control_3//jar","bind": "jar/org/scala_sbt/util_control_3"}, - {"artifact":"org.scala-sbt:util-core_3:2.0.0-alpha10","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-core_3/2.0.0-alpha10/util-core_3-2.0.0-alpha10.jar","name":"org_scala_sbt_util_core_3","actual":"@org_scala_sbt_util_core_3//jar","bind": "jar/org/scala_sbt/util_core_3"}, - {"artifact":"org.scala-sbt:util-interface:2.0.0-alpha10","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-interface/2.0.0-alpha10/util-interface-2.0.0-alpha10.jar","name":"org_scala_sbt_util_interface","actual":"@org_scala_sbt_util_interface//jar","bind": "jar/org/scala_sbt/util_interface"}, - {"artifact":"org.scala-sbt:util-logging_3:2.0.0-alpha10","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-logging_3/2.0.0-alpha10/util-logging_3-2.0.0-alpha10.jar","name":"org_scala_sbt_util_logging_3","actual":"@org_scala_sbt_util_logging_3//jar","bind": "jar/org/scala_sbt/util_logging_3"}, - {"artifact":"org.scala-sbt:util-relation_3:2.0.0-alpha10","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-relation_3/2.0.0-alpha10/util-relation_3-2.0.0-alpha10.jar","name":"org_scala_sbt_util_relation_3","actual":"@org_scala_sbt_util_relation_3//jar","bind": "jar/org/scala_sbt/util_relation_3"}, - {"artifact":"org.scala-sbt:zinc_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc_3/2.0.0-alpha14/zinc_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_3","actual":"@org_scala_sbt_zinc_3//jar","bind": "jar/org/scala_sbt/zinc_3"}, - {"artifact":"org.scala-sbt:zinc-apiinfo_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-apiinfo_3/2.0.0-alpha14/zinc-apiinfo_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_apiinfo_3","actual":"@org_scala_sbt_zinc_apiinfo_3//jar","bind": "jar/org/scala_sbt/zinc_apiinfo_3"}, - {"artifact":"org.scala-sbt:zinc-classfile_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-classfile_3/2.0.0-alpha14/zinc-classfile_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_classfile_3","actual":"@org_scala_sbt_zinc_classfile_3//jar","bind": "jar/org/scala_sbt/zinc_classfile_3"}, - {"artifact":"org.scala-sbt:zinc-classpath_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-classpath_3/2.0.0-alpha14/zinc-classpath_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_classpath_3","actual":"@org_scala_sbt_zinc_classpath_3//jar","bind": "jar/org/scala_sbt/zinc_classpath_3"}, - {"artifact":"org.scala-sbt:zinc-compile-core_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-compile-core_3/2.0.0-alpha14/zinc-compile-core_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_compile_core_3","actual":"@org_scala_sbt_zinc_compile_core_3//jar","bind": "jar/org/scala_sbt/zinc_compile_core_3"}, - {"artifact":"org.scala-sbt:zinc-core_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-core_3/2.0.0-alpha14/zinc-core_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_core_3","actual":"@org_scala_sbt_zinc_core_3//jar","bind": "jar/org/scala_sbt/zinc_core_3"}, - {"artifact":"org.scala-sbt:zinc-persist_3:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-persist_3/2.0.0-alpha14/zinc-persist_3-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_persist_3","actual":"@org_scala_sbt_zinc_persist_3//jar","bind": "jar/org/scala_sbt/zinc_persist_3"}, + {"artifact":"org.scala-sbt:util-control_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-control_3/2.0.0-M1/util-control_3-2.0.0-M1.jar","name":"org_scala_sbt_util_control_3","actual":"@org_scala_sbt_util_control_3//jar","bind": "jar/org/scala_sbt/util_control_3"}, + {"artifact":"org.scala-sbt:util-core_3:2.0.0-M2","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-core_3/2.0.0-M2/util-core_3-2.0.0-M2.jar","name":"org_scala_sbt_util_core_3","actual":"@org_scala_sbt_util_core_3//jar","bind": "jar/org/scala_sbt/util_core_3"}, + {"artifact":"org.scala-sbt:util-interface:2.0.0-M2","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-interface/2.0.0-M2/util-interface-2.0.0-M2.jar","name":"org_scala_sbt_util_interface","actual":"@org_scala_sbt_util_interface//jar","bind": "jar/org/scala_sbt/util_interface"}, + {"artifact":"org.scala-sbt:util-logging_3:2.0.0-M2","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-logging_3/2.0.0-M2/util-logging_3-2.0.0-M2.jar","name":"org_scala_sbt_util_logging_3","actual":"@org_scala_sbt_util_logging_3//jar","bind": "jar/org/scala_sbt/util_logging_3"}, + {"artifact":"org.scala-sbt:util-relation_3:2.0.0-M2","url":"https://repo1.maven.org/maven2/org/scala-sbt/util-relation_3/2.0.0-M2/util-relation_3-2.0.0-M2.jar","name":"org_scala_sbt_util_relation_3","actual":"@org_scala_sbt_util_relation_3//jar","bind": "jar/org/scala_sbt/util_relation_3"}, + {"artifact":"org.scala-sbt:zinc_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc_3/2.0.0-M1/zinc_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_3","actual":"@org_scala_sbt_zinc_3//jar","bind": "jar/org/scala_sbt/zinc_3"}, + {"artifact":"org.scala-sbt:zinc-apiinfo_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-apiinfo_3/2.0.0-M1/zinc-apiinfo_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_apiinfo_3","actual":"@org_scala_sbt_zinc_apiinfo_3//jar","bind": "jar/org/scala_sbt/zinc_apiinfo_3"}, + {"artifact":"org.scala-sbt:zinc-classfile_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-classfile_3/2.0.0-M1/zinc-classfile_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_classfile_3","actual":"@org_scala_sbt_zinc_classfile_3//jar","bind": "jar/org/scala_sbt/zinc_classfile_3"}, + {"artifact":"org.scala-sbt:zinc-classpath_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-classpath_3/2.0.0-M1/zinc-classpath_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_classpath_3","actual":"@org_scala_sbt_zinc_classpath_3//jar","bind": "jar/org/scala_sbt/zinc_classpath_3"}, + {"artifact":"org.scala-sbt:zinc-compile-core_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-compile-core_3/2.0.0-M1/zinc-compile-core_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_compile_core_3","actual":"@org_scala_sbt_zinc_compile_core_3//jar","bind": "jar/org/scala_sbt/zinc_compile_core_3"}, + {"artifact":"org.scala-sbt:zinc-core_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-core_3/2.0.0-M1/zinc-core_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_core_3","actual":"@org_scala_sbt_zinc_core_3//jar","bind": "jar/org/scala_sbt/zinc_core_3"}, + {"artifact":"org.scala-sbt:zinc-persist_3:2.0.0-M1","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-persist_3/2.0.0-M1/zinc-persist_3-2.0.0-M1.jar","name":"org_scala_sbt_zinc_persist_3","actual":"@org_scala_sbt_zinc_persist_3//jar","bind": "jar/org/scala_sbt/zinc_persist_3"}, {"artifact":"org.scala-sbt:zinc-persist-core-assembly:2.0.0-alpha14","url":"https://repo1.maven.org/maven2/org/scala-sbt/zinc-persist-core-assembly/2.0.0-alpha14/zinc-persist-core-assembly-2.0.0-alpha14.jar","name":"org_scala_sbt_zinc_persist_core_assembly","actual":"@org_scala_sbt_zinc_persist_core_assembly//jar","bind": "jar/org/scala_sbt/zinc_persist_core_assembly"}, - {"artifact":"org.scalameta:junit-interface:1.0.2","url":"https://repo1.maven.org/maven2/org/scalameta/junit-interface/1.0.2/junit-interface-1.0.2.jar","name":"org_scalameta_junit_interface","actual":"@org_scalameta_junit_interface//jar","bind": "jar/org/scalameta/junit_interface"}, - {"artifact":"org.scalameta:munit_3:1.0.2","url":"https://repo1.maven.org/maven2/org/scalameta/munit_3/1.0.2/munit_3-1.0.2.jar","name":"org_scalameta_munit_3","actual":"@org_scalameta_munit_3//jar","bind": "jar/org/scalameta/munit_3"}, - {"artifact":"org.scalameta:munit-diff_3:1.0.2","url":"https://repo1.maven.org/maven2/org/scalameta/munit-diff_3/1.0.2/munit-diff_3-1.0.2.jar","name":"org_scalameta_munit_diff_3","actual":"@org_scalameta_munit_diff_3//jar","bind": "jar/org/scalameta/munit_diff_3"}, + {"artifact":"org.scalameta:junit-interface:1.0.3","url":"https://repo1.maven.org/maven2/org/scalameta/junit-interface/1.0.3/junit-interface-1.0.3.jar","name":"org_scalameta_junit_interface","actual":"@org_scalameta_junit_interface//jar","bind": "jar/org/scalameta/junit_interface"}, + {"artifact":"org.scalameta:munit_3:1.0.3","url":"https://repo1.maven.org/maven2/org/scalameta/munit_3/1.0.3/munit_3-1.0.3.jar","name":"org_scalameta_munit_3","actual":"@org_scalameta_munit_3//jar","bind": "jar/org/scalameta/munit_3"}, + {"artifact":"org.scalameta:munit-diff_3:1.0.3","url":"https://repo1.maven.org/maven2/org/scalameta/munit-diff_3/1.0.3/munit-diff_3-1.0.3.jar","name":"org_scalameta_munit_diff_3","actual":"@org_scalameta_munit_diff_3//jar","bind": "jar/org/scalameta/munit_diff_3"}, ] def maven_dependencies(callback = jar_artifact_callback): diff --git a/scala/Dependencies.scala b/scala/Dependencies.scala index 4a7a3a1b..64a36642 100644 --- a/scala/Dependencies.scala +++ b/scala/Dependencies.scala @@ -6,9 +6,9 @@ import sbt.librarymanagement.{DependencyBuilders, ModuleID, Resolver}, Dependenc object Dependencies: private val sbtVersion = "2.0.0-M2" - private val zincVersion = "2.0.0-alpha14" + private val zincVersion = "2.0.0-M1" val scalapbV = "1.0.0-alpha.1" - val munitV = "1.0.2" + val munitV = "1.0.3" val resolvers: Seq[Resolver] = Vector( "mavencentral".at("https://repo1.maven.org/maven2/"), @@ -24,8 +24,8 @@ object Dependencies: "org.scala-lang" % "scala-reflect" -> "@scala_reflect_2_13//jar" ) val dependencies: Seq[ModuleID] = Vector( - "org.jacoco" % "org.jacoco.core" % "0.8.10", - "org.jline" % "jline-reader" % "3.24.1", + "org.jacoco" % "org.jacoco.core" % "0.8.12", + "org.jline" % "jline-reader" % "3.28.0", "org.scala-lang.modules" %% "scala-xml" % "2.3.0", "org.scala-sbt" % "test-interface" % "1.0", "org.scala-sbt" % "compiler-interface" % zincVersion, @@ -37,7 +37,7 @@ object Dependencies: "org.scala-sbt" %% "zinc-classpath" % zincVersion, "org.scala-sbt" %% "zinc-compile-core" % zincVersion, "org.scala-sbt" %% "zinc-persist" % zincVersion, - "org.scala-sbt" % "zinc-persist-core-assembly" % zincVersion, + "org.scala-sbt" % "zinc-persist-core-assembly" % "2.0.0-alpha14", "org.scala-sbt" %% "zinc-apiinfo" % zincVersion, "org.scalameta" %% "munit" % munitV, "org.scalameta" %% "munit-diff" % munitV, diff --git a/scala/workers/zinc/compile/main/AnalysisStore.scala b/scala/workers/zinc/compile/main/AnalysisStore.scala index e281bbd6..3c4579de 100644 --- a/scala/workers/zinc/compile/main/AnalysisStore.scala +++ b/scala/workers/zinc/compile/main/AnalysisStore.scala @@ -2,20 +2,22 @@ package rules_scala package workers.zinc.compile import com.google.devtools.build.buildjar.jarhelper.JarHelper + import java.io.{File, InputStream, OutputStream, OutputStreamWriter} import java.nio.charset.StandardCharsets import java.nio.file.{Files, NoSuchFileException, Path, Paths} import java.nio.file.attribute.FileTime -import java.util.{Map as JMap, Optional} +import java.util.{Optional, Map as JMap} import java.util.zip.{GZIPInputStream, GZIPOutputStream} -import sbt.internal.inc.{APIs, Analysis, PlainVirtualFile, Relations, Schema, SourceInfos, Stamp as StampImpl, Stamper, Stamps} -import sbt.internal.inc.binary.converters.{ProtobufReaders, ProtobufWriters} +import sbt.internal.inc.{APIs, Analysis, PlainVirtualFile, Relations, Schema, SourceInfos, Stamper, Stamps, Stamp as StampImpl} +import sbt.internal.inc.consistent.ConsistentFileAnalysisStore import sbt.internal.inc.text.Mapper import sbt.internal.shaded.com.google.protobuf.{GeneratedMessageV3, Parser} + import scala.collection.mutable import scala.jdk.CollectionConverters.* import xsbti.{PathBasedFile, VirtualFileRef} -import xsbti.compile.{AnalysisContents, AnalysisStore, MiniSetup} +import xsbti.compile.{AnalysisContents, AnalysisStore, CompileOptions, MiniSetup, Output} import xsbti.compile.analysis.{GenericMapper, ReadMapper, ReadWriteMappers, Stamp, WriteMapper} import workers.common.AnnexLogger @@ -27,7 +29,7 @@ object AnxAnalysisStore: def write(message: GeneratedMessageV3, stream: OutputStream): Unit object BinaryFormat extends Format: - def read[A <: GeneratedMessageV3](parser: Parser[A], stream: InputStream) = + def read[A <: GeneratedMessageV3](parser: Parser[A], stream: InputStream): A = parser.parseFrom(GZIPInputStream(stream)) def write(message: GeneratedMessageV3, stream: OutputStream): Unit = val gzip = GZIPOutputStream(stream, true) @@ -35,7 +37,7 @@ object AnxAnalysisStore: gzip.finish() object TextFormat extends Format: - def read[A <: GeneratedMessageV3](parser: Parser[A], stream: InputStream) = + def read[A <: GeneratedMessageV3](parser: Parser[A], stream: InputStream): A = parser.parseFrom(stream) def write(message: GeneratedMessageV3, stream: OutputStream): Unit = val writer = OutputStreamWriter(stream, StandardCharsets.US_ASCII) @@ -64,12 +66,12 @@ final class AnxAnalysisStore(files: AnalysisFiles, analyses: AnxAnalyses) extend override def get: Optional[AnalysisContents] = try val analysis = Analysis.Empty.copy( - apis = analyses.apis.read(files.apis), - relations = analyses.relations.read(files.relations), - infos = analyses.sourceInfos.read(files.sourceInfos), - stamps = analyses.stamps.read(files.stamps) + apis = analyses.apis(files.apis).read(files.apis), + relations = analyses.relations(files.relations).read(files.relations), + infos = analyses.sourceInfos(files.sourceInfos).read(files.sourceInfos), + stamps = analyses.stamps(files.stamps).read(files.stamps) ) - val miniSetup = analyses.miniSetup.read(files.miniSetup) + val miniSetup = analyses.miniSetup(files.miniSetup).read(files.miniSetup) Optional.of(AnalysisContents.create(analysis, miniSetup)) catch case _: NoSuchFileException => Empty @@ -77,56 +79,80 @@ final class AnxAnalysisStore(files: AnalysisFiles, analyses: AnxAnalyses) extend override def set(analysisContents: AnalysisContents): Unit = val analysis = analysisContents.getAnalysis.asInstanceOf[Analysis] - analyses.apis.write(files.apis, analysis.apis) - analyses.relations.write(files.relations, analysis.relations) - analyses.sourceInfos.write(files.sourceInfos, analysis.infos) - analyses.stamps.write(files.stamps, analysis.stamps) + analyses.apis(files.apis).write(files.apis, analysis.apis) + analyses.relations(files.relations).write(files.relations, analysis.relations) + analyses.sourceInfos(files.sourceInfos).write(files.sourceInfos, analysis.infos) + analyses.stamps(files.stamps).write(files.stamps, analysis.stamps) val miniSetup = analysisContents.getMiniSetup - analyses.miniSetup.write(files.miniSetup, miniSetup) + analyses.miniSetup(files.miniSetup).write(files.miniSetup, miniSetup) final class AnxAnalyses(format: AnxAnalysisStore.Format)(using ctx: ZincContext, logger: AnnexLogger): - private val mappers = AnxMapper.mappers() - private val reader = ProtobufReaders(mappers.getReadMapper, Schema.Version.V1_1) - private val writer = ProtobufWriters(mappers.getWriteMapper) + private def binaryStore(path: Path): AnalysisStore = + ConsistentFileAnalysisStore.binary( + file = path.toFile, + mappers = ReadWriteMappers.getEmptyMappers, + sort = false, + parallelism = math.min(Runtime.getRuntime.availableProcessors(), 8) + ) - def apis = + def apis(path: Path) = new Store[APIs]( - stream => reader.fromApis(shouldStoreApis = true)(format.read[Schema.APIs](Schema.APIs.parser, stream)), - (stream, value) => format.write(update(writer.toApis(value, shouldStoreApis = true)), stream) + _ => binaryStore(path).get + .map(_.getAnalysis.asInstanceOf[Analysis].apis) + .orElse(Analysis.Empty.apis), + (_, value) => { + val contents = binaryStore(path).get + val miniSetup = contents.map(_.getMiniSetup).orElseThrow() + binaryStore(path).set(AnalysisContents.create(Analysis.Empty.copy(apis = value), miniSetup)) + } ) - def miniSetup = + def miniSetup(path: Path) = new Store[MiniSetup]( - stream => reader.fromMiniSetup(format.read[Schema.MiniSetup](Schema.MiniSetup.parser, stream)), - (stream, value) => format.write(writer.toMiniSetup(value), stream) + _ => binaryStore(path).get.map(_.getMiniSetup).orElseThrow(), + (_, value) => { + binaryStore(path).set(AnalysisContents.create(Analysis.Empty, value)) + } ) - def relations = + def relations(path: Path) = new Store[Relations]( - stream => reader.fromRelations(update(mappers.getReadMapper, format.read[Schema.Relations](Schema.Relations.parser, stream))), - (stream, value) => format.write(update(mappers.getWriteMapper, writer.toRelations(value)), stream) + _ => binaryStore(path).get + .map(_.getAnalysis.asInstanceOf[Analysis].relations) + .orElse(Analysis.Empty.relations), + (_, value) => { + val contents = binaryStore(path).get + val miniSetup = contents.map(_.getMiniSetup).orElseThrow() + binaryStore(path).set(AnalysisContents.create(Analysis.Empty.copy(relations = value), miniSetup)) + } ) - def sourceInfos = + def sourceInfos(path: Path) = new Store[SourceInfos]( - stream => reader.fromSourceInfos(format.read[Schema.SourceInfos](Schema.SourceInfos.parser, stream)), - (stream, value) => format.write(writer.toSourceInfos(value), stream) + _ => binaryStore(path).get.orElseThrow().getAnalysis.asInstanceOf[Analysis].infos, + (_, value) => { + val contents = binaryStore(path).get.orElseThrow() + binaryStore(path).set(AnalysisContents.create(Analysis.Empty.copy(infos = value), contents.getMiniSetup)) + } ) - def stamps = + def stamps(path: Path) = new Store[Stamps]( - stream => reader.fromStamps(format.read[Schema.Stamps](Schema.Stamps.parser, stream)), - (stream, value) => format.write(writer.toStamps(value), stream) + _ => binaryStore(path).get.orElseThrow().getAnalysis.asInstanceOf[Analysis].stamps, + (_, value) => { + val contents = binaryStore(path).get.orElseThrow() + binaryStore(path).set(AnalysisContents.create(Analysis.Empty.copy(stamps = value), contents.getMiniSetup)) + } ) private def updateAnalyzedMap(map: JMap[String, Schema.AnalyzedClass]): JMap[String, Schema.AnalyzedClass] = map.asScala.map { case (key, cls) => - key -> cls.toBuilder().setCompilationTimestamp(JarHelper.DEFAULT_TIMESTAMP).build() + key -> cls.toBuilder.setCompilationTimestamp(JarHelper.DEFAULT_TIMESTAMP).build() }.asJava private def update(api: Schema.APIs): Schema.APIs = api - .toBuilder() + .toBuilder .putAllInternal(updateAnalyzedMap(api.getInternalMap)) .putAllExternal(updateAnalyzedMap(api.getExternalMap)) .build() @@ -137,11 +163,11 @@ final class AnxAnalyses(format: AnxAnalysisStore.Format)(using ctx: ZincContext, relations: Schema.Relations ): Schema.Relations = val updatedSrcProd = relations.getSrcProdMap.asScala.map { case (source, products) => - val values = products.getValuesList().asScala.map(path => mapper.mapProductFile(Mapper.forFileV.read(path)).toString) + val values = products.getValuesList.asScala.map(path => mapper.mapProductFile(Mapper.forFileV.read(path)).toString) mapper.mapSourceFile(Mapper.forFileV.read(source)).toString -> Schema.Values.newBuilder().addAllValues(values.asJava).build() } val updatedLibraryDep = relations.getLibraryDepMap.asScala.map { case (source, binaries) => - val values = binaries.getValuesList().asScala.map(path => mapper.mapBinaryFile(Mapper.forFileV.read(path)).toString) + val values = binaries.getValuesList.asScala.map(path => mapper.mapBinaryFile(Mapper.forFileV.read(path)).toString) mapper .mapBinaryFile(mapper.mapSourceFile(Mapper.forFileV.read(source))) .toString -> Schema.Values.newBuilder().addAllValues(values.asJava).build() @@ -149,7 +175,7 @@ final class AnxAnalyses(format: AnxAnalysisStore.Format)(using ctx: ZincContext, val updatedClasses = relations.getClassesMap.asScala.map { case (source, values) => mapper.mapSourceFile(Mapper.forFileV.read(source)).toString -> values } - relations.toBuilder().putAllSrcProd(updatedSrcProd.asJava).putAllLibraryDep(updatedLibraryDep.asJava).putAllClasses(updatedClasses.asJava).build() + relations.toBuilder.putAllSrcProd(updatedSrcProd.asJava).putAllLibraryDep(updatedLibraryDep.asJava).putAllClasses(updatedClasses.asJava).build() object AnxMapper: val rootPlaceholder = Paths.get("_ROOT_") diff --git a/scala/workers/zinc/compile/main/ZincRunner.scala b/scala/workers/zinc/compile/main/ZincRunner.scala index ce4d45e4..8797389f 100644 --- a/scala/workers/zinc/compile/main/ZincRunner.scala +++ b/scala/workers/zinc/compile/main/ZincRunner.scala @@ -16,6 +16,7 @@ import scala.util.control.NonFatal import com.google.devtools.build.buildjar.jarhelper.JarCreator import sbt.internal.inc.{Analysis, AnalyzingCompiler, CompileFailed, IncrementalCompilerImpl, Locate, PlainVirtualFile, ZincUtil} import sbt.internal.inc.classpath.ClassLoaderCache +import sbt.internal.inc.{Stamps, SourceInfos} import scopt.{DefaultOParserSetup, OParser, OParserSetup} import xsbti.{Logger, PathBasedFile, Problem, Severity, VirtualFile} import xsbti.compile.{ @@ -200,8 +201,11 @@ object ZincRunner extends WorkerMain[ZincRunner.Arguments]: .get(file) .map: files => Analysis.Empty.copy( - apis = analysesFormat.apis.read(files.apis), - relations = analysesFormat.relations.read(files.relations) + stamps = Stamps.empty, + apis = analysesFormat.apis(files.apis).read(files.apis), + relations = analysesFormat.relations(files.relations).read(files.relations), + infos = SourceInfos.empty, + compilations = sbt.internal.inc.Compilations.empty ) val setup = diff --git a/scala/workers/zinc/test/TestRunner.scala b/scala/workers/zinc/test/TestRunner.scala index 89938ebb..5dbc541a 100644 --- a/scala/workers/zinc/test/TestRunner.scala +++ b/scala/workers/zinc/test/TestRunner.scala @@ -13,10 +13,13 @@ import scala.language.unsafeNulls import scala.jdk.CollectionConverters.* import scala.util.control.NonFatal -import sbt.internal.inc.binary.converters.ProtobufReaders import sbt.internal.inc.Schema +import sbt.internal.inc.text.TextAnalysisFormat +import sbt.internal.inc.{APIs, Analysis, CompanionsStore} +import xsbti.compile.analysis.{ReadMapper, ReadWriteMappers} import scopt.OParser import xsbti.compile.analysis.ReadMapper +import java.io.{BufferedReader, InputStreamReader} import common.sbt_testing.* import workers.common.Bazel @@ -130,11 +133,18 @@ object TestRunner: val apisStream = Files.newInputStream(apisFile) val apis = try - val raw = - try Schema.APIs.parseFrom(GZIPInputStream(apisStream)) - finally apisStream.close() - ProtobufReaders(ReadMapper.getEmptyMapper, Schema.Version.V1_1).fromApis(shouldStoreApis = true)(raw) - catch case NonFatal(e) => throw Exception(s"Failed to load APIs from $apisFile", e) + val bufferedReader = new BufferedReader(new InputStreamReader(apisStream)) + val analysisFormat = new TextAnalysisFormat(ReadWriteMappers.getEmptyMappers) + val (compileAnalysis, _) = analysisFormat.read(bufferedReader, null) + val analysis = compileAnalysis match { + case a: Analysis => a + case _ => throw new Exception("Failed to cast CompileAnalysis to Analysis") + } + analysis.apis + catch { + case NonFatal(e) => throw Exception(s"Failed to load APIs from $apisFile", e) + } + finally apisStream.close() val loader = TestFrameworkLoader(classLoader) val frameworks = workArgs.frameworks.flatMap(loader.load) @@ -170,7 +180,9 @@ object TestRunner: case Isolation.Process => val executable = runPath.resolve(workArgs.subprocessExec) ProcessTestRunner(framework, classpath, ProcessCommand(executable.toString, runArgs.subprocessArg), logger) - case Isolation.None => BasicTestRunner(framework, classLoader, parallel = workArgs.parallel, parallelN = workArgs.parallelN, logger) + case Isolation.None => + BasicTestRunner(framework, classLoader, parallel = workArgs.parallel, parallelN = workArgs.parallelN, logger) + try runner.execute(filteredTests, testScopeAndName.getOrElse(""), runArgs.frameworkArgs) catch case e: Throwable =>