Skip to content

fix(script): Load config relative to the script#16620

Merged
weihanglo merged 1 commit intorust-lang:masterfrom
epage:script-config
Feb 11, 2026
Merged

fix(script): Load config relative to the script#16620
weihanglo merged 1 commit intorust-lang:masterfrom
epage:script-config

Conversation

@epage
Copy link
Contributor

@epage epage commented Feb 10, 2026

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.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.

How to test and review this PR?

This reverts commit bd47da1.

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.
@rustbot rustbot added A-cli Area: Command-line interface, option parsing, etc. Command-run S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 10, 2026
@rustbot
Copy link
Collaborator

rustbot commented Feb 10, 2026

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @ehuss, @epage, @weihanglo
  • @ehuss, @epage, @weihanglo expanded to ehuss, epage, weihanglo
  • Random selection from ehuss, weihanglo

@rustbot

This comment has been minimized.

@epage epage force-pushed the script-config branch 2 times, most recently from 946583f to 8207016 Compare February 10, 2026 19:35
@rustbot
Copy link
Collaborator

rustbot commented Feb 10, 2026

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.

Copy link
Member

@weihanglo weihanglo left a comment

Choose a reason for hiding this comment

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

@weihanglo weihanglo added this pull request to the merge queue Feb 11, 2026
Merged via the queue into rust-lang:master with commit 7de468c Feb 11, 2026
29 checks passed
@rustbot rustbot removed the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Feb 11, 2026
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)
@epage epage deleted the script-config branch February 11, 2026 13:40
@rustbot rustbot added this to the 1.95.0 milestone Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-cli Area: Command-line interface, option parsing, etc. Command-run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants