13065 Commits

Author SHA1 Message Date
Niklas Cathor
439fde9bec
resolver version 2: Fix naming in example 2022-12-10 11:16:42 +01:00
bors
70898e5221 Auto merge of #11458 - weihanglo:doc/unit-generator, r=epage
Rename `generate_units` -> `generate_root_units`
2022-12-05 19:43:44 +00:00
Weihang Lo
6683e39621
doc(cargo_compile): generate_units -> generate_root_units 2022-12-05 19:19:07 +00:00
bors
7bdb96929d Auto merge of #11439 - psumbera:master, r=ehuss
Implements cargo file locking using fcntl on Solaris.

Fixes #11421.
2022-12-03 20:41:32 +00:00
bors
f6e737b1e3 Auto merge of #11445 - willcrichton:refactor-target-generator, r=weihanglo
Refactor generate_targets into separate module

### What does this PR try to resolve?

The `generate_targets` function is fairly complicated with an absurd number of parameters. This PR refactors the function into a `TargetGenerator` struct that represents the state of the generator, and reduces the amount of parameter-passing between the relevant functions. Additionally, the `generate_targets` function has been refactored into two smaller functions `create_proposals` and `proposals_to_units`. The docscrape-specific functionality from #11430 has been pulled out into a separate function, as promised.

### How should we test and review this PR?

This PR does not change any functionality, so no new tests are added. It should be reviewed for code style.

r? `@weihanglo`
2022-12-02 20:21:24 +00:00
Will Crichton
ad201bc69a Fix unit_generator links in architecture docs, move resolve_all_features to cargo_compile top-level module 2022-12-02 11:52:26 -08:00
Petr Sumbera
acd9aa3cbd Implements cargo file locking using fcntl on Solaris.
Fixes #11421.
2022-12-02 13:55:25 +01:00
bors
324a935e04 Auto merge of #11299 - hi-rustin:rustin-patch-target-warn, r=weihanglo
Improve file found in multiple build targets warning

### What does this PR try to resolve?

close https://github.com/rust-lang/cargo/issues/11248.
Improve file found in multiple build targets warning. This PR tries to print the target name and kind in the warning message.

### How should we test and review this PR?

- [x] Unit Test
2022-12-02 10:25:49 +00:00
Will Crichton
2a26aefc43 Rename "target" to "unit" in code related to generate_targets 2022-12-01 19:24:41 -08:00
hi-rustin
7eadd58eef Update duplicate build targets test
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-12-01 08:58:52 +08:00
hi-rustin
494e29dcd3 Improve file found in multiple build targets warning
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-12-01 08:58:43 +08:00
Will Crichton
cb97d0690e Refactor generate_targets into separate module with state consolidated into new TargetGenerator struct 2022-11-30 12:33:45 -08:00
bors
7b9069e8f9 Auto merge of #11349 - hi-rustin:rustin-patch-error-cli, r=weihanglo
Error when precise without -p flag

### What does this PR try to resolve?

close https://github.com/rust-lang/cargo/issues/10919

Follow up https://github.com/rust-lang/cargo/pull/10988, see https://github.com/rust-lang/cargo/issues/10919#issuecomment-1214464756

### How should we test and review this PR?

You can manually build and test it. You can try `cargo update --precise xxx` without -p flag.

### Additional information
It has already been released on stable. `rustc 1.65.0 (897e37553 2022-11-02)`
2022-11-30 09:46:05 +00:00
hi-rustin
c51f8ad083 Remove warning for aggressive flag without -p flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-30 09:08:03 +08:00
bors
d28c9b8bc1 Auto merge of #11430 - willcrichton:example-analyzer, r=weihanglo
Improve strategy for selecting targets to be scraped for examples

### What does this PR try to resolve?

After #10343, we have identified a clear set of conditions for whether a particular target should be considered by `-Zrustdoc-scrape-examples`. These conditions are described more clearly in #11425.

However, after some testing with complex Cargo workspaces (e.g. [wasmtime](https://github.com/bytecodealliance/wasmtime/)), I realized that the current approach of modifying the `CompileFilter` did not correctly implement this new specification. For example, a target with `doc = false` should not be scraped by default since it is not a documented unit, but the current approach would potentially include such a target for scraping.

This PR provides a new approach which I believe correctly implements the specification:
1. `generate_targets` is called with the same parameters except the `mode` which becomes `CompileMode::Docscrape` instead of `CompileMode::Doc`. `filter_default_targets` generates the same targets for `Docscrape` as for `Doc`.
2. Inside `generate_targets`, an initial set of `Proposal`s are created. This set of proposals is extended with further proposals based on targets identified as `doc-scrape-examples = true`, or Example targets where possible.

This PR subsumes #11423, and also fixes #10571.

### How should we test and review this PR?

I have added another test `docscrape::only_scrape_documented_targets` to verify that only documented or explicitly-enabled targets are included for scraping.

r? `@weihanglo`
2022-11-29 19:59:48 +00:00
bors
0460192d1a Auto merge of #11337 - weihanglo:compression-ratio, r=ehuss
Aware of compression ratio for unpack size limit
2022-11-29 19:10:00 +00:00
bors
861110c58b Auto merge of #11403 - calebfletcher:master, r=weihanglo
Add test for rustdoc-map generation when using sparse registries

Fixes #11402.

Adds an explicit check for sparse registries when generating the mappings for `-Zrustdoc-map`, so that the `sparse+` qualifier is removed before the comparison.
2022-11-29 11:59:38 +00:00
Caleb Fletcher
f54cd332e2 Add test for rustdoc map usage with sparse alternative registries 2022-11-29 19:28:03 +11:00
bors
a2ea66bea6 Auto merge of #11400 - hi-rustin:rustin-patch-fix-error, r=epage
Add error message when `cargo fix` on an empty repo

### What does this PR try to resolve?

close https://github.com/rust-lang/cargo/issues/11380

Add error message when `cargo fix` on an empty repo.

### How should we test and review this PR?

- [x] unit test

```sh
set -eux

cargo +nightly new repro
cd repro
echo "fn main() { let _ = 0.clone(); }" > src/main.rs
cargo fix
```
2022-11-28 13:01:15 +00:00
Will Crichton
968caae025 Remove outdated check on scrape units, add test for doc = false 2022-11-27 11:57:56 -06:00
bors
a004f94c48 Auto merge of #11387 - arlosi:sparse-url, r=weihanglo
Store the sparse+ prefix in the SourceId for sparse registries

#11209 added a new `SourceKind::SparseRegistry` and removed the `sparse+` prefix from the URLs stored in the `SourceId`.

The removal of the `sparse+` prefix from the URLs in the `SourceId` has led to several bugs, since registry URLs no longer round-trip through a `SourceId`. The most recent one I found was that the example configuration generated by `cargo vendor` did not include the `sparse+` prefix. Any place that calls the `.url()` method on a `SourceId` potentially has this bug.

This change puts the `sparse+` prefix back in the URL stored in the `SourceId`, but keeps the new `SourceKind::SparseRegistry`.

A test is added for doing `cargo vendor` on an alternative registry using the sparse protocol.
2022-11-27 16:00:17 +00:00
Weihang Lo
37d9b5c49a
Use struct shorthand syntax 2022-11-27 23:33:25 +08:00
Will Crichton
125c6b4ccd Move scrape-examples target filtering from CompileFilter into generate_targets 2022-11-26 10:49:41 -06:00
hi-rustin
21b2fe98a4 Fix fix_in_existing_repo_weird_ignore broken test
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-26 20:15:36 +08:00
hi-rustin
3189dc3b06 Include untracked files
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-26 20:15:36 +08:00
hi-rustin
25f7d4b09a Remove new_repo_without_add_and_commit
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-26 20:15:36 +08:00
hi-rustin
89b8a8bb10 Suppress error with --allow-dirty and add a test
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-26 20:15:36 +08:00
hi-rustin
a1f2f5a53f Add error message when cargo fix on an empty repo
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-26 20:15:36 +08:00
bors
1382b44e43 Auto merge of #11425 - willcrichton:scrape-examples-documentation, r=weihanglo
Update documentation for -Zrustdoc-scrape-examples in the Cargo Book

### What does this PR try to resolve?

Description in the title. Fixes #11424.

### How should we test and review this PR?

Here's a screenshot of the updated documentation:

<img width="814" alt="Screen Shot 2022-11-25 at 6 24 49 PM" src="https://user-images.githubusercontent.com/663326/204065460-4e06c638-7e3d-4c00-a805-7cb4b5a3803b.png">

r? `@weihanglo`
2022-11-26 10:08:12 +00:00
Will Crichton
000725213f Update documentation for -Zrustdoc-scrape-examples in the Cargo Book 2022-11-25 18:25:31 -06:00
bors
e027c4b5d2 Auto merge of #11420 - epage:atty, r=weihanglo
fix: Move off atty to resolve soundness issue

There is a soundness issue with atty when building on Windows with a custom allocator.

This PR switches direct dependencies on atty to is-terminal.  New semver compatible versions of clap and snapbox remove atty. #11417 upgrades env_logger to remove it from there.

Fixes #11416
2022-11-25 19:44:46 +00:00
bors
79fe7573b0 Auto merge of #11401 - adam248:patch-1, r=ehuss
add newline char to `cargo install .` error message for easier reading.

I just noticed the `cargo install .` error message was not formatted very nicely.

Just added a newline char to make it cleaner.

Thanks
2022-11-25 13:34:10 +00:00
Ed Page
48895b1681 fix: Move off atty to resolve soundness issue
There is a soundness issue with atty when building on Windows with a
custom allocator.

This PR switches direct dependencies on atty to is-terminal.  New semver
compatible versions of clap and snapbox remove atty. #11417 upgrades
env_logger to remove it from there.

Fixes #11415
2022-11-25 06:28:01 -06:00
bors
ee755e77da Auto merge of #11417 - epage:logger, r=weihanglo
chore: Upgrade to env_logger

This removes one path to `atty`.

Others:
- clap: fixed in 4.0.27
- pretty-env-logger: seanmonstar/pretty-env-logger#52 needs to be resolved first
- snapbox: this will be fixed soonish but is also only a test dependency
- direct dependency

This is part of #11416
2022-11-25 07:44:05 +00:00
bors
de56c1251b Auto merge of #10343 - willcrichton:example-analyzer, r=weihanglo
Change rustdoc-scrape-examples to be a target-level configuration

This PR addresses issues raised in rust-lang/cargo#9525. Specifically:
1. It enables examples to be scraped from `#[test]` functions, by passing additional flags to Rustdoc to ensure that these functions aren't ignored by rustc.
2. It moves the `arg` from `-Z rustdoc-scrape-examples={arg}` into a target-level configuration that can be added to Cargo.toml.

The added test `scrape_examples_configure_target` shows a concrete example. In short, examples will be default scraped from Example and Lib targets. Then the user can enable or disable scraping like so:

```toml
[lib]
doc-scrape-examples = false

[[test]]
name = "my_test"
doc-scrape-examples = true
```
2022-11-25 06:58:20 +00:00
bors
6a0f0cb6f1 Auto merge of #11419 - weihanglo:disable-lto-mingw, r=epage
temporarily disable test `lto::test_profile`

- CI failing
  - <https://github.com/rust-lang/cargo/actions/runs/3542820690/jobs/5948722067>
  - <https://github.com/rust-lang/cargo/actions/runs/3535399031/jobs/5933377592>
- Tracking in <https://github.com/rust-lang/rust/issues/104852>
- Discussing in <https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/windows.20gnu.20LTO.20CI.20error>
2022-11-25 01:58:58 +00:00
Weihang Lo
d5cac16d07
temporarily disable test lto::test_profile
- CI failing
  - <https://github.com/rust-lang/cargo/actions/runs/3542820690/jobs/5948722067>
  - <https://github.com/rust-lang/cargo/actions/runs/3535399031/jobs/5933377592>
- Tracking in <https://github.com/rust-lang/rust/issues/104852>
- Discussing in <https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo/topic/windows.20gnu.20LTO.20CI.20error>
2022-11-25 01:04:49 +00:00
Ed Page
5a3bf71d6a chore: Upgrade to env_logger
This removes one path to `atty`.

Others:
- clap: fixed in 4.0.27
- pretty-env-logger: seanmonstar/pretty-env-logger#52 needs to be resolved first
- snapbox: this will be fixed soonish but is also only a test dependency
- direct dependency

This is part of #11416
2022-11-24 12:01:07 -06:00
Will Crichton
183425f0bc Add test to confirm #10876 is fixed. 2022-11-23 09:35:59 -06:00
Will Crichton
ce9597c51b Use rename_all in TomlTarget serde derive 2022-11-22 16:26:56 -06:00
Will Crichton
c26ed6357f Add doc comments to explain scrape-examples feature 2022-11-22 15:19:18 -06:00
bors
ba607b23db Auto merge of #11368 - dtolnay-contrib:partial, r=Muscraft
Fix failure to parse rustc's JSON output if it is too nested
2022-11-22 20:52:39 +00:00
bors
995f5efcc2 Auto merge of #11186 - hi-rustin:rustin-patch-add-suggestion, r=epage
Add suggestions when `cargo add` multiple packages

### What does this PR try to resolve?

close https://github.com/rust-lang/cargo/issues/11173
Add suggestions when `cargo add` multiple packages. See https://github.com/rust-lang/cargo/issues/11173#issuecomment-1265692022

### How should we test and review this PR?

- [x] unit test
2022-11-22 14:10:58 +00:00
hi-rustin
db3ebb6b71 Better expect messages
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-11-22 18:48:28 +08:00
Adam Butler
1b7e256413 fixed typo causing broken cargo install . test case 2022-11-22 14:14:29 +09:30
Adam Butler
db0d3f9de1
fixed cargo fmt error regarding unknown escape char. 2022-11-22 13:24:59 +09:30
Adam Butler
c5836e97ba
fixed broken error made by newline char in cargo install . error message 2022-11-22 13:19:05 +09:30
Adam Butler
bf9006d9c4
add newline to cargo install . error message for easier reading. 2022-11-22 12:38:33 +09:30
bors
65535890db Auto merge of #11395 - kbuyukakyuz:patch-1, r=Eh2406
Update mod.rs
2022-11-20 21:49:27 +00:00
Kerim Büyükakyüz
de254fed3c
Update mod.rs 2022-11-21 00:04:31 +03:00