Skip to content

Commit

Permalink
docs: Declare support level for each crate in our Charter / docs
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
epage committed Sep 26, 2024
1 parent bf2988f commit f2f6aa6
Show file tree
Hide file tree
Showing 35 changed files with 133 additions and 23 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 3 additions & 0 deletions benches/benchsuite/README.md
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 4 additions & 0 deletions benches/benchsuite/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
2 changes: 2 additions & 0 deletions crates/cargo-platform/README.md
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions crates/cargo-platform/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 3 additions & 5 deletions crates/cargo-test-macro/README.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 3 additions & 5 deletions crates/cargo-test-macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
//! This is meant to be consumed alongside `cargo-test-support`. See
//! <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 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;
Expand Down
8 changes: 3 additions & 5 deletions crates/cargo-test-support/README.md
Original file line number Diff line number Diff line change
@@ -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.
8 changes: 3 additions & 5 deletions crates/cargo-test-support/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
//!
Expand Down
2 changes: 2 additions & 0 deletions crates/cargo-util-schemas/README.md
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions crates/cargo-util-schemas/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions crates/cargo-util/README.md
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 4 additions & 0 deletions crates/cargo-util/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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)]

Expand Down
2 changes: 2 additions & 0 deletions crates/crates-io/README.md
Original file line number Diff line number Diff line change
@@ -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.
3 changes: 3 additions & 0 deletions crates/crates-io/lib.rs
Original file line number Diff line number Diff line change
@@ -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::*;
Expand Down
4 changes: 4 additions & 0 deletions crates/home/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions crates/home/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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)]
Expand Down
4 changes: 4 additions & 0 deletions crates/mdman/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
4 changes: 4 additions & 0 deletions crates/mdman/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
4 changes: 4 additions & 0 deletions crates/resolver-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions crates/resolver-tests/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand Down
4 changes: 4 additions & 0 deletions crates/rustfix/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 4 additions & 0 deletions crates/rustfix/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
5 changes: 5 additions & 0 deletions credential/cargo-credential-1password/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions credential/cargo-credential-1password/src/main.rs
Original file line number Diff line number Diff line change
@@ -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)]
Expand Down
4 changes: 4 additions & 0 deletions credential/cargo-credential-libsecret/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 4 additions & 0 deletions credential/cargo-credential-libsecret/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
4 changes: 4 additions & 0 deletions credential/cargo-credential-macos-keychain/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

4 changes: 4 additions & 0 deletions credential/cargo-credential-macos-keychain/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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)]

Expand Down
4 changes: 4 additions & 0 deletions credential/cargo-credential-wincred/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 4 additions & 0 deletions credential/cargo-credential-wincred/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
3 changes: 3 additions & 0 deletions credential/cargo-credential/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
3 changes: 3 additions & 0 deletions credential/cargo-credential/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 4 additions & 3 deletions src/cargo/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@
//! - <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`
//!
//! **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
//!
Expand Down
9 changes: 9 additions & 0 deletions src/doc/contrib/src/team.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit f2f6aa6

Please sign in to comment.