You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This RFC is part of a larger work proposal: #814
PR: #836
Overview
Running lage info does not emit all information available in the build graph.
It should include inputs, outputs, 'weight' as well as the options field.
This can be 'fed' into the other build engines to do the proper scheduling. The 'options' field can be used for build engine specific fields.
For example in BuildXL you generally want to treat cache location either as 'temp' folders or if you trust the tools incrementality to ship your production bits as an 'untracked' directory. This might not be relevant to Lage itself or to other build engines so it makes sense to store in the 'options' field.
Current users of BuildXL + Lage currently declare this information in custom configuraiton files. Either in bxlconfig.json file that the custom integratoin picks up or in the buildxl config.dsc file. This feature will give it the opportunity to be declared in lage and used identically by all. It should also improve lages performance when users run it outside of buildxl since the inputs / outputs will be less than the defaults for targes.
This will add the 'weight' field only if the value is not 1.
inputs, outputs
This will emit inputs and outputs as an array of strings.
options
This object will be printed just as-is and support any types json supports
Test Plan
Create a new test class and write some tests.
Performance, Resilience, Monitoring
The output json will increase a bit in size, but this should not affect things too much.
It will also only affect perf if if these fields are declared. All the current users of BuildXL integration do not yet specify any of these fields, so it should have no impact
The text was updated successfully, but these errors were encountered:
Overview
Running
lage info
does not emit all information available in the build graph.It should include
inputs
,outputs
, 'weight' as well as theoptions
field.This can be 'fed' into the other build engines to do the proper scheduling. The 'options' field can be used for build engine specific fields.
For example in BuildXL you generally want to treat cache location either as 'temp' folders or if you trust the tools incrementality to ship your production bits as an 'untracked' directory. This might not be relevant to Lage itself or to other build engines so it makes sense to store in the 'options' field.
Current users of BuildXL + Lage currently declare this information in custom configuraiton files. Either in bxlconfig.json file that the custom integratoin picks up or in the buildxl config.dsc file. This feature will give it the opportunity to be declared in lage and used identically by all. It should also improve lages performance when users run it outside of buildxl since the inputs / outputs will be less than the defaults for targes.
Detailed Design
We'll extend the
PackageTask
interface in packages/cli/src/commands/info/action.tsIn
generatePackageTask
we'll copy the fields as-is from theTarget
object.weight
This will add the 'weight' field only if the value is not
1
.inputs, outputs
This will emit inputs and outputs as an array of strings.
options
This object will be printed just as-is and support any types json supports
Test Plan
Create a new test class and write some tests.
Performance, Resilience, Monitoring
The output json will increase a bit in size, but this should not affect things too much.
It will also only affect perf if if these fields are declared. All the current users of BuildXL integration do not yet specify any of these fields, so it should have no impact
The text was updated successfully, but these errors were encountered: