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.
This commit is contained in:
Ed Page 2024-09-26 11:08:16 -05:00
parent d199f2e97c
commit 5c87c14f9a
35 changed files with 133 additions and 28 deletions

View File

@ -9,17 +9,19 @@ Cargo downloads your Rust projects dependencies and compiles your project.
[The Cargo Book]: https://doc.rust-lang.org/cargo/ [The Cargo Book]: https://doc.rust-lang.org/cargo/
[Cargo Contributor Guide]: https://rust-lang.github.io/cargo/contrib/ [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 ## 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) [![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)
Code documentation: <https://doc.rust-lang.org/nightly/nightly-rustc/cargo/> Code documentation: <https://doc.rust-lang.org/nightly/nightly-rustc/cargo/>
## Installing Cargo
Cargo is distributed by default with Rust, so if you've got `rustc` installed
locally you probably also have `cargo` installed locally.
## Compiling from Source ## Compiling from Source
### Requirements ### Requirements

View File

@ -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.

View File

@ -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)] #![allow(clippy::disallowed_methods)]
use cargo::GlobalContext; use cargo::GlobalContext;

View File

@ -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.

View File

@ -6,6 +6,9 @@
//! //!
//! See `examples/matches.rs` for an example of how to match against a `Platform`. //! 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 //! [`Platform`]: enum.Platform.html
use std::fmt; use std::fmt;

View File

@ -1,5 +1,3 @@
WARNING: You might not want to use this outside of Cargo. > This crate is maintained by the Cargo team, primarily for use by Cargo
> and not intended for external use. This
* This is designed for testing Cargo itself. Use at your own risk. > crate may make major changes to its APIs or be deprecated without warning.
* No guarantee on any stability across versions.
* No feature request would be accepted unless proved useful for testing Cargo.

View File

@ -3,11 +3,9 @@
//! This is meant to be consumed alongside `cargo-test-support`. See //! This is meant to be consumed alongside `cargo-test-support`. See
//! <https://rust-lang.github.io/cargo/contrib/> for a guide on writing tests. //! <https://rust-lang.github.io/cargo/contrib/> for a guide on writing tests.
//! //!
//! WARNING: You might not want to use this outside of Cargo. //! > This crate is maintained by the Cargo team, primarily for use by Cargo
//! //! > and not intended for external use. This
//! * This is designed for testing Cargo itself. Use at your own risk. //! > crate may make major changes to its APIs or be deprecated without warning.
//! * No guarantee on any stability across versions.
//! * No feature request would be accepted unless proved useful for testing Cargo.
use proc_macro::*; use proc_macro::*;
use std::path::Path; use std::path::Path;

View File

@ -1,5 +1,3 @@
WARNING: You might not want to use this outside of Cargo. > This crate is maintained by the Cargo team, primarily for use by Cargo
> and not intended for external use. This
* This is designed for testing Cargo itself. Use at your own risk. > crate may make major changes to its APIs or be deprecated without warning.
* No guarantee on any stability across versions.
* No feature request would be accepted unless proved useful for testing Cargo.

View File

@ -11,11 +11,9 @@
//! targeted at cargo contributors //! targeted at cargo contributors
//! - Updated on each update of the `cargo` submodule in `rust-lang/rust` //! - Updated on each update of the `cargo` submodule in `rust-lang/rust`
//! //!
//! **WARNING:** You might not want to use this outside of Cargo. //! > This crate is maintained by the Cargo team, primarily for use by Cargo
//! //! > and not intended for external use. This
//! * This is designed for testing Cargo itself. Use at your own risk. //! > crate may make major changes to its APIs or be deprecated without warning.
//! * No guarantee on any stability across versions.
//! * No feature request would be accepted unless proved useful for testing Cargo.
//! //!
//! # Example //! # Example
//! //!

View File

@ -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.

View File

@ -4,6 +4,9 @@
//! parsing command-lines. //! parsing command-lines.
//! Any logic for getting final semantics from these will likely need other tools to process, like //! Any logic for getting final semantics from these will likely need other tools to process, like
//! `cargo metadata`. //! `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 core;
pub mod manifest; pub mod manifest;

View File

@ -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.

View File

@ -1,4 +1,8 @@
//! Miscellaneous support code used by Cargo. //! 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)] #![allow(clippy::disallowed_methods)]

View File

@ -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.

View File

@ -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::collections::BTreeMap;
use std::fs::File; use std::fs::File;
use std::io::prelude::*; use std::io::prelude::*;

View File

