diff --git a/README.md b/README.md index 1d806b978643..4a35cdd9ddaa 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,13 @@ Cargo downloads your Rust project’s dependencies and compiles your project. [The Cargo Book]: https://doc.rust-lang.org/cargo/ [Cargo Contributor Guide]: https://rust-lang.github.io/cargo/contrib/ +> The Cargo binary distributed through with Rust is maintained by the Cargo +> team for use by the wider ecosystem. +> For all other uses of this crate (as a binary or library) this is maintained +> by the Cargo team, primarily for use by Cargo and not intended for external +> use (except as a transitive dependency). This crate may make major changes to +> its APIs. + ## Code Status [![CI](https://github.com/rust-lang/cargo/actions/workflows/main.yml/badge.svg?branch=auto-cargo)](https://github.com/rust-lang/cargo/actions/workflows/main.yml) diff --git a/benches/benchsuite/README.md b/benches/benchsuite/README.md new file mode 100644 index 000000000000..ca004d0c62a0 --- /dev/null +++ b/benches/benchsuite/README.md @@ -0,0 +1,3 @@ +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use. This +> crate may make major changes to its APIs or be deprecated without warning. diff --git a/benches/benchsuite/src/lib.rs b/benches/benchsuite/src/lib.rs index 327c04c4f05b..2d85584d5137 100644 --- a/benches/benchsuite/src/lib.rs +++ b/benches/benchsuite/src/lib.rs @@ -1,3 +1,7 @@ +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use. This +//! > crate may make major changes to its APIs or be deprecated without warning. + #![allow(clippy::disallowed_methods)] use cargo::GlobalContext; diff --git a/crates/cargo-platform/README.md b/crates/cargo-platform/README.md new file mode 100644 index 000000000000..844bc081f707 --- /dev/null +++ b/crates/cargo-platform/README.md @@ -0,0 +1,2 @@ +> This crate is maintained by the Cargo team for use by the wider +> ecosystem. This crate follows semver compatibility for its APIs. diff --git a/crates/cargo-platform/src/lib.rs b/crates/cargo-platform/src/lib.rs index 7911e484e578..71e9140bae9c 100644 --- a/crates/cargo-platform/src/lib.rs +++ b/crates/cargo-platform/src/lib.rs @@ -6,6 +6,9 @@ //! //! See `examples/matches.rs` for an example of how to match against a `Platform`. //! +//! > This crate is maintained by the Cargo team for use by the wider +//! > ecosystem. This crate follows semver compatibility for its APIs. +//! //! [`Platform`]: enum.Platform.html use std::fmt; diff --git a/crates/cargo-test-macro/README.md b/crates/cargo-test-macro/README.md index 311d5ed6d66d..ca004d0c62a0 100644 --- a/crates/cargo-test-macro/README.md +++ b/crates/cargo-test-macro/README.md @@ -1,5 +1,3 @@ -WARNING: You might not want to use this outside of Cargo. - -* This is designed for testing Cargo itself. Use at your own risk. -* No guarantee on any stability across versions. -* No feature request would be accepted unless proved useful for testing Cargo. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use. This +> crate may make major changes to its APIs or be deprecated without warning. diff --git a/crates/cargo-test-macro/src/lib.rs b/crates/cargo-test-macro/src/lib.rs index 2e62f6a32ff0..93bf0ec08c69 100644 --- a/crates/cargo-test-macro/src/lib.rs +++ b/crates/cargo-test-macro/src/lib.rs @@ -3,11 +3,9 @@ //! This is meant to be consumed alongside `cargo-test-support`. See //! for a guide on writing tests. //! -//! WARNING: You might not want to use this outside of Cargo. -//! -//! * This is designed for testing Cargo itself. Use at your own risk. -//! * No guarantee on any stability across versions. -//! * No feature request would be accepted unless proved useful for testing Cargo. +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use. This +//! > crate may make major changes to its APIs or be deprecated without warning. use proc_macro::*; use std::path::Path; diff --git a/crates/cargo-test-support/README.md b/crates/cargo-test-support/README.md index 311d5ed6d66d..ca004d0c62a0 100644 --- a/crates/cargo-test-support/README.md +++ b/crates/cargo-test-support/README.md @@ -1,5 +1,3 @@ -WARNING: You might not want to use this outside of Cargo. - -* This is designed for testing Cargo itself. Use at your own risk. -* No guarantee on any stability across versions. -* No feature request would be accepted unless proved useful for testing Cargo. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use. This +> crate may make major changes to its APIs or be deprecated without warning. diff --git a/crates/cargo-test-support/src/lib.rs b/crates/cargo-test-support/src/lib.rs index f95591182006..2f2d43b6a1f0 100644 --- a/crates/cargo-test-support/src/lib.rs +++ b/crates/cargo-test-support/src/lib.rs @@ -11,11 +11,9 @@ //! targeted at cargo contributors //! - Updated on each update of the `cargo` submodule in `rust-lang/rust` //! -//! **WARNING:** You might not want to use this outside of Cargo. -//! -//! * This is designed for testing Cargo itself. Use at your own risk. -//! * No guarantee on any stability across versions. -//! * No feature request would be accepted unless proved useful for testing Cargo. +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use. This +//! > crate may make major changes to its APIs or be deprecated without warning. //! //! # Example //! diff --git a/crates/cargo-util-schemas/README.md b/crates/cargo-util-schemas/README.md new file mode 100644 index 000000000000..844bc081f707 --- /dev/null +++ b/crates/cargo-util-schemas/README.md @@ -0,0 +1,2 @@ +> This crate is maintained by the Cargo team for use by the wider +> ecosystem. This crate follows semver compatibility for its APIs. diff --git a/crates/cargo-util-schemas/src/lib.rs b/crates/cargo-util-schemas/src/lib.rs index 84b6c39a89b4..910438155e92 100644 --- a/crates/cargo-util-schemas/src/lib.rs +++ b/crates/cargo-util-schemas/src/lib.rs @@ -4,6 +4,9 @@ //! parsing command-lines. //! Any logic for getting final semantics from these will likely need other tools to process, like //! `cargo metadata`. +//! +//! > This crate is maintained by the Cargo team for use by the wider +//! > ecosystem. This crate follows semver compatibility for its APIs. pub mod core; pub mod manifest; diff --git a/crates/cargo-util/README.md b/crates/cargo-util/README.md new file mode 100644 index 000000000000..579d1a85c1ed --- /dev/null +++ b/crates/cargo-util/README.md @@ -0,0 +1,3 @@ +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. diff --git a/crates/cargo-util/src/lib.rs b/crates/cargo-util/src/lib.rs index 717e89ba469f..0734118f613d 100644 --- a/crates/cargo-util/src/lib.rs +++ b/crates/cargo-util/src/lib.rs @@ -1,4 +1,8 @@ //! Miscellaneous support code used by Cargo. +//! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. #![allow(clippy::disallowed_methods)] diff --git a/crates/crates-io/README.md b/crates/crates-io/README.md new file mode 100644 index 000000000000..844bc081f707 --- /dev/null +++ b/crates/crates-io/README.md @@ -0,0 +1,2 @@ +> This crate is maintained by the Cargo team for use by the wider +> ecosystem. This crate follows semver compatibility for its APIs. diff --git a/crates/crates-io/lib.rs b/crates/crates-io/lib.rs index 5d8a8c50cc32..ae7f9c4daa31 100644 --- a/crates/crates-io/lib.rs +++ b/crates/crates-io/lib.rs @@ -1,3 +1,6 @@ +//! > This crate is maintained by the Cargo team for use by the wider +//! > ecosystem. This crate follows semver compatibility for its APIs. + use std::collections::BTreeMap; use std::fs::File; use std::io::prelude::*; diff --git a/crates/home/README.md b/crates/home/README.md index a80adbd3b352..23523f9bdb17 100644 --- a/crates/home/README.md +++ b/crates/home/README.md @@ -20,6 +20,10 @@ that Cargo and rustup store their data. See [rust-lang/rust#43321]. +> This crate is maintained by the Cargo team, primarily for use by Cargo and Rustup +> and not intended for external use. This +> crate may make major changes to its APIs or be deprecated without warning. + [rust-lang/rust#43321]: https://github.com/rust-lang/rust/issues/43321 ## License diff --git a/crates/home/src/lib.rs b/crates/home/src/lib.rs index bbe7c32ca84e..534ecb2f9030 100644 --- a/crates/home/src/lib.rs +++ b/crates/home/src/lib.rs @@ -16,6 +16,10 @@ //! //! See also this [discussion]. //! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo and Rustup +//! > and not intended for external use. This +//! > crate may make major changes to its APIs or be deprecated without warning. +//! //! [discussion]: https://github.com/rust-lang/rust/pull/46799#issuecomment-361156935 #![allow(clippy::disallowed_methods)] diff --git a/crates/mdman/README.md b/crates/mdman/README.md index e28b596ba34b..9dc1553ccb08 100644 --- a/crates/mdman/README.md +++ b/crates/mdman/README.md @@ -2,6 +2,10 @@ mdman is a small utility for creating man pages from markdown text files. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + ## Usage See the [man page](doc/out/mdman.md) generated by this tool. diff --git a/crates/mdman/src/lib.rs b/crates/mdman/src/lib.rs index f0b5167e80cb..0b0e6e734af3 100644 --- a/crates/mdman/src/lib.rs +++ b/crates/mdman/src/lib.rs @@ -1,4 +1,8 @@ //! mdman markdown to man converter. +//! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. use anyhow::{bail, Context, Error}; use pulldown_cmark::{CowStr, Event, LinkType, Options, Parser, Tag, TagEnd}; diff --git a/crates/resolver-tests/README.md b/crates/resolver-tests/README.md index 4f84467bd629..72a4f7e3c5b1 100644 --- a/crates/resolver-tests/README.md +++ b/crates/resolver-tests/README.md @@ -5,6 +5,10 @@ This crate aims to test the resolution of Cargo's resolver. It implements a [SAT solver](https://en.wikipedia.org/wiki/SAT_solver) to compare with resolution of Cargo's resolver. This ensures that Cargo's dependency resolution is proven valid by lowering to [SAT problem](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem). +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + ## About the test The Cargo's resolver is very sensitive to what order it tries to evaluate constraints. This makes it incredibly difficult diff --git a/crates/resolver-tests/src/lib.rs b/crates/resolver-tests/src/lib.rs index aa9c8a56ce88..a3d5dad7344e 100644 --- a/crates/resolver-tests/src/lib.rs +++ b/crates/resolver-tests/src/lib.rs @@ -1,3 +1,7 @@ +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. + #![allow(clippy::print_stderr)] use std::cmp::{max, min}; diff --git a/crates/rustfix/README.md b/crates/rustfix/README.md index 0546e6018f9b..70ec423c757c 100644 --- a/crates/rustfix/README.md +++ b/crates/rustfix/README.md @@ -9,6 +9,10 @@ This is a low-level library. You pass it the JSON output from `rustc`, and you c If you are looking for the [`cargo fix`] implementation, the core of it is located in [`cargo::ops::fix`]. +> This crate is maintained by the Cargo team, primarily for use by Cargo and Rust compiler test suite +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + [`cargo fix`]: https://doc.rust-lang.org/cargo/commands/cargo-fix.html [`cargo::ops::fix`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/fix.rs diff --git a/crates/rustfix/src/lib.rs b/crates/rustfix/src/lib.rs index 0298e58ce1fc..a1e2c47cfeb9 100644 --- a/crates/rustfix/src/lib.rs +++ b/crates/rustfix/src/lib.rs @@ -18,6 +18,10 @@ //! 3. Create a [`CodeFix`] with the source of a file to modify. //! 4. Call [`CodeFix::apply`] to apply a change. //! 5. Call [`CodeFix::finish`] to get the result and write it back to disk. +//! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo and Rust compiler test suite +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. use std::collections::HashSet; use std::ops::Range; diff --git a/credential/cargo-credential-1password/README.md b/credential/cargo-credential-1password/README.md index fc3c9460a56d..74bf4c4eeb04 100644 --- a/credential/cargo-credential-1password/README.md +++ b/credential/cargo-credential-1password/README.md @@ -2,6 +2,11 @@ A Cargo [credential provider] for [1password]. +> This crate is maintained by the Cargo team as a part of an experiment around +> 1password integration. We encourage people to try to use this crate in their projects and +> provide feedback through [issues](https://github.com/rust-lang/cargo/issues/), but do not +> guarantee long term maintenance. + ## Usage `cargo-credential-1password` uses the 1password `op` CLI to store the token. You diff --git a/credential/cargo-credential-1password/src/main.rs b/credential/cargo-credential-1password/src/main.rs index 38b567bf2d49..0cb720b36aad 100644 --- a/credential/cargo-credential-1password/src/main.rs +++ b/credential/cargo-credential-1password/src/main.rs @@ -1,4 +1,9 @@ //! Cargo registry 1password credential process. +//! +//! > This crate is maintained by the Cargo team as a part of an experiment around +//! > 1password integration. We encourage people to try to use this crate in their projects and +//! > provide feedback through [issues](https://github.com/rust-lang/cargo/issues/), but do not +//! > guarantee long term maintenance. #![allow(clippy::disallowed_methods)] #![allow(clippy::print_stderr)] diff --git a/credential/cargo-credential-libsecret/README.md b/credential/cargo-credential-libsecret/README.md index aaba2887f41f..a6af3b7575a0 100644 --- a/credential/cargo-credential-libsecret/README.md +++ b/credential/cargo-credential-libsecret/README.md @@ -5,5 +5,9 @@ See the [credential-provider] documentation for how to use this. This credential provider is built-in to cargo as `cargo:libsecret`. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + [GNOME libsecret]: https://wiki.gnome.org/Projects/Libsecret [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html diff --git a/credential/cargo-credential-libsecret/src/lib.rs b/credential/cargo-credential-libsecret/src/lib.rs index 67452f05be7d..0d10fb836892 100644 --- a/credential/cargo-credential-libsecret/src/lib.rs +++ b/credential/cargo-credential-libsecret/src/lib.rs @@ -1,3 +1,7 @@ +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. + #[cfg(target_os = "linux")] mod linux { //! Implementation of the libsecret credential helper. diff --git a/credential/cargo-credential-macos-keychain/README.md b/credential/cargo-credential-macos-keychain/README.md index f5efe496b8fa..28cabf4206db 100644 --- a/credential/cargo-credential-macos-keychain/README.md +++ b/credential/cargo-credential-macos-keychain/README.md @@ -5,6 +5,10 @@ See the [credential-provider] documentation for how to use this. This credential provider is built-in to cargo as `cargo:macos-keychain`. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + [macOS Keychain]: https://support.apple.com/guide/keychain-access/welcome/mac [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html diff --git a/credential/cargo-credential-macos-keychain/src/lib.rs b/credential/cargo-credential-macos-keychain/src/lib.rs index 8a702a3620c6..f6d253c7a585 100644 --- a/credential/cargo-credential-macos-keychain/src/lib.rs +++ b/credential/cargo-credential-macos-keychain/src/lib.rs @@ -1,4 +1,8 @@ //! Cargo registry macos keychain credential process. +//! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. #![allow(clippy::print_stderr)] diff --git a/credential/cargo-credential-wincred/README.md b/credential/cargo-credential-wincred/README.md index 1995e9d76cf4..0cb6b9512708 100644 --- a/credential/cargo-credential-wincred/README.md +++ b/credential/cargo-credential-wincred/README.md @@ -5,5 +5,9 @@ See the [credential-provider] documentation for how to use this. This credential provider is built-in to cargo as `cargo:wincred`. +> This crate is maintained by the Cargo team, primarily for use by Cargo +> and not intended for external use (except as a transitive dependency). This +> crate may make major changes to its APIs or be deprecated without warning. + [Windows Credential Manager]: https://support.microsoft.com/en-us/windows/accessing-credential-manager-1b5c916a-6a16-889f-8581-fc16e8165ac0 [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html diff --git a/credential/cargo-credential-wincred/src/lib.rs b/credential/cargo-credential-wincred/src/lib.rs index 24b072ee28ad..eb6ea390bfce 100644 --- a/credential/cargo-credential-wincred/src/lib.rs +++ b/credential/cargo-credential-wincred/src/lib.rs @@ -1,4 +1,8 @@ //! Cargo registry windows credential process. +//! +//! > This crate is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs or be deprecated without warning. #[cfg(windows)] mod win { diff --git a/credential/cargo-credential/README.md b/credential/cargo-credential/README.md index d87d41bb8c8e..8e4c9f94e74a 100644 --- a/credential/cargo-credential/README.md +++ b/credential/cargo-credential/README.md @@ -10,6 +10,9 @@ https://doc.rust-lang.org/nightly/cargo/reference/credential-provider-protocol.h Example implementations may be found at https://github.com/rust-lang/cargo/tree/master/credential +> This crate is maintained by the Cargo team for use by the wider +> ecosystem. This crate follows semver compatibility for its APIs. + ## Usage Create a Cargo project with this as a dependency: diff --git a/credential/cargo-credential/src/lib.rs b/credential/cargo-credential/src/lib.rs index 0888fb402f79..c8e64b983af7 100644 --- a/credential/cargo-credential/src/lib.rs +++ b/credential/cargo-credential/src/lib.rs @@ -12,6 +12,9 @@ //! While in the `perform` function, stdin and stdout will be re-attached to the //! active console. This allows credential providers to be interactive if necessary. //! +//! > This crate is maintained by the Cargo team for use by the wider +//! > ecosystem. This crate follows semver compatibility for its APIs. +//! //! ## Error handling //! ### [`Error::UrlNotSupported`] //! A credential provider may only support some registry URLs. If this is the case diff --git a/src/cargo/lib.rs b/src/cargo/lib.rs index 16ed4cfaa3a7..7dc25ad14a04 100644 --- a/src/cargo/lib.rs +++ b/src/cargo/lib.rs @@ -7,9 +7,10 @@ //! - : targeted at cargo contributors //! - Updated on each update of the `cargo` submodule in `rust-lang/rust` //! -//! **WARNING:** Using Cargo as a library has drawbacks, particularly the API is unstable, -//! and there is no clear path to stabilize it soon at the time of writing. See [The Cargo Book: -//! External tools] for more on this topic. +//! > This library is maintained by the Cargo team, primarily for use by Cargo +//! > and not intended for external use (except as a transitive dependency). This +//! > crate may make major changes to its APIs. See [The Cargo Book: +//! > External tools] for more on this topic. //! //! ## Overview //! diff --git a/src/doc/contrib/src/team.md b/src/doc/contrib/src/team.md index e8044e6d91fa..a08a6ddfc6cb 100644 --- a/src/doc/contrib/src/team.md +++ b/src/doc/contrib/src/team.md @@ -165,6 +165,15 @@ The degree of process is correlated with the degree of change being proposed: [Stable backports]: process/release.md#stable-backports [SemVer chapter]: https://doc.rust-lang.org/cargo/reference/semver.html +## Intentional Artifacts + +Per the [Rust crate ownership policy](https://forge.rust-lang.org/policies/crate-ownership.html), the Cargo team's "Intentional Artifacts" include: + +- [cargo-credential](https://crates.io/crates/cargo-credential) +- [cargo-platform](https://crates.io/crates/cargo-platform) +- [cargo-util-schemas](https://crates.io/crates/cargo-util-schemas) +- [crates-io](https://crates.io/crates/crates-io) + ## Contacting the team The team may be contacted through several channels: