Skip to content

Commit 4915b4b

Browse files
author
Jaden Peterson
committed
Support versions of Scala 3 prior to v3.4.0
1 parent 4af41de commit 4915b4b

File tree

8 files changed

+71
-55
lines changed

8 files changed

+71
-55
lines changed

scala/private/phases/phase_compile.bzl

+12-1
Original file line numberDiff line numberDiff line change
@@ -262,14 +262,25 @@ def _compile_or_empty(
262262
)
263263

264264
def _build_ijar(ctx):
265-
if ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scala_version.startswith("2."):
265+
scala_version = ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scala_version
266+
is_scala_2 = scala_version.startswith("2.")
267+
268+
if is_scala_2:
266269
return java_common.run_ijar(
267270
ctx.actions,
268271
jar = ctx.outputs.jar,
269272
target_label = ctx.label,
270273
java_toolchain = specified_java_compile_toolchain(ctx),
271274
)
272275

276+
is_scala_3_3_or_lower = scala_version.startswith("3.") and int(scala_version.split(".")[1]) < 4
277+
278+
# Prior to Scala v3.4.0, TASTy files couldn't be read directly without a `.class` file present and its
279+
# "TASTY" attributes preserved:
280+
# https://github.com/scala/scala3/pull/17594
281+
if is_scala_3_3_or_lower:
282+
return ctx.outputs.jar
283+
273284
output = ctx.actions.declare_file("{}-ijar.jar".format(ctx.label.name))
274285
arguments = ctx.actions.args()
275286
arguments.add(ctx.outputs.jar)

scripts/create_repository.py

+7-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
9393
protoc_bridge_version = '0.7.14'
9494

9595
if is_scala_3:
96-
specs2_version = '4.20.9'
96+
# Versions greater than v4.20.0 depend on a version of the Scala standard library greater than v3.1.3. This is a
97+
# problem because Scala v3.1.3, which we support, needs to use a matching version of the Scala standard library.
98+
specs2_version = '4.20.0'
9799
elif scala_major == '2.11':
98100
specs2_version = '4.10.6'
99101
else:
@@ -129,7 +131,10 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
129131

130132
if is_scala_3:
131133
root_artifacts.extend([
132-
'dev.zio:izumi-reflect_3:2.3.10',
134+
# Versions of izumi-reflect greater than v2.2.1 depend on a version of the Scala standard library greater
135+
# than v3.1.3. This is a problem because Scala v3.1.3, which we support, needs to use a matching version of
136+
# the Scala standard library.
137+
'dev.zio:izumi-reflect_3:2.2.1',
133138
f'org.jline:jline-reader:{JLINE_VERSION}',
134139
f'org.jline:jline-terminal:{JLINE_VERSION}',
135140
f'org.jline:jline-terminal-jna:{JLINE_VERSION}',

third_party/repositories/scala_3_1.bzl

+10-10
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -258,8 +258,8 @@ artifacts = {
258258
"sha256": "dca9bcd395deffca77c1d3919b4cc998234025059a892b10c3674c9a37d6dc9f",
259259
},
260260
"io_bazel_rules_scala_scala_library": {
261-
"artifact": "org.scala-lang:scala3-library_3:3.3.3",
262-
"sha256": "16fe064f1373ed6f098d3d9f812a398ed5075db4bf2721c04e630502cb352816",
261+
"artifact": "org.scala-lang:scala3-library_3:3.1.3",
262+
"sha256": "1ac79970d94a1762ce6af4208820b4fa4c70093409decaad85c69d8b5f46e422",
263263
"deps": [
264264
"@io_bazel_rules_scala_scala_library_2",
265265
],
@@ -301,8 +301,8 @@ artifacts = {
301301
],
302302
},
303303
"io_bazel_rules_scala_scala_xml": {
304-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
305-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
304+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
305+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
306306
"deps": [
307307
"@io_bazel_rules_scala_scala_library",
308308
],
@@ -525,8 +525,8 @@ artifacts = {
525525
],
526526
},
527527
"org_portable_scala_portable_scala_reflect": {
528-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
529-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
528+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
529+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
530530
"deps": [
531531
"@io_bazel_rules_scala_scala_library_2",
532532
],

third_party/repositories/scala_3_2.bzl

+10-10
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -258,8 +258,8 @@ artifacts = {
258258
"sha256": "f07bab6250d718613f0f8250cc61cc23217c4fd84c410c3af43b8098fff31f69",
259259
},
260260
"io_bazel_rules_scala_scala_library": {
261-
"artifact": "org.scala-lang:scala3-library_3:3.3.3",
262-
"sha256": "16fe064f1373ed6f098d3d9f812a398ed5075db4bf2721c04e630502cb352816",
261+
"artifact": "org.scala-lang:scala3-library_3:3.2.2",
262+
"sha256": "f96317c57a5beae2cb16607d2b99cba7b136a96416e736966e5955e6608d868b",
263263
"deps": [
264264
"@io_bazel_rules_scala_scala_library_2",
265265
],
@@ -301,8 +301,8 @@ artifacts = {
301301
],
302302
},
303303
"io_bazel_rules_scala_scala_xml": {
304-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
305-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
304+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
305+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
306306
"deps": [
307307
"@io_bazel_rules_scala_scala_library",
308308
],
@@ -525,8 +525,8 @@ artifacts = {
525525
],
526526
},
527527
"org_portable_scala_portable_scala_reflect": {
528-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
529-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
528+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
529+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
530530
"deps": [
531531
"@io_bazel_rules_scala_scala_library_2",
532532
],

third_party/repositories/scala_3_3.bzl

+8-8
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -302,8 +302,8 @@ artifacts = {
302302
],
303303
},
304304
"io_bazel_rules_scala_scala_xml": {
305-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
306-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
305+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
306+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
307307
"deps": [
308308
"@io_bazel_rules_scala_scala_library",
309309
],
@@ -526,8 +526,8 @@ artifacts = {
526526
],
527527
},
528528
"org_portable_scala_portable_scala_reflect": {
529-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
530-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
529+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
530+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
531531
"deps": [
532532
"@io_bazel_rules_scala_scala_library_2",
533533
],

third_party/repositories/scala_3_4.bzl

+8-8
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -302,8 +302,8 @@ artifacts = {
302302
],
303303
},
304304
"io_bazel_rules_scala_scala_xml": {
305-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
306-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
305+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
306+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
307307
"deps": [
308308
"@io_bazel_rules_scala_scala_library",
309309
],
@@ -526,8 +526,8 @@ artifacts = {
526526
],
527527
},
528528
"org_portable_scala_portable_scala_reflect": {
529-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
530-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
529+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
530+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
531531
"deps": [
532532
"@io_bazel_rules_scala_scala_library_2",
533533
],

third_party/repositories/scala_3_5.bzl

+8-8
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -302,8 +302,8 @@ artifacts = {
302302
],
303303
},
304304
"io_bazel_rules_scala_scala_xml": {
305-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
306-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
305+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
306+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
307307
"deps": [
308308
"@io_bazel_rules_scala_scala_library",
309309
],
@@ -526,8 +526,8 @@ artifacts = {
526526
],
527527
},
528528
"org_portable_scala_portable_scala_reflect": {
529-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
530-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
529+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
530+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
531531
"deps": [
532532
"@io_bazel_rules_scala_scala_library_2",
533533
],

third_party/repositories/scala_3_6.bzl

+8-8
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ artifacts = {
133133
"sha256": "6d18fe25aa30b7e08b908cd21151d8f96e22965c640acd7751add9bbfe6137d4",
134134
},
135135
"dev_zio_izumi_reflect": {
136-
"artifact": "dev.zio:izumi-reflect_3:2.3.10",
137-
"sha256": "9f4e23968f00eaea2132337b94faa9e52cc7f159cce319c2f112c36d2c29d55d",
136+
"artifact": "dev.zio:izumi-reflect_3:2.2.1",
137+
"sha256": "1228bff91fa585b227427b3b8b93bffaf64b22727ea6a2c160476f00434d3a10",
138138
"deps": [
139139
"@dev_zio_izumi_reflect_thirdparty_boopickle_shaded",
140140
"@io_bazel_rules_scala_scala_library",
141141
],
142142
},
143143
"dev_zio_izumi_reflect_thirdparty_boopickle_shaded": {
144-
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.3.10",
145-
"sha256": "3c36e0e0c6bc18f5c1a0ffbf820c3783b472690afc56105e9c7c8b81357b5661",
144+
"artifact": "dev.zio:izumi-reflect-thirdparty-boopickle-shaded_3:2.2.1",
145+
"sha256": "34c34cbf4c18f725ba3860bc9f09dfeaee13430cccc72711cbac711bb379b290",
146146
"deps": [
147147
"@io_bazel_rules_scala_scala_library",
148148
],
@@ -311,8 +311,8 @@ artifacts = {
311311
],
312312
},
313313
"io_bazel_rules_scala_scala_xml": {
314-
"artifact": "org.scala-lang.modules:scala-xml_3:2.3.0",
315-
"sha256": "3220723238102107ab83182468e5dbe351b081a0601386710ef46c81a95d38d0",
314+
"artifact": "org.scala-lang.modules:scala-xml_3:2.1.0",
315+
"sha256": "48f22343575f4b1d6550eecc42d4b7f0a0d30223c72f015d8d893feab4cbeecd",
316316
"deps": [
317317
"@io_bazel_rules_scala_scala_library",
318318
],
@@ -535,8 +535,8 @@ artifacts = {
535535
],
536536
},
537537
"org_portable_scala_portable_scala_reflect": {
538-
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.3",
539-
"sha256": "920f62979293069cf721865f931e42f9f7b0b2720ee9f6a9ddff76a19ecf8d4e",
538+
"artifact": "org.portable-scala:portable-scala-reflect_2.13:1.1.1",
539+
"sha256": "11f2f59d0c228912811095025b36ce58a025a8397851d773295c8ad7862d8488",
540540
"deps": [
541541
"@io_bazel_rules_scala_scala_library_2",
542542
],

0 commit comments

Comments
 (0)