@ -20,6 +20,10 @@ that Cargo and rustup store their data.
See [rust-lang/rust#43321]. 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 [rust-lang/rust#43321]: https://github.com/rust-lang/rust/issues/43321
## License ## License

View File

@ -16,6 +16,10 @@
//! //!
//! See also this [discussion]. //! 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 //! [discussion]: https://github.com/rust-lang/rust/pull/46799#issuecomment-361156935
#![allow(clippy::disallowed_methods)] #![allow(clippy::disallowed_methods)]

View File

@ -2,6 +2,10 @@
mdman is a small utility for creating man pages from markdown text files. 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 ## Usage
See the [man page](doc/out/mdman.md) generated by this tool. See the [man page](doc/out/mdman.md) generated by this tool.

View File

@ -1,4 +1,8 @@
//! mdman markdown to man converter. //! 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 anyhow::{bail, Context, Error};
use pulldown_cmark::{CowStr, Event, LinkType, Options, Parser, Tag, TagEnd}; use pulldown_cmark::{CowStr, Event, LinkType, Options, Parser, Tag, TagEnd};

View File

@ -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 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 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 ## About the test
The Cargo's resolver is very sensitive to what order it tries to evaluate constraints. This makes it incredibly difficult The Cargo's resolver is very sensitive to what order it tries to evaluate constraints. This makes it incredibly difficult

View File

@ -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)] #![allow(clippy::print_stderr)]
use std::cmp::{max, min}; use std::cmp::{max, min};

View File

@ -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`]. 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 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 [`cargo::ops::fix`]: https://github.com/rust-lang/cargo/blob/master/src/cargo/ops/fix.rs

View File

@ -18,6 +18,10 @@
//! 3. Create a [`CodeFix`] with the source of a file to modify. //! 3. Create a [`CodeFix`] with the source of a file to modify.
//! 4. Call [`CodeFix::apply`] to apply a change. //! 4. Call [`CodeFix::apply`] to apply a change.
//! 5. Call [`CodeFix::finish`] to get the result and write it back to disk. //! 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::collections::HashSet;
use std::ops::Range; use std::ops::Range;

View File

@ -2,6 +2,11 @@
A Cargo [credential provider] for [1password]. 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 ## Usage
`cargo-credential-1password` uses the 1password `op` CLI to store the token. You `cargo-credential-1password` uses the 1password `op` CLI to store the token. You

View File

@ -1,4 +1,9 @@
//! Cargo registry 1password credential process. //! 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::disallowed_methods)]
#![allow(clippy::print_stderr)] #![allow(clippy::print_stderr)]

View File

@ -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 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 [GNOME libsecret]: https://wiki.gnome.org/Projects/Libsecret
[credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html

View File

@ -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")] #[cfg(target_os = "linux")]
mod linux { mod linux {
//! Implementation of the libsecret credential helper. //! Implementation of the libsecret credential helper.

View File

@ -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 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 [macOS Keychain]: https://support.apple.com/guide/keychain-access/welcome/mac
[credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html

View File

@ -1,4 +1,8 @@
//! Cargo registry macos keychain credential process. //! 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)] #![allow(clippy::print_stderr)]

View File

@ -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 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 [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 [credential-provider]: https://doc.rust-lang.org/nightly/cargo/reference/registry-authentication.html

View File

@ -1,4 +1,8 @@
//! Cargo registry windows credential process. //! 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)] #[cfg(windows)]
mod win { mod win {

View File

@ -10,6 +10,9 @@ https://doc.rust-lang.org/nightly/cargo/reference/credential-provider-protocol.h
Example implementations may be found at Example implementations may be found at
https://github.com/rust-lang/cargo/tree/master/credential 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 ## Usage
Create a Cargo project with this as a dependency: Create a Cargo project with this as a dependency:

View File

@ -12,6 +12,9 @@
//! While in the `perform` function, stdin and stdout will be re-attached to the //! 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. //! 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 handling
//! ### [`Error::UrlNotSupported`] //! ### [`Error::UrlNotSupported`]
//! A credential provider may only support some registry URLs. If this is the case //! A credential provider may only support some registry URLs. If this is the case

View File

@ -7,9 +7,10 @@
//! - <https://doc.rust-lang.org/nightly/nightly-rustc/cargo>: targeted at cargo contributors //! - <https://doc.rust-lang.org/nightly/nightly-rustc/cargo>: targeted at cargo contributors
//! - Updated on each update of the `cargo` submodule in `rust-lang/rust` //! - 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, //! > This library is maintained by the Cargo team, primarily for use by Cargo
//! and there is no clear path to stabilize it soon at the time of writing. See [The Cargo Book: //! > and not intended for external use (except as a transitive dependency). This
//! External tools] for more on this topic. //! > crate may make major changes to its APIs. See [The Cargo Book:
//! > External tools] for more on this topic.
//! //!
//! ## Overview //! ## Overview
//! //!

View File

@ -166,6 +166,15 @@ The degree of process is correlated with the degree of change being proposed:
[Stable backports]: process/release.md#stable-backports [Stable backports]: process/release.md#stable-backports
[SemVer chapter]: https://doc.rust-lang.org/cargo/reference/semver.html [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 ## Contacting the team
The team may be contacted through several channels: The team may be contacted through several channels: