diff --git a/scala/private/phases/phase_compile.bzl b/scala/private/phases/phase_compile.bzl index 7b78abefa..c1df0ada9 100644 --- a/scala/private/phases/phase_compile.bzl +++ b/scala/private/phases/phase_compile.bzl @@ -262,7 +262,10 @@ def _compile_or_empty( ) def _build_ijar(ctx): - if ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scala_version.startswith("2."): + scala_version = ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scala_version + is_scala_2 = scala_version.startswith("2.") + + if is_scala_2: return java_common.run_ijar( ctx.actions, jar = ctx.outputs.jar, @@ -270,6 +273,14 @@ def _build_ijar(ctx): java_toolchain = specified_java_compile_toolchain(ctx), ) + is_scala_3_3_or_lower = scala_version.startswith("3.") and int(scala_version.split(".")[1]) < 4 + + # Prior to Scala v3.4.0, TASTy files couldn't be read directly without a `.class` file present and its + # "TASTY" attributes preserved: + # https://github.com/scala/scala3/pull/17594 + if is_scala_3_3_or_lower: + return ctx.outputs.jar + output = ctx.actions.declare_file("{}-ijar.jar".format(ctx.label.name)) arguments = ctx.actions.args() arguments.add(ctx.outputs.jar) diff --git a/scripts/create_repository.py b/scripts/create_repository.py index 2c6463886..8931096c1 100755 --- a/scripts/create_repository.py +++ b/scripts/create_repository.py @@ -93,7 +93,9 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]: protoc_bridge_version = '0.7.14' if is_scala_3: - specs2_version = '4.20.9' + # Versions greater than v4.20.0 depend on a version of the Scala standard library greater than v3.1.3. This is a + # problem because Scala v3.1.3, which we support, needs to use a matching version of the Scala standard library. + specs2_version = '4.20.0' elif scala_major == '2.11': specs2_version = '4.10.6' else: @@ -129,7 +131,10 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]: if is_scala_3: root_artifacts.extend([ - 'dev.zio:izumi-reflect_3:2.3.10', + # Versions of izumi-reflect greater than v2.2.1 depend on a version of the Scala standard library greater + # than v3.1.3. This is a problem because Scala v3.1.3, which we support, needs to use a matching version of + # the Scala standard library. + 'dev.zio:izumi-reflect_3:2.2.1', f'org.jline:jline-reader:{JLINE_VERSION}', f'org.jline:jline-terminal:{JLINE_VERSION}', f'org.jline:jline-terminal-jna:{JLINE_VERSION}', diff --git a/third_party/repositories/scala_3_1.bzl b/third_party/repositories/scala_3_1.bzl index 8c25710aa..a538969f9 100644 --- a/third_party/repositories/scala_3_1.bzl +++ b/third_party/repositories/scala_3_1.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -258,8 +258,8 @@ artifacts = { "sha256": "dca9bcd395deffca77c1d3919b4cc998234025059a892b10c3674c9a37d6dc9f", }, "io_bazel_rules_scala_scala_library": { - "artifact": "org.scala-lang:scala3-library_3:3.3.3", - "sha256": "16fe064f1373ed6f098d3d9f812a398ed5075db4bf2721c04e630502cb352816", + "artifact": "org.scala-lang:scala3-library_3:3.1.3", + "sha256": "1ac79970d94a1762ce6af4208820b4fa4c70093409decaad85c69d8b5f46e422", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], @@ -301,8 +301,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -525,8 +525,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], diff --git a/third_party/repositories/scala_3_2.bzl b/third_party/repositories/scala_3_2.bzl index 6b09e8b36..6b3a3796f 100644 --- a/third_party/repositories/scala_3_2.bzl +++ b/third_party/repositories/scala_3_2.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -258,8 +258,8 @@ artifacts = { "sha256": "f07bab6250d718613f0f8250cc61cc23217c4fd84c410c3af43b8098fff31f69", }, "io_bazel_rules_scala_scala_library": { - "artifact": "org.scala-lang:scala3-library_3:3.3.3", - "sha256": "16fe064f1373ed6f098d3d9f812a398ed5075db4bf2721c04e630502cb352816", + "artifact": "org.scala-lang:scala3-library_3:3.2.2", + "sha256": "f96317c57a5beae2cb16607d2b99cba7b136a96416e736966e5955e6608d868b", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], @@ -301,8 +301,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -525,8 +525,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], diff --git a/third_party/repositories/scala_3_3.bzl b/third_party/repositories/scala_3_3.bzl index bd8f61258..693016775 100644 --- a/third_party/repositories/scala_3_3.bzl +++ b/third_party/repositories/scala_3_3.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -302,8 +302,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -526,8 +526,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], diff --git a/third_party/repositories/scala_3_4.bzl b/third_party/repositories/scala_3_4.bzl index 659852c94..8ab050088 100644 --- a/third_party/repositories/scala_3_4.bzl +++ b/third_party/repositories/scala_3_4.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -302,8 +302,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -526,8 +526,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], diff --git a/third_party/repositories/scala_3_5.bzl b/third_party/repositories/scala_3_5.bzl index d693476ee..28a69ce24 100644 --- a/third_party/repositories/scala_3_5.bzl +++ b/third_party/repositories/scala_3_5.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -302,8 +302,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -526,8 +526,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ], diff --git a/third_party/repositories/scala_3_6.bzl b/third_party/repositories/scala_3_6.bzl index b2b2ab086..d6456808b 100644 --- a/third_party/repositories/scala_3_6.bzl +++ b/third_party/repositories/scala_3_6.bzl @@ -133,16 +133,16 @@ artifacts = { "sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4", }, "dev_zio_izumi_reflect": { - "artifact": "dev.zio:izumi-reflect_3:2.3.10", - "sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d", + "artifact": "dev.zio:izumi-reflect_3:2.2.1", + "sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10", "deps": [ "@dev_zio_izumi_reflect_thirdparty_boopickle_shaded", "@io_bazel_rules_scala_scala_library", ], }, "dev_zio_izumi_reflect_thirdparty_boopickle_shaded": { - "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10", - "sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661", + "artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1", + "sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -311,8 +311,8 @@ artifacts = { ], }, "io_bazel_rules_scala_scala_xml": { - "artifact": "org.scala-lang.modules:scala-xml_3:2.3.0", - "sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0", + "artifact": "org.scala-lang.modules:scala-xml_3:2.1.0", + "sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd", "deps": [ "@io_bazel_rules_scala_scala_library", ], @@ -535,8 +535,8 @@ artifacts = { ], }, "org_portable_scala_portable_scala_reflect": { - "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3", - "sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e", + "artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1", + "sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488", "deps": [ "@io_bazel_rules_scala_scala_library_2", ],