Skip to content

Commit

Permalink
Support versions of Scala 3 prior to v3.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Jaden Peterson committed Jan 22, 2025
1 parent 4af41de commit 4915b4b
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 55 deletions.
13 changes: 12 additions & 1 deletion scala/private/phases/phase_compile.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -262,14 +262,25 @@ 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,
target_label = ctx.label,
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)
Expand Down
9 changes: 7 additions & 2 deletions scripts/create_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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}',
Expand Down
20 changes: 10 additions & 10 deletions third_party/repositories/scala_3_1.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down
20 changes: 10 additions & 10 deletions third_party/repositories/scala_3_2.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down
16 changes: 8 additions & 8 deletions third_party/repositories/scala_3_3.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down
16 changes: 8 additions & 8 deletions third_party/repositories/scala_3_4.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down
16 changes: 8 additions & 8 deletions third_party/repositories/scala_3_5.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down
16 changes: 8 additions & 8 deletions third_party/repositories/scala_3_6.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down Expand Up @@ -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",
],
Expand Down

0 comments on commit 4915b4b

Please sign in to comment.