Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document cargo remove #11227

Merged
merged 1 commit into from
Oct 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/bin/cargo/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,7 @@ Some common cargo commands are (see all commands with --list):
new Create a new cargo package
init Create a new cargo package in an existing directory
add Add dependencies to a manifest file
remove Remove dependencies from a manifest file
run, r Run a binary or example of the local package
test, t Run the tests
bench Run the benchmarks
Expand Down
2 changes: 1 addition & 1 deletion src/doc/man/cargo-add.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,4 @@ which enables all specified features.
cargo add serde serde_json -F serde/derive

## SEE ALSO
{{man "cargo" 1}}
{{man "cargo" 1}}, {{man "cargo-remove" 1}}
92 changes: 92 additions & 0 deletions src/doc/man/cargo-remove.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# cargo-remove(1)
{{*set actionverb="Remove"}}
{{*set nouns="removes"}}

## NAME

cargo-remove - Remove dependencies from a Cargo.toml manifest file

## SYNOPSIS

`cargo remove` [_options_] _dependency_...

## DESCRIPTION

Remove one or more dependencies from a `Cargo.toml` manifest.

## OPTIONS

### Section options

{{#options}}

{{#option "`--dev`" }}
Remove as a [development dependency](../reference/specifying-dependencies.html#development-dependencies).
{{/option}}

{{#option "`--build`" }}
Remove as a [build dependency](../reference/specifying-dependencies.html#build-dependencies).
{{/option}}

{{#option "`--target` _target_" }}
Remove as a dependency to the [given target platform](../reference/specifying-dependencies.html#platform-specific-dependencies).
{{/option}}

{{/options}}

### Miscellaneous Options

{{#options}}

{{#option "`--dry-run`" }}
Don't actually write to the manifest.
{{/option}}

{{/options}}

### Display Options

{{#options}}
{{> options-display }}
{{/options}}

### Manifest Options

{{#options}}
{{> options-manifest-path }}

{{> options-locked }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although cargo rm technically accepts --locked/--frozen, I don't think it should be documented here because it prevents cargo rm from working. It is somewhat a bug that --locked/--frozen are global flags. They should have been added on a per-command basis, but that may be difficult to fix now.

This may require separating --offline from options-locked.md so that it can be kept. (See also #11237)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can certainly move --offline from options-locked.md to resolve that. Is that something you'd like in a separate PR?

Ideally I imagine we'd make that change at the same time we make --locked/--frozen not global, so that the problem is fixed and documentation is correctly maintained, but maybe that's not a problem worth solving right now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

side note: I think whatever we do, the shell completions should match the docs (see #11204)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is that something you'd like in a separate PR?

Either here or separate is fine with me. Maybe separate might be better if it involves changing a lot of files?

{{/options}}

### Package Selection

{{#options}}

{{#option "`-p` _spec_..." "`--package` _spec_..." }}
Package to remove from.
{{/option}}

{{/options}}

{{> section-options-common }}

{{> section-environment }}

{{> section-exit-status }}

## EXAMPLES

1. Remove `regex` as a dependency

cargo remove regex

2. Remove `trybuild` as a dev-dependency

cargo remove --dev trybuild

3. Remove `nom` from the `x86_64-pc-windows-gnu` dependencies table

cargo remove --target x86_64-pc-windows-gnu nom

## SEE ALSO
{{man "cargo" 1}}, {{man "cargo-add" 1}}
2 changes: 1 addition & 1 deletion src/doc/man/generated_txt/cargo-add.txt
Original file line number Diff line number Diff line change
Expand Up @@ -188,5 +188,5 @@ EXAMPLES
cargo add serde serde_json -F serde/derive

SEE ALSO
cargo(1)
cargo(1), cargo-remove(1)

138 changes: 138 additions & 0 deletions src/doc/man/generated_txt/cargo-remove.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
CARGO-REMOVE(1)

NAME
cargo-remove - Remove dependencies from a Cargo.toml manifest file

SYNOPSIS
cargo remove [options] dependency...

DESCRIPTION
Remove one or more dependencies from a Cargo.toml manifest.

OPTIONS
Section options
--dev
Remove as a development dependency
<https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#development-dependencies>.

--build
Remove as a build dependency
<https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#build-dependencies>.

--target target
Remove as a dependency to the given target platform
<https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies>.

Miscellaneous Options
--dry-run
Don't actually write to the manifest.

Display Options
-v, --verbose
Use verbose output. May be specified twice for "very verbose" output
which includes extra output such as dependency warnings and build
script output. May also be specified with the term.verbose config
value <https://doc.rust-lang.org/cargo/reference/config.html>.

-q, --quiet
Do not print cargo log messages. May also be specified with the
term.quiet config value
<https://doc.rust-lang.org/cargo/reference/config.html>.

--color when
Control when colored output is used. Valid values:

o auto (default): Automatically detect if color support is
available on the terminal.

o always: Always display colors.

o never: Never display colors.

May also be specified with the term.color config value
<https://doc.rust-lang.org/cargo/reference/config.html>.

Manifest Options
--manifest-path path
Path to the Cargo.toml file. By default, Cargo searches for the
Cargo.toml file in the current directory or any parent directory.

--frozen, --locked
Either of these flags requires that the Cargo.lock file is
up-to-date. If the lock file is missing, or it needs to be updated,
Cargo will exit with an error. The --frozen flag also prevents Cargo
from attempting to access the network to determine if it is
out-of-date.

These may be used in environments where you want to assert that the
Cargo.lock file is up-to-date (such as a CI build) or want to avoid
network access.

--offline
Prevents Cargo from accessing the network for any reason. Without
this flag, Cargo will stop with an error if it needs to access the
network and the network is not available. With this flag, Cargo will
attempt to proceed without the network if possible.

Beware that this may result in different dependency resolution than
online mode. Cargo will restrict itself to crates that are
downloaded locally, even if there might be a newer version as
indicated in the local copy of the index. See the cargo-fetch(1)
command to download dependencies before going offline.

May also be specified with the net.offline config value
<https://doc.rust-lang.org/cargo/reference/config.html>.

Package Selection
-p spec..., --package spec...
Package to remove from.

Common Options
+toolchain
If Cargo has been installed with rustup, and the first argument to
cargo begins with +, it will be interpreted as a rustup toolchain
name (such as +stable or +nightly). See the rustup documentation
<https://rust-lang.github.io/rustup/overrides.html> for more
information about how toolchain overrides work.

--config KEY=VALUE or PATH
Overrides a Cargo configuration value. The argument should be in
TOML syntax of KEY=VALUE, or provided as a path to an extra
configuration file. This flag may be specified multiple times. See
the command-line overrides section
<https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides>
for more information.

-h, --help
Prints help information.

-Z flag
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for
details.

ENVIRONMENT
See the reference
<https://doc.rust-lang.org/cargo/reference/environment-variables.html>
for details on environment variables that Cargo reads.

EXIT STATUS
o 0: Cargo succeeded.

o 101: Cargo failed to complete.

EXAMPLES
1. Remove regex as a dependency

cargo remove regex

2. Remove trybuild as a dev-dependency

cargo remove --dev trybuild

3. Remove nom from the x86_64-pc-windows-gnu dependencies table

cargo remove --target x86_64-pc-windows-gnu nom

SEE ALSO
cargo(1), cargo-add(1)

1 change: 1 addition & 0 deletions src/doc/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
* [cargo locate-project](commands/cargo-locate-project.md)
* [cargo metadata](commands/cargo-metadata.md)
* [cargo pkgid](commands/cargo-pkgid.md)
* [cargo remove](commands/cargo-remove.md)
* [cargo tree](commands/cargo-tree.md)
* [cargo update](commands/cargo-update.md)
* [cargo vendor](commands/cargo-vendor.md)
Expand Down
2 changes: 1 addition & 1 deletion src/doc/src/commands/cargo-add.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,4 +231,4 @@ details on environment variables that Cargo reads.
cargo add serde serde_json -F serde/derive

## SEE ALSO
[cargo(1)](cargo.html)
[cargo(1)](cargo.html), [cargo-remove(1)](cargo-remove.html)
Loading