From 623945b3a5a566ddfc4c1fe4303be90565aa5f21 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 26 Sep 2024 11:08:16 -0500 Subject: [PATCH] docs: Declare support level for each crate in our Charter / docs This is to bring us into conformance with the [Rust crate ownership policy](https://forge.rust-lang.org/policies/crate-ownership.html). Items of note - `cargo-credential-1password` is declared as Experimental as it is intended for the community but I was unsure if we wanted to commit to full support for it. In my mind, the ideal thing to do would be to expatriate this to 1password. - `home` is declared as Internal despite its wide use within the ecosystem. - `cargo-credential` is declared as Intentional as its an API intended for the wider ecosystem and I didn't see a reason to declare it experimental. - `cargo-platform`, `cargo-util-schemas`, and `crates-io` are declared as Intentional as they are both used internally and intended for others to use for logic that integrates with cargo/registries. I wondered about these being Experimental or Internal instead. --- benches/benchsuite/README.md | 3 +++ benches/benchsuite/src/lib.rs | 4 ++++ crates/cargo-platform/README.md | 2 ++ crates/cargo-platform/src/lib.rs | 3 +++ crates/cargo-test-macro/README.md | 8 +++----- crates/cargo-test-macro/src/lib.rs | 8 +++----- crates/cargo-test-support/README.md | 8 +++----- crates/cargo-test-support/src/lib.rs | 8 +++----- crates/cargo-util-schemas/README.md | 2 ++ crates/cargo-util-schemas/src/lib.rs | 3 +++ crates/cargo-util/README.md | 3 +++ crates/cargo-util/src/lib.rs | 4 ++++ crates/crates-io/README.md | 2 ++ crates/crates-io/lib.rs | 3 +++ crates/home/README.md | 4 ++++ crates/home/src/lib.rs | 4 ++++ crates/mdman/README.md | 4 ++++ crates/mdman/src/lib.rs | 4 ++++ crates/resolver-tests/README.md | 4 ++++ crates/resolver-tests/src/lib.rs | 4 ++++ crates/rustfix/README.md | 4 ++++ crates/rustfix/src/lib.rs | 4 ++++ credential/cargo-credential-1password/README.md | 5 +++++ credential/cargo-credential-1password/src/main.rs | 5 +++++ credential/cargo-credential-libsecret/README.md | 4 ++++ credential/cargo-credential-libsecret/src/lib.rs | 4 ++++ credential/cargo-credential-macos-keychain/README.md | 4 ++++ credential/cargo-credential-macos-keychain/src/lib.rs | 4 ++++ credential/cargo-credential-wincred/README.md | 4 ++++ credential/cargo-credential-wincred/src/lib.rs | 4 ++++ credential/cargo-credential/README.md | 3 +++ credential/cargo-credential/src/lib.rs | 3 +++ src/doc/contrib/src/team.md | 9 +++++++++ 33 files changed, 122 insertions(+), 20 deletions(-) create mode 100644 benches/benchsuite/README.md create mode 100644 crates/cargo-platform/README.md create mode 100644 crates/cargo-util-schemas/README.md create mode 100644 crates/cargo-util/README.md create mode 100644 crates/crates-io/README.md 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/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: