20560 Commits

Author SHA1 Message Date
Ed Page
e64e8aad03 feat(cli): Allow completions for third-party subcommand names 2025-09-12 14:28:35 -05:00
Ed Page
082a278fc2 refactor(cli): Generalize completion code 2025-09-12 14:28:09 -05:00
Ed Page
09a472e32b refactor(cli): Pull out completion context creation 2025-09-12 14:19:49 -05:00
Weihang Lo
6d221efc4d
fix(future): Report all content as a single Report (#15943)
### What does this PR try to resolve?

This changes the future-incompat message to be reported in a single
`Report`. The primary motivation is to cleanup the output compared to
taking the existing note's and aligning all content with the first line
which is what would happen otherwise in #15917.

In preparation for this, the message was cleaned up and made more like
what a rustc message might look like.

### How to test and review this PR?
2025-09-12 18:23:40 +00:00
Eric Huss
7f8ed80cce
fix(complete): Show local crates/features over other members (#15956)
### What does this PR try to resolve?

Our options are:
- Not offer these completions
- Hide them
- De-prioritize them

Since someone could be using `--package`, I felt de-prioritizing would
give the best experience.

This is a follow up to #15309

### How to test and review this PR?

Along the way, I made things more consistent across completions
2025-09-12 17:45:09 +00:00
Eric Huss
506023fa54
docs(resolver): Describe the role of the lockfile (#15958)
### What does this PR try to resolve?

This fills a whole in our coverage of dependency resolution by
specifying how a `Cargo.lock` impacts it.

### How to test and review this PR?

I put it after version numbers and version requirements as it builds on
those two topics.

Unsure whether this fully resolves the concern from #15587 of users
coming from other ecosystems that have been burned by library lockfiles
affecting them to know that they won't be subject to that.
2025-09-12 17:37:10 +00:00
Ed Page
b37da60786
chore: Skip check-version-bump ci job in forks (#15959)
### What does this PR try to resolve?

I occasionally open PRs in my fork to test CI for work in progress
changes. (Trying to avoid spamming notifications to the t-cargo members)
The `check-version-bump` job [makes
assumptions](https://github.com/rust-lang/cargo/blob/master/crates/xtask-bump-check/src/xtask.rs#L326)
that the fork has an up to date list of release tags.
My fork (and I am guessing most others) does not contain the release
tags so this CI job fails, which is a minor papercut.

My solution is to only run `check-version-bump` in PRs to
`rust-lang/cargo` and skip in forks.

### How to test and review this PR?

* Verify that the CI job runs in this PR.
* I checked that job was skipped in my fork in
https://github.com/ranger-ross/cargo/actions/runs/17678491699/job/50246604369?pr=8
2025-09-12 17:00:57 +00:00
Ed Page
bf58621acc
Eliminate the last three "did you mean" warning phrasings (#15356)
Inspired by https://github.com/rust-lang/cargo/pull/15138 , this
eliminates the last three instances.

Also rephrase a comment that implied the use of "did you mean"
suggestions. Fix an adjacent typo in that comment as well.
2025-09-12 15:10:43 +00:00
Ross Sullivan
49f0dcc343
chore: Skip check-version-bump ci job in forks 2025-09-13 00:10:16 +09:00
Ed Page
b35565b7bd docs(resolver): Describe the role of the lockfile
I put it after version numbers and version requirements as it builds on
those two topics.

Unsure whether this fully resolves the concern from #15587 of users
coming from other ecosystems that have been burned by library lockfiles
affecting them to know that they won't be subject to that.
2025-09-12 10:01:22 -05:00
Ed Page
c9593ee233 docs(resolver): Link out to lockfile docs 2025-09-12 09:51:14 -05:00
Ed Page
7294675631 fix(complete): Show local crates/features over other members
Our options are:
- Not offer these completions
- Hide them
- De-prioritize them

Since someone could be using `--package`, I felt de-prioritizing would
give the best experience.
2025-09-12 09:24:31 -05:00
Ed Page
c775f3445d refactor(complete): Simplify crate completions 2025-09-12 09:16:17 -05:00
Ed Page
35d05e8ad6 refactor(complete): Remove meaningless completions 2025-09-12 09:15:25 -05:00
Ed Page
bbb8bec876 refactor(complete): Simplify error handling 2025-09-12 09:07:24 -05:00
Ed Page
1d32564c02 refactor(complete): Be consistent in how we initialize 2025-09-12 09:03:41 -05:00
Ed Page
1003008dcd refactor(complete): Remove useless allocation 2025-09-12 09:01:04 -05:00
Ed Page
c1c342db40 feat(complete): Report what package a build-target is from 2025-09-12 09:00:09 -05:00
Josh Triplett
ef748ca947 Fix typo: "canonical lysing" -> "canonicalizing" 2025-09-12 08:48:47 -05:00
Josh Triplett
840aff8377 Eliminate the last three "did you mean" warning phrasings
Inspired by https://github.com/rust-lang/cargo/pull/15138 , this
eliminates the last three instances.

Also rephrase a comment that implied the use of "did you mean"
suggestions.
2025-09-12 08:48:47 -05:00
Weihang Lo
b10679fc26
fix(info): Suggest a more universal cargo tree command (#15954)
### What does this PR try to resolve?

Passing a package to `--package` is for workspace members; we need to
pass it to `--invert`.

### How to test and review this PR?

This is part of #14993

While I think we should instead improve the `cargo tree` command to help
users with `--all-features`, we can at least take the other improvement
from #14991.
2025-09-12 13:00:22 +00:00
Weihang Lo
faa4915898
feat(cli): Use ellipses when truncating progress (#15955)
### What does this PR try to resolve?

Use ellipses when truncating progress instead of three periods. While
this allows an extra two characters to fit on screen, the main
motivation it to reduce the visual quirkiness or the resulting output.

### How to test and review this PR?

This applies the review feedback left in #15330

Closes #15330
2025-09-12 02:02:39 +00:00
Hugo Osvaldo Barrera
d9891edffe feat(cli): Use ellipses when truncating progress
Use ellipses when truncating progress instead of three periods. While
this allows an extra two characters to fit on screen, the main
motivation it to reduce the visual quirkiness or the resulting output.

Closes #15330
2025-09-11 20:23:18 -05:00
Ed Page
00c7c805f0
feat(completer): Added completion for --features flag (#15309)
### What does this PR try to resolve?

This attempts to complete the autocompleter for `cargo build --features
<TAB>`, `cargo run --features <TAB>`

It loads all the features that are there in the profile section of
Cargo.toml

![Screenshot from 2025-03-14
03-36-53](https://github.com/user-attachments/assets/efeb07a1-60e0-4b77-bb47-05f39cd15fc7)

Related to #14520

### How should we test and review this PR?
by running `cargo build --features <TAB>`, `cargo run --features <TAB>`
2025-09-12 01:20:35 +00:00
Weihang Lo
4f2f1d71b9
fix(publish): Switch the 'ctrl-c on wait' line to a help message (#15942)
### What does this PR try to resolve?

Switches a multi-line note to use annotate_snippet directly in prep for
#15917 where these extra lines will be aligned with the first line.

### How to test and review this PR?

### Notes

Unsure if this should be two groups or one group with a message.

If its one group, then we'll have a decorative line and then the `help:`
will be further indented.

I went with what is closer to how we do things today.  We can always
re-evaluate at a later point.
2025-09-12 01:18:24 +00:00
Craig Macomber
5ed8d67df9 fix(info): Suggest a more universal cargo tree command
Passing a package to `--package` is for workspace members; we need to
pass it to `--invert`.

This is part of #14993
2025-09-11 20:10:02 -05:00
Eric Huss
7470eb0b04
docs: move docs building process to contributor guide (#15854)
### What does this PR try to resolve?

Pull
<71eb84f21a/src/doc/README.md>
into our contributor guide for visibility.

Also a writing guideline is added to the chapter, as well as some minor
polish.

This is created after seeing the contributing frictions in
<https://github.com/rust-lang/cargo/pull/15838#issuecomment-3194614286>.

### How to test and review this PR?

```
mdbook serve src/doc/contrib
```
2025-09-11 23:49:39 +00:00
Ed Page
2c5b4dfca9 fix(future): Report all content as a single Report 2025-09-11 17:15:42 -05:00
Ed Page
8e1cdcfb55 fix(future): Remove gap between item and its children 2025-09-11 17:15:42 -05:00
Ed Page
54ce51c343 fix(future): Lead with non-capital letter
Per rustc dev guide
2025-09-11 17:15:42 -05:00
Ed Page
155255fe41 fix(future): Lead with the suggested action 2025-09-11 17:15:42 -05:00
Ed Page
95aa52c177 fix(future): Indent potential candidates
This better matches other sub-lists
2025-09-11 17:15:42 -05:00
Ed Page
1b9265ca73 fix(future): Remove leading newline to match note conventions 2025-09-11 17:15:42 -05:00
Ed Page
8682394e7b fix(future): Be consistent in suggestion spacing 2025-09-11 17:15:42 -05:00
Ed Page
782df7300d refactor(future): Separate out suggestions from rendering
This will make it easier later to put each in their own message/title in
annotate snippets.

The hack will be removed later in this series.
2025-09-11 17:15:42 -05:00
Ed Page
9e401f67f6 refactor(future): Group shell output 2025-09-11 17:15:42 -05:00
Ed Page
acf54a080e refactor(future): Group shell output 2025-09-11 17:15:42 -05:00
Ed Page
322b82a2e0 test(future): Serialize output to avoid unordered
Parallel isn't part of this test and it makes snapshot updating
annoying.
2025-09-11 17:15:42 -05:00
Ed Page
5736aad97a fix(publish): Switch the 'ctrl-c on wait' line to a help message
Unsure if this should be two groups or one group with a message.

If its one group, then we'll have a decorative line and then the `help:`
will be further indented.

I went with what is closer to how we do things today.  We can always
re-evaluate at a later point.
2025-09-11 17:02:25 -05:00
Ed Page
bd04a4c19a chore: Update annotate-snippets 2025-09-11 17:02:18 -05:00
Weihang Lo
e3f6477f26
fix(manifest): Show error source to users (#15939)
### What does this PR try to resolve?

Ooch our way towards rustc's quality of error reporting to make up for
the fact that users won't see most frontmatter rustc error messages.

### How to test and review this PR?

Several parts of this are not ideal yet
- Frontmatter close should show the open and show the EOF, instead of
  pointing at the open
- Trailing content on close will usually have a newline
- Multiple frontmatters should show the original frontmatter
- Some content, like supported infostrings, should go in a help
- Ideally we try to recover on no closing and instead point out a
  mismatched open/close

But this is still an improvement over nothing!
2025-09-11 20:16:08 +00:00
Ed Page
24bb93c388
Bump miow to 0.60.1 (#15950)
Updates the `miow` crate to 0.60.1, which removes the final use of
`windows-sys` 0.48.0.
2025-09-10 23:16:07 +00:00
Daniel Paoliello
02a61a5bac Bump miow to 0.60.1 2025-09-10 15:40:53 -07:00
Weihang Lo
5d151a9ec3
test(help): Ensure consistent behavior regardless of rustup use (#15949)
### What does this PR try to resolve?

#15928 removed the fix from #13488 which breaks rust-lang/rust. This
fixes that and makes the test less brittle for the future.

### How to test and review this PR?
2025-09-10 20:59:13 +00:00
Ed Page
da2eafe024 test(help): Ensure consistent behavior regardless of rustup use 2025-09-10 15:25:35 -05:00
Weihang Lo
2a1de96590
docs(changelog): Clarify how manifest paths are used (#15946)
### What does this PR try to resolve?

I got confused by this when refreshing myself on the changelog in prep
for the 1.90 release.

### How to test and review this PR?
2025-09-10 14:26:27 +00:00
Ed Page
0d354726ea docs(changelog): Clarify how manifest paths are used
I got confused by this when refreshing myself on the changelog in prep
for the 1.90 release.
2025-09-10 08:50:44 -05:00
Ed Page
98402ac7a4
fix(flock): check if they are marked unsupported in libstd (#15941)
### What does this PR try to resolve?

This is a follow-up of <https://github.com/rust-lang/cargo/pull/15935>.

Before this Cargo invokes syscalls and check whether it gets ENOTSUP to
determine flock is unsupported. However, now the "unsupported platforms"
are pre-defined by libstd. Cargo should perhaps return unsupported if a
platform is marked unsupported by libstd.

Without this, some people on Termux may be affected I guess?

See
e9b6085088/library/std/src/sys/fs/unix.rs (L1395-L1410)
2025-09-09 20:19:39 +00:00
Weihang Lo
8f51d7f68b
fix(flock): check if they are marked unsupported in libstd
Before this Cargo invokes syscalls and check whether it gets ENOTSUP to
determine flock is unsupported. However, now the "unsupported platforms"
are pre-defined by libstd [1]. Cargo should perhaps return unsupported
if a platform is marked unsupported by libstd.

Without this, some people on Termux may be affected I guess?

[1]: e9b6085088/library/std/src/sys/fs/unix.rs (L1395-L1410)
2025-09-09 15:46:57 -04:00
Weihang Lo
78d83495ee
test(manifest): Fix test output order (#15940)
### What does this PR try to resolve?

As this is an unordered test, sometimes snapshot updating can mess up
the line order.

### How to test and review this PR?
2025-09-09 04:21:45 +00:00