fix(script): Load config relative to the script#16620
Merged
weihanglo merged 1 commit intorust-lang:masterfrom Feb 11, 2026
Merged
fix(script): Load config relative to the script#16620weihanglo merged 1 commit intorust-lang:masterfrom
weihanglo merged 1 commit intorust-lang:masterfrom
Conversation
This was the original behavior. There was some concern over this previously and we switched to only loading config from CARGO_HOME in rust-lang#14749. After discussing this in today's cargo team meeting, we decided to switch it back. A concern brought up previously was if you previously downloaded a config and now download and run a script, you could get surprising behavior, maybe even dangerous. This does require some extra hoops because you don't have a `.cargo.toml` but a `.cargo/config.toml`. You can't directly download that but must first download a zip file and then decompress it without it having a parent directory. Contrast that with users who have a script in their repo and config that should apply to it. This is an important use case but one we will get less feedback on during calls for testing. In discussing this, we felt there are different use cases: - The repo with a config file - People surprised at how config loading works We settled on this change because it is consistent with the current behavior, even if it can be confusing and undesirable. We can then work to improve the overall config search path experience and both regular cargo commands and running of cargo scripts would benefit. This reverts commit bd47da1.
Collaborator
|
r? @ehuss rustbot has assigned @ehuss. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
946583f to
8207016
Compare
Collaborator
|
This PR was rebased onto a different master commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
weihanglo
approved these changes
Feb 11, 2026
Member
There was a problem hiding this comment.
Thanks!
For relevant t-cargo discussions, see https://github.com/rust-lang/cargo-team/blob/main/meetings/sync-meeting/2026-02-10.md#cargo-script-stabilization.
rust-bors bot
pushed a commit
to rust-lang/rust
that referenced
this pull request
Feb 11, 2026
Update cargo submodule 27 commits in fe2f314aef06e688a9517da1ac0577bb1854d01f..0c9e687d237ff04b53ccb67b4ce63e9483789e88 2026-01-30 21:52:01 +0000 to 2026-02-11 05:58:30 +0000 - chore: downgrade to libc@0.2.180 (rust-lang/cargo#16624) - fix(script): Load config relative to the script (rust-lang/cargo#16620) - fix(lints): Don't run on-by-default lints when MSRV is too old (rust-lang/cargo#16618) - fix(build): Remove deprecated, unstable --out-dir (rust-lang/cargo#16608) - fix(script): Make the lockfile script-specific independent of build-dir (rust-lang/cargo#16619) - fix(lockfile-path): Respect the config in fix, install (rust-lang/cargo#16617) - chore: upgrade to gix@0.79.0 (rust-lang/cargo#16615) - chore: downgrade to libc@0.2.179 (rust-lang/cargo#16613) - feat(timings): Enable text selection in the charts (rust-lang/cargo#16607) - Add host.runner for wrapping host build target executions (rust-lang/cargo#16599) - feat(schema): Add `impl Copy for RustVersion` (rust-lang/cargo#16609) - refactor(lints): Cleanup (rust-lang/cargo#16610) - refactor(timings): Remove `CanvasRenderer` in favor of `SvgRenderer` (rust-lang/cargo#16602) - Fix known hosts parsing (rust-lang/cargo#16596) - chore: pin openssl-src to 300.5.4 (rust-lang/cargo#16601) - chore(deps): bump time from 0.3.46 to 0.3.47 (rust-lang/cargo#16593) - feat(lints): Add missing_lints_inheritance (rust-lang/cargo#16588) - chore(deps): bump git2 from 0.20.3 to 0.20.4 (rust-lang/cargo#16589) - chore(deps): update msrv (3 versions) to v1.91 (rust-lang/cargo#16587) - feat(lints): Add unused_workspace_package_fields lint (rust-lang/cargo#16585) - Add command field to BuildStarted in build-analysis (rust-lang/cargo#16577) - Fix link for lockfile-publish-time (rust-lang/cargo#16582) - docs(cli): Discuss commands and aliases (rust-lang/cargo#16581) - fix(script): Correct style of help message (rust-lang/cargo#16580) - chore(deps): update compatible (rust-lang/cargo#16578) - chore(deps): update crate-ci/typos action to v1.42.3 (rust-lang/cargo#16579) - fix(timings): Only compute `y_ticks` when the `units` is not empty. (rust-lang/cargo#16575)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR try to resolve?
This was the original behavior.
There was some concern over this previously and we switched to only loading config from CARGO_HOME in #14749.
After discussing this in today's cargo team meeting, we decided to switch it back.
A concern brought up previously was if you previously downloaded a config and now download and run a script, you could get surprising behavior, maybe even dangerous.
This does require some extra hoops because you don't have a
.cargo.tomlbut a.cargo/config.toml.You can't directly download that but must first download a zip file and then decompress it without it having a parent directory.
Contrast that with users who have a script in their repo and config that should apply to it.
This is an important use case but one we will get less feedback on during calls for testing.
In discussing this, we felt there are different use cases:
We settled on this change because it is consistent with the current behavior, even if it can be confusing and undesirable. We can then work to improve the overall config search path experience and both regular cargo commands and running of cargo scripts would benefit.
How to test and review this PR?
This reverts commit bd47da1.