Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC]: Over-Arching Spec for BuildXL and other build system integration with Lage #814

Open
dannyvv opened this issue Nov 7, 2024 · 2 comments
Assignees

Comments

@dannyvv
Copy link
Member

dannyvv commented Nov 7, 2024

In progress

Overview

We like to add support to lage for external build scheduler.
I'm using this issue as an overview and will create

There are larger build systems that can embed other build systems like BuildXL.
Modern build systems provide great features like sandboxing to ensure dependencies and outputs are declared to what actually happens. With reliable inputs and outputs one can distribute and cache builds reliably to increaes performance.
I want to extend Lage to allow for the specification.
I believe this can be done through a few updates / extensions to Lage.

These are the proposals in-order to consume:

  1. Issue: [RFC]: Export all fields in Lage Info #815
    PR: Add extra info to lage info for #815 #836
  2. Issue: [RFC]: Target settings support in package.json #817
    PR: Add support to include pipeline configuraiton in pacakge.json files #817 #837
  3. Issue: [RFC]: Pipeline definition merging #816
    PR: Add merge logic for targetConfig #816 #838
  4. Issue: [RFC]: Support inputs/output paths relative to different roots #818

And a few bugfixes

  1. Fix working on Lage repo from Windows box by forcing LF line endings #807
  2. Fix build if you clone lage repo in a 'src' folder #806
  3. Add build:selfhost target for quick validation #835
@kenotron
Copy link
Member

kenotron commented Jan 9, 2025

I have another proposal for you - as I was working to integrate a certain kind of "background job / breakaway process w/ buildxl", I realized that this transferred the responsibility of tracking inputs/outputs back to lage. There is a noticeable issue where we shifted this heavy burden towards something that doesn't do sandboxing (lage). It would be amazing to augment lage with this natively so we don't have to solely rely on hard coded input / output globs.

@dannyvv
Copy link
Member Author

dannyvv commented Jan 10, 2025

Okay, so I'll come up with a new definition for JS to create a build graph. I'll just work directy with BuildXL folks on this and then we can consider writing an adapter. I'll abandon this effort for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants