Skip to content

Commit 21add76

Browse files
author
Jaden Peterson
committed
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 6919531 commit 21add76

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
@@ -17,7 +17,6 @@ load(
1717
# PHASE: javainfo
1818
#
1919
# Builds up the JavaInfo provider. And the ScalaInfo, while we're at it.
20-
# And DefaultInfo.
2120
#
2221

2322
def phase_javainfo(ctx, g):
@@ -65,18 +64,10 @@ def phase_javainfo(ctx, g):
6564
scala_configuration = g.init.scala_configuration,
6665
)
6766

68-
output_group_info = OutputGroupInfo(
69-
**g.out.output_groups
70-
)
71-
72-
g.out.providers.extend([
73-
output_group_info,
74-
java_info,
75-
scala_info,
76-
])
67+
g.out.providers.append(java_info)
68+
g.out.providers.append(scala_info)
7769

7870
return struct(
7971
java_info = java_info,
80-
output_group_info = output_group_info,
8172
scala_info = scala_info,
8273
)
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",
@@ -218,6 +219,7 @@ def _scala_library_implementation(ctx):
218219
("coverage", _phase_coverage_jacoco),
219220
("ijinfo", _phase_ijinfo),
220221
("library_defaultinfo", _phase_library_defaultinfo),
222+
("outputgroupinfo", _phase_outputgroupinfo),
221223
("coda", _phase_coda),
222224
]).coda
223225

@@ -232,6 +234,7 @@ def _scala_binary_implementation(ctx):
232234
("ijinfo", _phase_ijinfo),
233235
("binary_deployjar", _phase_binary_deployjar),
234236
("binary_launcher", _phase_binary_launcher),
237+
("outputgroupinfo", _phase_outputgroupinfo),
235238
("coda", _phase_coda),
236239
]).coda
237240

@@ -245,6 +248,7 @@ def _scala_test_implementation(ctx):
245248
("coverage", _phase_coverage_jacoco),
246249
("ijinfo", _phase_ijinfo),
247250
("test_launcher", _phase_test_launcher),
251+
("outputgroupinfo", _phase_outputgroupinfo),
248252
("coda", _phase_coda),
249253
]).coda
250254

0 commit comments

Comments
 (0)