Skip to content

Commit cec58d3

Browse files
jadenPete-lucidjjudd
authored andcommitted
Generate OutputGroupInfo in a new phase
Previously, it was generated in the "javainfo" phase, which runs before the "depscheck" phase. "javainfo" can't run after "depscheck" because "compile" depends on "javainfo", and "depscheck" can't run before "javainfo" because it depends on "compile".
1 parent 34a88a1 commit cec58d3

File tree

5 files changed

+18
-11
lines changed

5 files changed

+18
-11
lines changed

docs/newdocs/phases.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def _scala_binary_implementation(ctx):
1515
("ijinfo", _phase_ijinfo),
1616
("binary_deployjar", _phase_binary_deployjar),
1717
("binary_launcher", _phase_binary_launcher),
18+
("outputgroupinfo", _phase_outputgroupinfo),
1819
("coda", _phase_coda),
1920
]).coda
2021
```

rules/private/phases.bzl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ load(":phases/phase_ijinfo.bzl", _phase_ijinfo = "phase_ijinfo")
99
load(":phases/phase_javainfo.bzl", _phase_javainfo = "phase_javainfo")
1010
load(":phases/phase_library_defaultinfo.bzl", _phase_library_defaultinfo = "phase_library_defaultinfo")
1111
load(":phases/phase_noop.bzl", _phase_noop = "phase_noop")
12+
load(":phases/phase_outputgroupinfo.bzl", _phase_outputgroupinfo = "phase_outputgroupinfo")
1213
load(":phases/phase_resources.bzl", _phase_resources = "phase_resources")
1314
load(":phases/phase_scalafmt_nondefault_outputs.bzl", _phase_scalafmt_nondefault_outputs = "phase_scalafmt_nondefault_outputs")
1415
load(":phases/phase_semanticdb.bzl", _phase_semanticdb = "phase_semanticdb")
@@ -41,6 +42,8 @@ phase_library_defaultinfo = _phase_library_defaultinfo
4142

4243
phase_noop = _phase_noop
4344

45+
phase_outputgroupinfo = _phase_outputgroupinfo
46+
4447
phase_resources = _phase_resources
4548

4649
phase_scalafmt_nondefault_outputs = _phase_scalafmt_nondefault_outputs

rules/private/phases/phase_javainfo.bzl

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ load(
1313
# PHASE: javainfo
1414
#
1515
# Builds up the JavaInfo provider. And the ScalaInfo, while we're at it.
16-
# And DefaultInfo.
1716
#
1817

1918
def phase_javainfo(ctx, g):
@@ -61,18 +60,10 @@ def phase_javainfo(ctx, g):
6160
scala_configuration = g.init.scala_configuration,
6261
)
6362

64-
output_group_info = OutputGroupInfo(
65-
**g.out.output_groups
66-
)
67-
68-
g.out.providers.extend([
69-
output_group_info,
70-
java_info,
71-
scala_info,
72-
])
63+
g.out.providers.append(java_info)
64+
g.out.providers.append(scala_info)
7365

7466
return struct(
7567
java_info = java_info,
76-
output_group_info = output_group_info,
7768
scala_info = scala_info,
7869
)
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#
2+
# PHASE: outputgroupinfo
3+
#
4+
# Generates the `OutputGroupInfo` provider.
5+
#
6+
7+
def phase_outputgroupinfo(ctx, g):
8+
g.out.providers.append(OutputGroupInfo(**g.out.output_groups))

rules/scala.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ load(
2929
_phase_javainfo = "phase_javainfo",
3030
_phase_library_defaultinfo = "phase_library_defaultinfo",
3131
_phase_noop = "phase_noop",
32+
_phase_outputgroupinfo = "phase_outputgroupinfo",
3233
_phase_resources = "phase_resources",
3334
_phase_singlejar = "phase_singlejar",
3435
_phase_test_launcher = "phase_test_launcher",
@@ -216,6 +217,7 @@ def _scala_library_implementation(ctx):
216217
("coverage", _phase_coverage_jacoco),
217218
("ijinfo", _phase_ijinfo),
218219
("library_defaultinfo", _phase_library_defaultinfo),
220+
("outputgroupinfo", _phase_outputgroupinfo),
219221
("coda", _phase_coda),
220222
]).coda
221223

@@ -230,6 +232,7 @@ def _scala_binary_implementation(ctx):
230232
("ijinfo", _phase_ijinfo),
231233
("binary_deployjar", _phase_binary_deployjar),
232234
("binary_launcher", _phase_binary_launcher),
235+
("outputgroupinfo", _phase_outputgroupinfo),
233236
("coda", _phase_coda),
234237
]).coda
235238

@@ -243,6 +246,7 @@ def _scala_test_implementation(ctx):
243246
("coverage", _phase_coverage_jacoco),
244247
("ijinfo", _phase_ijinfo),
245248
("test_launcher", _phase_test_launcher),
249+
("outputgroupinfo", _phase_outputgroupinfo),
246250
("coda", _phase_coda),
247251
]).coda
248252

0 commit comments

Comments
 (0)