Commit graph

15257 commits

Author SHA1 Message Date
Eric Huss
51b5c4f38f Update curl-sys to pull in curl 8.4.0
This updates curl-sys from 0.4.66 to 0.4.68 to pull in curl 8.4.0.
This fixes two CVEs:

* CVE-2023-38546 — https://curl.se/docs/CVE-2023-38546.html
* CVE-2023-38545 — https://curl.se/docs/CVE-2023-38545.html

This also pulls in a change to fix compiling on macOS Sonoma.
2023-10-11 16:59:48 -07:00
bors
71de58d5cf Auto merge of #12799 - marchiore:warn_add_package_name, r=epage
feat: add package name and version to warning messages

### What does this PR try to resolve?

Hi, this PR Fixes #8018, where i add the package name and version on warning messages.
As this is my first contribution to the project, if anything is not in compliance in the PR let me know and I will be happy to correct it.
2023-10-11 19:59:57 +00:00
Matheus Z Marchiore
380719da35 feat: add package name and version to warning messages 2023-10-11 16:52:30 -03:00
bors
90fb62fc65 Auto merge of #12796 - dtolnay-contrib:switching, r=epage
Do not call it "Downgrading" when difference is only build metadata

### What does this PR try to resolve?

When a `cargo update --precise` changes a dependency between 2 versions which differ only in build metadata, Cargo prints a log referring to it as "Updating" or "Downgrading" the dependency, depending on a comparison between the build metadatas.

This is usually not meaningful, given that build metadata is often stuff like git commit hashes, which are not meaningfully ordered.

```console
    Updating crates.io index
 Downgrading foo v0.0.1+43ef4fe -> v0.0.1+2c65d16
    Updating bar v0.0.2+bc17664 -> v0.0.2+c144a98
```

~~This PR changes to the word "Switching" when the version major, minor, patch, and pre-release value are not being changed.~~
This PR uses the word "Updating" when the version major, minor, patch, and pre-release value are unchanged, regardless of whether the build metadata is going up or down.

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

- `cargo test`
- `cargo build --release`
- `/path/to/cargo/target/release/cargo add tonic_datastore_v1`
- `/path/to/cargo/target/release/cargo update -p tonic_datastore_v1 --precise 0.1.0+3562b6cb3`
- `/path/to/cargo/target/release/cargo update -p tonic_datastore_v1 --precise 0.1.0+ee9e8e4e6`

Before:
<img src="https://github.com/rust-lang/cargo/assets/1940490/93e377e7-928e-4cec-aff6-451166ef7c81" width="500">

~~After:~~
<img src="https://github.com/rust-lang/cargo/assets/1940490/bb71459e-469a-4e09-bb8a-4083f34bce79" width="500">

After:
<img src="https://github.com/rust-lang/cargo/assets/1940490/8804e2fe-d0de-4c9e-b463-a5742daf9446" width="500">
2023-10-11 14:21:44 +00:00
David Tolnay
f1d2237b72
Call cmp_precedence where applicable 2023-10-10 20:58:55 -07:00
bors
4ae21bd58f Auto merge of #12805 - hi-rustin:rustin-patch-target, r=epage
Add unsupported short flag suggestion for `--target` and `--exclude` flags
2023-10-11 02:08:04 +00:00
hi-rustin
b514ca5e24 Add unsupported short flag suggestion for --exclude flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-11 09:41:05 +08:00
hi-rustin
718b69ce19 Add test for unsupported short exclude flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-11 09:39:13 +08:00
hi-rustin
819a836e9a Add unsupported short flag suggestion for --target flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-11 09:16:26 +08:00
hi-rustin
2f90430110 Add test for unsupported short target triple flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-11 09:13:55 +08:00
bors
6fa6fdc760 Auto merge of #12804 - weihanglo:generalize-test-assertion, r=Muscraft
test(build): generalize test assertion for non-rustup env
2023-10-10 23:06:08 +00:00
Weihang Lo
a263a7dc31
test(build): generalize test assertion for non-rustup env 2023-10-10 17:52:46 -04:00
bors
95089bebda Auto merge of #12803 - epage:sort, r=weihanglo
chore: Sort dependency tables

This will make `cargo add` put things in the right place.

Verified by doing `cargo add arcstr && git diff && git reset --hard`
2023-10-10 21:47:39 +00:00
bors
8ba1c316ee Auto merge of #12798 - epage:msrv-install, r=ehuss
fix(install): Suggest an alternative version on MSRV failure

### What does this PR try to resolve?

Moves users from a bad error message, suggesting `--locked` which won't do anything, to suggesting a version of a package to use instead.

The side benefit is errors get reported sooner
- Before downloading the `.crate`
- When installing multiple packages, before building the first

This comes at the cost of an extra `rustc` invocation.

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

Per-commit this builds it up, from tests to the final design.

### Additional information

This is also written in a way to align fairly well with how we'd likely implement #10903.
This improved error message will still be useful after that issue is resolved when the MSRV compatible version is outside of the version req.
2023-10-10 20:03:41 +00:00
Ed Page
7846fe8cb4 chore: Sort dependency tables
This will make `cargo add` put things in the right place.

Verified by doing `cargo add arcstr && git diff && git reset --hard`
2023-10-10 15:03:22 -05:00
bors
e4fe8f04e7 Auto merge of #12800 - notriddle:notriddle/version-tests, r=ehuss
rustdoc: remove the word "Version" from test cases

Needed for https://github.com/rust-lang/rust/pull/115948 to merge.

That PR gets rid of the word "Version" in rustdoc's HTML output, and it splits spaced versions on their first space, to fit in the tight horizontal spacing. This causes Cargo's test suite to fail, because it look for the word "Version", even though things are working as they should.

