Skip to content

Build system improvements #30600

@spxtr

Description

@spxtr

The current build system is several thousand lines of confusing bash that breaks in subtle (#30546, for example) and unexpected ways.

I would like to move toward this world:

  • If a developer is familiar with the go tool and has their environment set up, they should be able to do a local, iterative build. It should be clear what commands are actually being run.
  • If necessary, a developer should be able to do a fully dockerized build. Inside the container, the dockerized build should be identical to the above build.

Right now we are in an awkward in-between, where parts of the build happen locally and parts happen in the build container. I have the start of a PR that accomplishes this over at #27746, but I think it's worth opening up this issue to discuss other ideas.

Bazel, anyone? What about deprecating the entire build folder and starting from scratch so that we're not forced to honor every environment variable that snuck in over the last few years?

cc @thockin @david-mcmahon @jbeda @ixdy

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/build-releasearea/release-engIssues or PRs related to the Release Engineering subprojectsig/contributor-experienceCategorizes an issue or PR as relevant to SIG Contributor Experience.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions