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

simplify build system #562

Merged
merged 2 commits into from
Dec 3, 2019
Merged

simplify build system #562

merged 2 commits into from
Dec 3, 2019

Conversation

bcressey
Copy link
Contributor

@bcressey bcressey commented Nov 22, 2019

Issue #, if available:
#245

Description of changes:
Remove the "cascade" feature, since it doesn't add as much value now that many of the early dependencies have moved into the SDK. Turn buildsys into a binary, to streamline the build process for both packages and images.

Testing done:
cargo make world works.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copy link
Contributor

@tjkirch tjkirch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice.

tools/buildsys/src/main.rs Show resolved Hide resolved
Makefile.toml Show resolved Hide resolved
@bcressey bcressey force-pushed the buildsys-bin branch 2 times, most recently from 25d4b89 to 25fe41e Compare November 23, 2019 02:24
Previously, doing a full build that respected the dependency graph
would cause almost every package to be rebuilt when the kernel was
updated, which happened at regular intervals.

The cascade feature was added to allow a developer to opt out of the
full dependency tracking in the interests of speeding up iterative
builds. However, making use of it required two full builds to get
cargo in sync, with no reliable way to predict whether either build
would be quick. This limited its usefulness in practice.

Now that the kernel is a leaf package, we will only rebuild the world
when glibc changes, which we expect to happen less often.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
Loading `buildsys` as a library means that we rebuild the world when
any of its dependencies change.

Calling it as a binary eliminates another source of unwanted rebuilds.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants