Skip to content

Commit 8db5a51

Browse files
author
Jaden Peterson
committed
Vary the specs2 version by the Scala version
Different versions of specs2 support different Scala versions, so it's necessary to use a different version, depending on which Scala version we're on. v4.10.6 is the last to support Scala 2.11, v4.20.9 is the last to support Scala 2, and the latest version as of the time this commit was written, v5.5.8, only supports Scala 3.
1 parent 16d68e9 commit 8db5a51

File tree

11 files changed

+274
-86
lines changed

11 files changed

+274
-86
lines changed

scala/private/macros/scala_repositories.bzl

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ _COMPILER_SOURCES_ENTRY_TEMPLATE = """
3737
"@io_bazel_rules_scala_config//:scala_version{scala_version_suffix}":
3838
"@scala_compiler_source{scala_version_suffix}//:src","""
3939

40+
_JUNIT_DEPS = ["io_bazel_rules_scala_org_hamcrest_hamcrest_core"]
41+
_SPECS2_DEPS = [
42+
"org_portable_scala_portable_scala_reflect",
43+
"org_scala_sbt_test_interface",
44+
]
45+
4046
def _compiler_sources_repo_impl(rctx):
4147
sources = [
4248
_COMPILER_SOURCES_ENTRY_TEMPLATE.format(
@@ -144,12 +150,18 @@ def rules_scala_setup(scala_compiler_srcjar = None):
144150

145151
def _artifact_ids(scala_version):
146152
result = [
153+
"io_bazel_rules_scala_junit_junit",
154+
"io_bazel_rules_scala_org_specs2_specs2_common",
155+
"io_bazel_rules_scala_org_specs2_specs2_core",
156+
"io_bazel_rules_scala_org_specs2_specs2_fp",
157+
"io_bazel_rules_scala_org_specs2_specs2_junit",
158+
"io_bazel_rules_scala_org_specs2_specs2_matcher",
147159
"io_bazel_rules_scala_scala_compiler",
148160
"io_bazel_rules_scala_scala_library",
149161
"io_bazel_rules_scala_scala_parser_combinators",
150162
"io_bazel_rules_scala_scala_xml",
151163
"org_scala_lang_modules_scala_collection_compat",
152-
]
164+
] + _JUNIT_DEPS + _SPECS2_DEPS
153165

154166
if scala_version.startswith("2."):
155167
result.extend([

scripts/create_repository.py

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
7676

7777
scala_2_version = scala_version
7878
scala_2_major = scala_major
79-
scalatest_major = scala_major
79+
scala_3_major = scala_major
8080

8181
if is_scala_3:
8282
scala_2_version = max_scala_2_version
8383
scala_2_major = max_scala_2_major
84-
scalatest_major = '3'
84+
scala_3_major = '3'
8585

8686
scalafmt_version = SCALAFMT_VERSION
8787
scalapb_version = SCALAPB_VERSION
@@ -92,29 +92,34 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
9292
scalapb_version = '0.9.8'
9393
protoc_bridge_version = '0.7.14'
9494

95+
if is_scala_3:
96+
specs2_version = '4.20.9'
97+
elif scala_major == '2.11':
98+
specs2_version = '4.10.6'
99+
else:
100+
specs2_version = '4.20.9'
101+
95102
root_artifacts = [
96-
'com.google.api.grpc:proto-google-common-protos:' +
97-
GRPC_COMMON_PROTOS_VERSION,
103+
f'com.google.api.grpc:proto-google-common-protos:{GRPC_COMMON_PROTOS_VERSION}',
98104
f'com.google.guava:guava:{GUAVA_VERSION}',
99105
f'com.google.protobuf:protobuf-java:{PROTOBUF_JAVA_VERSION}',
100-
f'com.thesamet.scalapb:compilerplugin_{scala_2_major}:' +
101-
scalapb_version,
102-
f'com.thesamet.scalapb:protoc-bridge_{scala_2_major}:' +
103-
protoc_bridge_version,
104-
f'com.thesamet.scalapb:scalapb-runtime_{scala_2_major}:' +
105-
scalapb_version,
106-
f'com.thesamet.scalapb:scalapb-runtime-grpc_{scala_2_major}:' +
107-
scalapb_version,
108-
f'org.scala-lang.modules:scala-parser-combinators_{scala_2_major}:' +
109-
PARSER_COMBINATORS_VERSION,
106+
f'com.thesamet.scalapb:compilerplugin_{scala_2_major}:{scalapb_version}',
107+
f'com.thesamet.scalapb:protoc-bridge_{scala_2_major}:{protoc_bridge_version}',
108+
f'com.thesamet.scalapb:scalapb-runtime-grpc_{scala_2_major}:{scalapb_version}',
109+
f'com.thesamet.scalapb:scalapb-runtime_{scala_2_major}:{scalapb_version}',
110+
f'org.scala-lang.modules:scala-parser-combinators_{scala_2_major}:{PARSER_COMBINATORS_VERSION}',
110111
f'org.scala-lang:scala-compiler:{scala_2_version}',
111112
f'org.scala-lang:scala-library:{scala_2_version}',
112113
f'org.scala-lang:scala-reflect:{scala_2_version}',
113114
f'org.scala-lang:scalap:{scala_2_version}',
114115
f'org.scalameta:scalafmt-core_{scala_2_major}:{scalafmt_version}',
115-
f'org.scalatest:scalatest_{scalatest_major}:{SCALATEST_VERSION}',
116-
f'org.typelevel:kind-projector_{scala_2_version}:' +
117-
KIND_PROJECTOR_VERSION,
116+
f'org.scalatest:scalatest_{scala_3_major}:{SCALATEST_VERSION}',
117+
f'org.specs2:specs2-common_{scala_3_major}:{specs2_version}',
118+
f'org.specs2:specs2-core_{scala_3_major}:{specs2_version}',
119+
f'org.specs2:specs2-fp_{scala_3_major}:{specs2_version}',
120+
f'org.specs2:specs2-junit_{scala_3_major}:{specs2_version}',
121+
f'org.specs2:specs2-matcher_{scala_3_major}:{specs2_version}',
122+
f'org.typelevel:kind-projector_{scala_2_version}:{KIND_PROJECTOR_VERSION}',
118123
] + [f'io.grpc:grpc-{lib}:{GRPC_VERSION}' for lib in GRPC_LIBS]
119124

120125
if scala_version == max_scala_2_version or is_scala_3:
@@ -123,16 +128,15 @@ def select_root_artifacts(scala_version, scala_major, is_scala_3) -> List[str]:
123128

124129
if is_scala_3:
125130
root_artifacts.extend([
126-
f'org.scala-lang:scala3-library_3:{scala_version}',
131+
f'org.jline:jline-reader:{JLINE_VERSION}',
132+
f'org.jline:jline-terminal:{JLINE_VERSION}',
133+
f'org.jline:jline-terminal-jna:{JLINE_VERSION}',
127134
f'org.scala-lang:scala3-compiler_3:{scala_version}',
135+
f'org.scala-lang:scala3-library_3:{scala_version}',
128136
f'org.scala-lang:scala3-interfaces:{scala_version}',
129137
f'org.scala-lang:tasty-core_3:{scala_version}',
130-
'org.scala-sbt:compiler-interface:' +
131-
SBT_COMPILER_INTERFACE_VERSION,
138+
f'org.scala-sbt:compiler-interface:{SBT_COMPILER_INTERFACE_VERSION}',
132139
f'org.scala-sbt:util-interface:{SBT_UTIL_INTERFACE_VERSION}',
133-
f'org.jline:jline-reader:{JLINE_VERSION}',
134-
f'org.jline:jline-terminal:{JLINE_VERSION}',
135-
f'org.jline:jline-terminal-jna:{JLINE_VERSION}',
136140
])
137141

138142
else:

third_party/repositories/scala_2_11.bzl

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,11 @@ artifacts = {
130130
"sha256": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b",
131131
},
132132
"io_bazel_rules_scala_junit_junit": {
133-
"artifact": "junit:junit:4.12",
134-
"sha256": "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
133+
"artifact": "junit:junit:4.13.1",
134+
"sha256": "c30719db974d6452793fe191b3638a5777005485bae145924044530ffa5f6122",
135+
"deps": [
136+
"@io_bazel_rules_scala_org_hamcrest_hamcrest_core",
137+
],
135138
},
136139
"io_bazel_rules_scala_mustache": {
137140
"artifact": "com.github.spullara.mustache.java:compiler:0.8.18",
@@ -166,36 +169,53 @@ artifacts = {
166169
"sha256": "0df97574914aee92fd349d0cb4e00f3345d45b2c239e0bb50f0a90ead47888e0",
167170
},
168171
"io_bazel_rules_scala_org_specs2_specs2_common": {
169-
"artifact": "org.specs2:specs2-common_2.11:4.4.1",
170-
"sha256": "52d7c0da58725606e98c6e8c81d2efe632053520a25da9140116d04a4abf9d2c",
172+
"artifact": "org.specs2:specs2-common_2.11:4.10.6",
173+
"sha256": "823bdd776b3c4759506b527e0e58d31f9eebbba7b16858ad0fef4b29559dcb5d",
171174
"deps": [
172175
"@io_bazel_rules_scala_org_specs2_specs2_fp",
176+
"@io_bazel_rules_scala_scala_library",
177+
"@io_bazel_rules_scala_scala_parser_combinators",
178+
"@io_bazel_rules_scala_scala_reflect",
179+
"@io_bazel_rules_scala_scala_xml",
180+
"@org_portable_scala_portable_scala_reflect",
181+
"@org_scala_sbt_test_interface",
173182
],
174183
},
175184
"io_bazel_rules_scala_org_specs2_specs2_core": {
176-
"artifact": "org.specs2:specs2-core_2.11:4.4.1",
177-
"sha256": "8e95cb7e347e7a87e7a80466cbd88419ece1aaacb35c32e8bd7d299a623b31b9",
185+
"artifact": "org.specs2:specs2-core_2.11:4.10.6",
186+
"sha256": "dbd85edf0b399f98a4494c7e5a2ff1868a5c2c6f06e34e56d0e2e2b5b9d9431e",
178187
"deps": [
179188
"@io_bazel_rules_scala_org_specs2_specs2_common",
180189
"@io_bazel_rules_scala_org_specs2_specs2_matcher",
190+
"@io_bazel_rules_scala_scala_library",
191+
"@org_portable_scala_portable_scala_reflect",
192+
"@org_scala_sbt_test_interface",
181193
],
182194
},
183195
"io_bazel_rules_scala_org_specs2_specs2_fp": {
184-
"artifact": "org.specs2:specs2-fp_2.11:4.4.1",
185-
"sha256": "e43006fdd0726ffcd1e04c6c4d795176f5f765cc787cc09baebe1fcb009e4462",
196+
"artifact": "org.specs2:specs2-fp_2.11:4.10.6",
197+
"sha256": "afe794801e0adb93c353bf1c8b4a10b44d5f8ead52449ee17b3284613eac0f5e",
198+
"deps": [
199+
"@io_bazel_rules_scala_scala_library",
200+
],
186201
},
187202
"io_bazel_rules_scala_org_specs2_specs2_junit": {
188-
"artifact": "org.specs2:specs2-junit_2.11:4.4.1",
189-
"sha256": "a8549d52e87896624200fe35ef7b841c1c698a8fb5d97d29bf082762aea9bb72",
203+
"artifact": "org.specs2:specs2-junit_2.11:4.10.6",
204+
"sha256": "b09bb5324b339b022ccf23a669c815084249299e5014097195a0f671d4b89eb3",
190205
"deps": [
206+
"@io_bazel_rules_scala_junit_junit",
191207
"@io_bazel_rules_scala_org_specs2_specs2_core",
208+
"@io_bazel_rules_scala_scala_library",
209+
"@org_portable_scala_portable_scala_reflect",
210+
"@org_scala_sbt_test_interface",
192211
],
193212
},
194213
"io_bazel_rules_scala_org_specs2_specs2_matcher": {
195-
"artifact": "org.specs2:specs2-matcher_2.11:4.4.1",
196-
"sha256": "448e5ab89d4d650d23030fdbee66a010a07dcac5e4c3e73ef5fe39ca1aace1cd",
214+
"artifact": "org.specs2:specs2-matcher_2.11:4.10.6",
215+
"sha256": "c788968cfef1377bc9025f96a4ff86fc2a44c5fd36762683a6c7d597b14692ef",
197216
"deps": [
198217
"@io_bazel_rules_scala_org_specs2_specs2_common",
218+
"@io_bazel_rules_scala_scala_library",
199219
],
200220
},
201221
"io_bazel_rules_scala_scala_compiler": {
@@ -424,6 +444,14 @@ artifacts = {
424444
"artifact": "org.codehaus.mojo:animal-sniffer-annotations:1.24",
425445
"sha256": "c720e6e5bcbe6b2f48ded75a47bccdb763eede79d14330102e0d352e3d89ed92",
426446
},
447+
"org_portable_scala_portable_scala_reflect": {
448+
"artifact": "org.portable-scala:portable-scala-reflect_2.11:1.0.0",
449+
"sha256": "c26ed70888b620232b2dbea98449f1169b5074224c63202e82ff3f4e0f6030f4",
450+
"deps": [
451+
"@io_bazel_rules_scala_scala_library",
452+
"@io_bazel_rules_scala_scala_reflect",
453+
],
454+
},
427455
"org_scala_lang_modules_scala_collection_compat": {
428456
"artifact": "org.scala-lang.modules:scala-collection-compat_2.11:2.1.2",
429457
"sha256": "e9667b8b7276aeb42599f536fe4d7caab06eabc55e9995572267ad60c7a11c8b",

third_party/repositories/scala_2_12.bzl

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,11 @@ artifacts = {
140140
"sha256": "e04ba5195bcd555dc95650f7cc614d151e4bcd52d29a10b8aa2197f3ab89ab9b",
141141
},
142142
"io_bazel_rules_scala_junit_junit": {
143-
"artifact": "junit:junit:4.12",
144-
"sha256": "59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a",
143+
"artifact": "junit:junit:4.13.2",
144+
"sha256": "8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3",
145+
"deps": [
146+
"@io_bazel_rules_scala_org_hamcrest_hamcrest_core",
147+
],
145148
},
146149
"io_bazel_rules_scala_mustache": {
147150
"artifact": "com.github.spullara.mustache.java:compiler:0.8.18",
@@ -176,36 +179,52 @@ artifacts = {
176179
"sha256": "0df97574914aee92fd349d0cb4e00f3345d45b2c239e0bb50f0a90ead47888e0",
177180
},
178181
"io_bazel_rules_scala_org_specs2_specs2_common": {
179-
"artifact": "org.specs2:specs2-common_2.12:4.4.1",
180-
"sha256": "7b7d2497bfe10ad552f5ab3780537c7db9961d0ae841098d5ebd91c78d09438a",
182+
"artifact": "org.specs2:specs2-common_2.12:4.20.9",
183+
"sha256": "cb4c1354b70824df6583fbc22f1565679f04e350f026fe3f243b190661afce82",
181184
"deps": [
182185
"@io_bazel_rules_scala_org_specs2_specs2_fp",
186+
"@io_bazel_rules_scala_scala_library",
187+
"@io_bazel_rules_scala_scala_parser_combinators",
188+
"@io_bazel_rules_scala_scala_reflect",
189+
"@org_portable_scala_portable_scala_reflect",
190+
"@org_scala_sbt_test_interface",
183191
],
184192
},
185193
"io_bazel_rules_scala_org_specs2_specs2_core": {
186-
"artifact": "org.specs2:specs2-core_2.12:4.4.1",
187-
"sha256": "f92c3c83844aac13250acec4eb247a2a26a2b3f04e79ef1bf42c56de4e0bb2e7",
194+
"artifact": "org.specs2:specs2-core_2.12:4.20.9",
195+
"sha256": "1a4c428cb57d501ebd184307e3c9dbdfce44c227e201b21bed9ba4a00cd003ec",
188196
"deps": [
189-
"@io_bazel_rules_scala_org_specs2_specs2_common",
190197
"@io_bazel_rules_scala_org_specs2_specs2_matcher",
198+
"@io_bazel_rules_scala_scala_library",
199+
"@org_portable_scala_portable_scala_reflect",
200+
"@org_scala_sbt_test_interface",
191201
],
192202
},
193203
"io_bazel_rules_scala_org_specs2_specs2_fp": {
194-
"artifact": "org.specs2:specs2-fp_2.12:4.4.1",
195-
"sha256": "834a145b28dbf57ba6d96f02a3862522e693b5aeec44d4cb2f305ef5617dc73f",
204+
"artifact": "org.specs2:specs2-fp_2.12:4.20.9",
205+
"sha256": "42afcd59093a2f416c62b00c6b95a37ccac09cc55bf4429dbe214c76a4c94db5",
206+
"deps": [
207+
"@io_bazel_rules_scala_scala_library",
208+
],
196209
},
197210
"io_bazel_rules_scala_org_specs2_specs2_junit": {
198-
"artifact": "org.specs2:specs2-junit_2.12:4.4.1",
199-
"sha256": "c867824801da5cccf75354da6d12d406009c435865ecd08a881b799790e9ffec",
211+
"artifact": "org.specs2:specs2-junit_2.12:4.20.9",
212+
"sha256": "148cf6e4bda1f9ad707fea73d9cb4f0b7cbe50d90424b087b029e91c41b6572f",
200213
"deps": [
214+
"@io_bazel_rules_scala_junit_junit",
201215
"@io_bazel_rules_scala_org_specs2_specs2_core",
216+
"@io_bazel_rules_scala_scala_library",
217+
"@io_bazel_rules_scala_scala_xml",
218+
"@org_portable_scala_portable_scala_reflect",
219+
"@org_scala_sbt_test_interface",
202220
],
203221
},
204222
"io_bazel_rules_scala_org_specs2_specs2_matcher": {
205-
"artifact": "org.specs2:specs2-matcher_2.12:4.4.1",
206-
"sha256": "78c699001c307dcc5dcbec8a80cd9f14e9bdaa047579c3d1010ee4bea66805fe",
223+
"artifact": "org.specs2:specs2-matcher_2.12:4.20.9",
224+
"sha256": "ce3da49a66f1d50b0b622d1d980088869115778f06a582542ed2f508e8d9cd3e",
207225
"deps": [
208226
"@io_bazel_rules_scala_org_specs2_specs2_common",
227+
"@io_bazel_rules_scala_scala_library",
209228
],
210229
},
211230
"io_bazel_rules_scala_scala_compiler": {
@@ -436,6 +455,13 @@ artifacts = {
436455
"artifact": "org.codehaus.mojo:animal-sniffer-annotations:1.24",
437456
"sha256": "c720e6e5bcbe6b2f48ded75a47bccdb763eede79d14330102e0d352e3d89ed92",
438457
},
458+
"org_portable_scala_portable_scala_reflect": {
459+
"artifact": "org.portable-scala:portable-scala-reflect_2.12:1.1.3",
460+
"sha256": "647cb184209f821296b48acbed4836e9b1dbde2ac2c921a400e9da2576edb497",
461+
"deps": [
462+
"@io_bazel_rules_scala_scala_library",
463+
],
464+
},
439465
"org_scala_lang_modules_scala_collection_compat": {
440466
"artifact": "org.scala-lang.modules:scala-collection-compat_2.12:2.12.0",
441467
"sha256": "1619c5e4399e1e4793667970aae232652db0549e795c90abf91e44c55ec37cb3",
@@ -450,6 +476,10 @@ artifacts = {
450476
"@io_bazel_rules_scala_scala_compiler",
451477
],
452478
},
479+
"org_scala_sbt_test_interface": {
480+
"artifact": "org.scala-sbt:test-interface:1.0",
481+
"sha256": "15f70b38bb95f3002fec9aea54030f19bb4ecfbad64c67424b5e5fea09cd749e",
482+
},
453483
"org_scalameta_common": {
454484
"artifact": "org.scalameta:common_2.12:4.9.9",
455485
"sha256": "8b85032d1fd8cb33c091cf560362b5a9ce5cb507ab38e6968d04f7978d18f600",

0 commit comments

Comments
 (0)