-
Notifications
You must be signed in to change notification settings - Fork 65
Added cargo cache improvements 2025H2 goal #317
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
base: main
Are you sure you want to change the base?
Conversation
* Stabilize Cargo `build-dir` which allows users to move intermediate build artifacts out of `target` (rust-lang/cargo#14125) | ||
* Rework the build directory layout so that we have more easily cacheable "units" (rust-lang/cargo#15010) | ||
* Work towards a user wide build cache that can be reused across projects/workspaces. (rust-lang/cargo#5931) | ||
* Explore possibilities of extending this build cache to support remote storage enabling continuous integration use cases. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something we discussed today in the cargo team meeting is that this seems a little ambitious for a 6-month goal. I'm not sure what changes would be appropriate, but maybe @epage has some ideas.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My thought was to scale this down to the build directory layout re-work + experiments with an alternative locking scheme to try to help with r-a today and inform the locking scheme we use on the shared cache.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, seems reasonable. I suppose nothing is stopping us from continuing towards the shared cache if things go quicker than expected.
I'll update this goal later this week.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I scoped the goal down to just build dir layout and locking changes.
8955102
to
38a88f5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Making CI pass
src/2025h2/cargo-build-dir-layout.md
Outdated
| Teams | <!-- TEAMS WITH ASKS --> | | ||
| Task owners | <!-- TASK OWNERS --> | | ||
| Status | Proposed | | ||
| Tracking issue | *if this is a continuing goal, add the old tracking issue, else leave blank* | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As the line says, this needs to be blank.
| Tracking issue | *if this is a continuing goal, add the old tracking issue, else leave blank* | | |
| Tracking issue | | |
src/2025h2/cargo-build-dir-layout.md
Outdated
| Metadata | | | ||
|:-----------------|----------------------------------------------------------------------------------| | ||
| Point of contact | @ranger-ross | | ||
| Teams | <!-- TEAMS WITH ASKS --> | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Teams | <!-- TEAMS WITH ASKS --> | | |
| Teams | <!-- TEAMS WITH ASKS --> | |
src/2025h2/cargo-build-dir-layout.md
Outdated
|:-----------------|----------------------------------------------------------------------------------| | ||
| Point of contact | @ranger-ross | | ||
| Teams | <!-- TEAMS WITH ASKS --> | | ||
| Task owners | <!-- TASK OWNERS --> | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Task owners | <!-- TASK OWNERS --> | | |
| Task owners | <!-- TASK OWNERS --> | |
src/2025h2/cargo-build-dir-layout.md
Outdated
* Fine grain locking within the build directory | ||
* Reducing build dir lock contention between Cargo and Rust Analyzer |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Fine grain locking within the build directory | |
* Reducing build dir lock contention between Cargo and Rust Analyzer | |
* Fine grain locking within the build directory | |
* Reducing build dir lock contention between Cargo and Rust Analyzer |
|
||
* Fine grain locking within the build directory | ||
* Reducing build dir lock contention between Cargo and Rust Analyzer | ||
* A cross workspace shared build cache |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* A cross workspace shared build cache | |
* GC of target directories | |
* A cross workspace shared build cache |
Rework the Cargo build directory layout to have smaller self contained "units" | ||
|
||
|
||
## Motivation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Somewhere where we talk about them, should we link to the relevant issues?
38a88f5
to
cddef88
Compare
I'd like to revive the Cargo user wide cache project goal from 2024H2.
Many sections remain unchanged, but some have been updated as there was some progress towards this in 2025H1.
Rendered