These tests work on both current nightly and on that pull request.
2023-10-10 18:26:44 +00:00
Michael Howell
f0d3cdf191 rustdoc: remove the word "Version" from test cases
Needed for https://github.com/rust-lang/rust/pull/115948 to merge.
2023-10-10 11:19:57 -07:00
bors
c97c906b79 Auto merge of #12788 - hi-rustin:rustin-patch-short-Z, r=epage
Add unsupported lowercase `-z` flag suggestion for `-Z` flag
2023-10-10 01:33:31 +00:00
Ed Page
9b32be7f89 fix(install): Suggest an alternative version on MSRV failure
The next step would be to also automatically install an MSRV compatible
version if compatible with the version req (#10903).
This improved error message will still be useful if the MSRV compatible
version is outside of the version req.

I did this as the first step
- Helps people now, not needing to wait on `-Zmsrv-policy` to be stabilized
- Has fewer questions on how it should be done (or if it should be)
2023-10-09 20:22:54 -05:00
hi-rustin
d1540ccd7e Move arg_config and arg_unstable_feature out of command prelude
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-10 08:59:14 +08:00
David Tolnay
c0ed70ef5e
Use semver::Version's cmp_precedence for deciding what is downgrade 2023-10-09 16:08:27 -07:00
Ed Page
2976e2ac66 fix(install): Don't suggest --locked for MSRV when its root package
This will also report the error without having to download the `.crate`
first.

If installing multiple packages, this will also report it immediately,
rather than waiting for the other packages to be installed first.

This also offers us more flexibility in the error we report,
like suggesting more appropriate fixes.
2023-10-09 16:31:30 -05:00
David Tolnay
985e1eeef5
Do not call it "Downgrading" when difference is only build metadata 2023-10-09 13:53:47 -07:00
Ed Page
699b30a5f4 test(install): Verify existing top-level MSRV behavior 2023-10-09 15:48:53 -05:00
bors
b27f203e7f Auto merge of #12785 - epage:version-refactor, r=weihanglo
refactor(core): Clean up deserialization of PackageId

This came as part of another change that I'm abandoning but I felt this made things cleaner, so I decided to keep it.
2023-10-09 19:31:18 +00:00
David Tolnay
4d1bf29a2c
Add test of update with version that differ only in build metadata 2023-10-09 10:36:46 -07:00
bors
b48c41aedb Auto merge of #12706 - ehuss:cache-lock-mode, r=epage
Add new package cache lock modes

The way locking worked before this PR is that only one cargo could write to the package cache at once (otherwise it could cause corruption). However, it allowed cargo's to read from the package cache while running a build under the assumption that writers are append-only and won't affect reading. This allows multiple builds to run concurrently, only blocking on the part where it is not possible to run concurrently (downloading to the cache).

This introduces a new package cache locking strategy to support the ability to safely modify existing cache entries while other cargos are potentially reading from the cache. It has different locking modes:

- `MutateExclusive` (new) — Held when cargo wants to modify existing cache entries (such as being introduced for garbage collection in #12634), and ensures only one cargo has access to the cache during that time.
- `DownloadExclusive`  (renamed) — This is a more specialized name for the lock that was before this PR.   A caller should acquire this when downloading into the cache and doing resolution.  It ensures that only one cargo can append to the cache, but allows other cargos to concurrently read from the cache.
- `Shared` (new) — This is to preserve the old concurrent build behavior by allowing multiple concurrent cargos to hold this while a build is running when it is reading from the cache

**Reviewing suggestions:**
There are a few commits needed to help with testing which are first. The main commit has the following:
- `src/cargo/util/cache_lock.rs` is an abstraction around package cache locks, and is the heart of the change. It should have comments and notes which should guide what it is doing. The `CacheLocker` is stored in `Config` along with all our other global stuff.
- Every call to `config.acquire_package_cache_lock()` has been changed to explicitly state which lock mode it wants to lock the package cache in.
- `Context::compile` is the key point where the `Shared` lock is acquired, ensuring that no mutation is done while the cache is being read.
- `MutateExclusive` is not used in this PR, but is being added in preparation for #12634.
- The non-blocking `try_acquire_package_cache_lock` API is not used in this PR, but is being added in preparation for #12634 to allow automatic gc to skip running if another cargo is already running (to avoid unnecessary blocking).
- `src/cargo/util/flock.rs` has been updated with some code cleanup (removing unused stuff), adds support for non-blocking locks, and renames some functions to make their operation clearer.
- `tests/testsuite/cache_lock.rs` contains tests for all the different permutations of ways of acquiring locks.
2023-10-09 15:56:42 +00:00
Eric Huss
78bb7c5cb5 Rearrange impl blocks to be near their types. 2023-10-08 18:18:45 -07:00
Eric Huss
889558f76b Extend cache_lock documentation. 2023-10-08 18:18:42 -07:00
Eric Huss
df2e2a3ae6 Rename some Filesystem methods for clarity and consistency.
This tries to align the `Filesystem` method names so they have the same
form, and also so they spell out exactly what they do. (An alternative
would be to have a builder, similar to `OpenOptions`, but that seems a
bit overkill here.)

This also extends the docs to try to make it clearer how this works.
2023-10-08 17:46:39 -07:00
Eric Huss
fd6185193a Rewrite the cache locker to use functions instead of macros. 2023-10-08 14:16:51 -07:00
Eric Huss
1f0e483c66 Inline lock method. 2023-10-08 14:16:51 -07:00
Eric Huss
907bc0f777 Rearrange CacheLockMode order. 2023-10-08 14:16:51 -07:00
Eric Huss
b4982adfd9 Add a new package cache locking system.
This introduces a new `CacheLocker` which manages locks on the package
cache. Instead of either being "locked" or "not locked", the new locker
supports multiple modes:

- Shared lock: Cargo can read from the package sources, along with any
  other cargos reading at the same time.
- Download exclusive lock: Only one cargo can perform downloads.
  Download locks do not interfere with Shared locks, since it is
  expected that downloading does not modify existing files (only adds
  new ones).
- Mutate exclusive lock: Only one cargo can have this lock, and it also
  prevents shared locks. This is so that the cargo can modify the
  package cache (such as deleting files) without breaking concurrent
  processes.
2023-10-08 14:16:51 -07:00
Eric Huss
b37c8f35c0 Add ConfigBuilder::root
This adds the `root` method to set the root directory to be able to
override paths::root().
2023-10-08 14:16:51 -07:00
Eric Huss
b85ef38187 Add test helpers for waiting for an operation with a timeout. 2023-10-08 14:16:51 -07:00
Eric Huss
83fff2d1b1 Add a test helper for retrying a function multiple times. 2023-10-08 14:16:51 -07:00
bors
0871c0e2f4 Auto merge of #12795 - weihanglo:semver-checks, r=ehuss
ci: bump cargo-semver-checks to 0.24.0
2023-10-08 21:15:54 +00:00
Weihang Lo
60539e94dc
ci: bump cargo-semver-checks to 0.24.0
Also remove workaround since the issue was fixed in upstream.
2023-10-08 16:24:23 -04:00
bors
336815a661 Auto merge of #12654 - epage:msrv, r=weihanglo
Set and verify all MSRVs in CI

### What does this PR try to resolve?

Allow us to advertise an MSRV for all public packages, unblocking #12432.

Packages are broken down into two MSRV policies
- Internal packages: `rust-version=stable`
- Public packages: `rust-version=stable-2`

To support this
- RenovateBot will automatically update all MSRVs
- CI will verify all packages build according to their MSRV

Since this takes the "single workspace" approach, the downside is that common dependencies are subject to each package's MSRV.  We also can't rely on `-Zmsrv-policy` to help us generate a lockfile because it breaks down when trying to support multiple MSRVs in a workspace

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

Per commit

### Additional information

#12381 skipped setting some MSRVs because we weren't sure how to handle it.  For `cargo-credential`, we needed to do something and did one-off verification (#12623).  `cargo-hack` recently gained the ability to automatically select MSRVs for each package allowing us to scale this up to the entire workspace.

I don't know if we consciously chose an MSRV policy for `cargo-credential` but it looked like N-2 so that is what I stuck with and propagated out.
- Without an aggressive sliding MSRV, we discourage people from using newer features because they will feel like they need permission which means it needs to be justified
- Without an aggressive sliding MSRV, if the MSRV at one point in time works for someone, they tend to assume it will always work, leading to frustration at unmet expectations.

I switched the MSRV check to `cargo check` from `cargo test` because I didn't want to deal with the out-of-diskspace issues and `check` will catch 99% of MSRV issues.

Potential future improvements to `cargo-hack`
- Allow `--version-range ..stable` so we can verify all MSRVs that aren't stable which would bypass the diskspace issues and allow us to more easily use `cargo test` again
- Verify on a `cargo package` version of a crate (taiki-e/cargo-hack#216)
2023-10-08 15:02:21 +00:00
hi-rustin
f9719dcf4e add unsupported lowercase flag suggestion for -Z flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-08 08:36:49 +08:00
hi-rustin
0108d5b0dc Add test for unsupported short unstable feature flag
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2023-10-08 08:36:09 +08:00
Ed Page
9864b35051 chore(ci): Verify all MSRVs in CI 2023-10-06 16:34:42 -05:00
Ed Page
03a642b1d8 fix: Set MSRV in all published packages 2023-10-06 16:34:42 -05:00
Ed Page
4b55a4f76f chore(gh): Automatically update cargo-credential MSRV 2023-10-06 16:34:42 -05:00
Ed Page
a4928f6584 refactor(gh): Allow tracking multiple MSRVs 2023-10-06 16:34:40 -05:00
bors
637ade0e6a Auto merge of #12775 - rust-lang:renovate/latest-msrv-1.x, r=epage
chore(deps): update latest msrv to v1.73

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [latest-msrv](https://togithub.com/rust-lang/rust) | minor | `1.72.0` -> `1.73` |

---

### Release Notes

<details>
<summary>rust-lang/rust (latest-msrv)</summary>

### [`v1.73`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1730-2023-10-05)

[Compare Source](https://togithub.com/rust-lang/rust/compare/1.72.0...1.73.0)

\==========================

<a id="1.73.0-Language"></a>

## Language

-   [Uplift `clippy::fn_null_check` lint as `useless_ptr_null_checks`.](https://togithub.com/rust-lang/rust/pull/111717/)
-   [Make `noop_method_call` warn by default.](https://togithub.com/rust-lang/rust/pull/111916/)
-   [Support interpolated block for `try` and `async` in macros.](https://togithub.com/rust-lang/rust/pull/112953/)
-   [Make `unconditional_recursion` lint detect recursive drops.](https://togithub.com/rust-lang/rust/pull/113902/)
-   [Future compatibility warning for some impls being incorrectly considered not overlapping.](https://togithub.com/rust-lang/rust/pull/114023/)
-   [The `invalid_reference_casting` lint is now **deny-by-default** (instead of allow-by-default)](https://togithub.com/rust-lang/rust/pull/112431)

<a id="1.73.0-Compiler"></a>

## Compiler

-   [Write version information in a `.comment` section like GCC/Clang.](https://togithub.com/rust-lang/rust/pull/97550/)
-   [Add documentation on v0 symbol mangling.](https://togithub.com/rust-lang/rust/pull/97571/)
-   [Stabilize `extern "thiscall"` and `"thiscall-unwind"` ABIs.](https://togithub.com/rust-lang/rust/pull/114562/)
-   [Only check outlives goals on impl compared to trait.](https://togithub.com/rust-lang/rust/pull/109356/)
-   [Infer type in irrefutable slice patterns with fixed length as array.](https://togithub.com/rust-lang/rust/pull/113199/)
-   [Discard default auto trait impls if explicit ones exist.](https://togithub.com/rust-lang/rust/pull/113312/)
-   Add several new tier 3 targets:
    -   [`aarch64-unknown-teeos`](https://togithub.com/rust-lang/rust/pull/113480/)
    -   [`csky-unknown-linux-gnuabiv2`](https://togithub.com/rust-lang/rust/pull/113658/)
    -   [`riscv64-linux-android`](https://togithub.com/rust-lang/rust/pull/112858/)
    -   [`riscv64gc-unknown-hermit`](https://togithub.com/rust-lang/rust/pull/114004/)
    -   [`x86_64-unikraft-linux-musl`](https://togithub.com/rust-lang/rust/pull/113411/)
    -   [`x86_64-unknown-linux-ohos`](https://togithub.com/rust-lang/rust/pull/113061/)
-   [Add `wasm32-wasi-preview1-threads` as a tier 2 target.](https://togithub.com/rust-lang/rust/pull/112922/)

Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.

<a id="1.73.0-Libraries"></a>

## Libraries

-   [Add `Read`, `Write` and `Seek` impls for `Arc<File>`.](https://togithub.com/rust-lang/rust/pull/94748/)
-   [Merge functionality of `io::Sink` into `io::Empty`.](https://togithub.com/rust-lang/rust/pull/98154/)
-   [Implement `RefUnwindSafe` for `Backtrace`](https://togithub.com/rust-lang/rust/pull/100455/)
-   [Make `ExitStatus` implement `Default`](https://togithub.com/rust-lang/rust/pull/106425/)
-   [`impl SliceIndex<str> for (Bound<usize>, Bound<usize>)`](https://togithub.com/rust-lang/rust/pull/111081/)
-   [Change default panic handler message format.](https://togithub.com/rust-lang/rust/pull/112849/)
-   [Cleaner `assert_eq!` & `assert_ne!` panic messages.](https://togithub.com/rust-lang/rust/pull/111071/)
-   [Correct the (deprecated) Android `stat` struct definitions.](https://togithub.com/rust-lang/rust/pull/113130/)

<a id="1.73.0-Stabilized-APIs"></a>

## Stabilized APIs

-   [Unsigned `{integer}::div_ceil`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.div_ceil)
-   [Unsigned `{integer}::next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.next_multiple_of)
-   [Unsigned `{integer}::checked_next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.checked_next_multiple_of)
-   [`std::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html)
-   [`std::os::unix::fs::chown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.chown.html)
-   [`std::os::unix::fs::fchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.fchown.html)
-   [`std::os::unix::fs::lchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.lchown.html)
-   [`LocalKey::<Cell<T>>::get`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.get)
-   [`LocalKey::<Cell<T>>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set)
-   [`LocalKey::<Cell<T>>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take)
-   [`LocalKey::<Cell<T>>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace)
-   [`LocalKey::<RefCell<T>>::with_borrow`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow)
-   [`LocalKey::<RefCell<T>>::with_borrow_mut`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow_mut)
-   [`LocalKey::<RefCell<T>>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set-1)
-   [`LocalKey::<RefCell<T>>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take-1)
-   [`LocalKey::<RefCell<T>>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace-1)

These APIs are now stable in const contexts:

-   [`rc::Weak::new`](https://doc.rust-lang.org/stable/alloc/rc/struct.Weak.html#method.new)
-   [`sync::Weak::new`](https://doc.rust-lang.org/stable/alloc/sync/struct.Weak.html#method.new)
-   [`NonNull::as_ref`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_ref)

<a id="1.73.0-Cargo"></a>

## Cargo

-   [Encode URL params correctly for `SourceId` in `Cargo.lock`.](https://togithub.com/rust-lang/cargo/pull/12280/)
-   [Bail out an error when using `cargo::` in custom build script.](https://togithub.com/rust-lang/cargo/pull/12332/)

<a id="1.73.0-Misc"></a>

## Misc

<a id="1.73.0-Compatibility-Notes"></a>

## Compatibility Notes

-   [Update the minimum external LLVM to 15.](https://togithub.com/rust-lang/rust/pull/114148/)
-   [Check for non-defining uses of return position `impl Trait`.](https://togithub.com/rust-lang/rust/pull/112842/)

<a id="1.73.0-Internal-Changes"></a>

## Internal Changes

These changes do not affect any public interfaces of Rust, but they represent
significant improvements to the performance or internals of rustc and related
tools.

-   [Remove LLVM pointee types, supporting only opaque pointers.](https://togithub.com/rust-lang/rust/pull/105545/)
-   [Port PGO/LTO/BOLT optimized build pipeline to Rust.](https://togithub.com/rust-lang/rust/pull/112235/)
-   [Replace in-tree `rustc_apfloat` with the new version of the crate.](https://togithub.com/rust-lang/rust/pull/113843/)
-   [Update to LLVM 17.](https://togithub.com/rust-lang/rust/pull/114048/)
-   [Add `internal_features` lint for internal unstable features.](https://togithub.com/rust-lang/rust/pull/108955/)
-   [Mention style for new syntax in tracking issue template.](https://togithub.com/rust-lang/rust/pull/113586/)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * *" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rust-lang/cargo).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIifQ==-->
2023-10-06 19:50:52 +00:00
Ed Page
3f879a0abe refactor(core): Clean up deserialization of PackageId
This came as part of another change that I'm abandoning but I felt this
made things cleaner, so I decided to keep it.
2023-10-06 12:17:35 -05:00
bors
294fe8f949 Auto merge of #12782 - Turbo87:new-crate-docs, r=epage
crates-io: Add doc comment for `NewCrate` struct

This PR adds a small doc comment to the `NewCrate` struct in the `crates-io` package, linking to https://doc.rust-lang.org/cargo/reference/registry-web-api.html#publish to give additional context.

I saw other links to https://doc.rust-lang.org in some of the doc comments, so I'm hoping this is correct vs. linking directly to the file with a relative path?
2023-10-06 15:01:25 +00:00
Tobias Bieniek
9e5dac18b9
crates.io: Bump version to 0.39.1 2023-10-06 16:11:38 +02:00