feat (publish): deprecate --token option#16046
Conversation
b72c7a4 to
30a29b4
Compare
There was a problem hiding this comment.
Not sure if we also want to update our test
cargo/tests/testsuite/publish.rs
Line 208 in 029de48
There was a problem hiding this comment.
I was under impression that this test checks something specific to the cmd option, so wasn't sure about changing it except for adding a warning message 🤔
There was a problem hiding this comment.
Anyway, it is fine keeping as-is.
| This command requires you to be authenticated with either the `--token` option | ||
| or using [cargo-login(1)](cargo-login.html). | ||
| This command requires you to be authenticated using [cargo-login(1)](cargo-login.html) | ||
| or [environment variables](../reference/environment-variables.html). |
There was a problem hiding this comment.
Probably instead of pointing to the entire env doc, we make the link a bit precise to relevant config fields. What do you think?
| or [environment variables](../reference/environment-variables.html). | |
| or environment variables of the [`registry.token`](../reference/config.html#registrytoken) | |
| and [`registries.<name>.token`](../reference/config.html#registriesnametoken) config fields. |
Though I am still wanting something similar to this happening: https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Anchors.20for.20each.20environment.20variable.20in.20The.20Cargo.20Book
There was a problem hiding this comment.
Perhaps related:
Can be overridden with the --token command-line option.
This in both registry.token and registries.<name>.token doc might need to remove
There was a problem hiding this comment.
Thanks for the edit, I missed the fact that config page has direct mentions of env variables with links 😥
As for
This in both registry.token and registries..token doc might need to remove
I would not do it in this PR, because --token is still used in yank and owner commands. Let's postpone it until the deprecation is done in all places.
There was a problem hiding this comment.
I overlooked in completion code we also want to hide --token
Line 254 in 029de48
cargo/src/etc/cargo.bashcomp.sh
Line 76 in 029de48
Fine with either dealing with it in this or a follow-up
There was a problem hiding this comment.
Updated, thanks for reminder. I, as a Windows user, haven't even thought of autocomplete 😅
There was a problem hiding this comment.
We have unstable native completion support also for powershell, if you're a user and wanna try: https://doc.rust-lang.org/cargo/reference/unstable.html#native-completions
Head branch was pushed to by a user without write access
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
Update cargo submodule 22 commits in 801d9b4981dd07e3aecdca1ab86834c13615737e..81c3f77a467359c8be6bc747dc93ec66a6e4ce11 2025-10-04 13:30:15 +0000 to 2025-10-10 18:41:02 +0000 - docs(changelog): literal host-tuple support (rust-lang/cargo#16033) - refactor: Define cargo script's target-dir using build-dir templating (rust-lang/cargo#16073) - feat(build-dir): Reorganize build-dir layout (rust-lang/cargo#15947) - refactor: unflatten `(String, Def)` to `ConfigValue` (rust-lang/cargo#16084) - fix(tree): Switch from `--depth public` to `--edges public` (rust-lang/cargo#16081) - docs(guide): Point out tools for reducing dependencies (rust-lang/cargo#16078) - Allow to rustfix unused_variables lint. (rust-lang/cargo#16082) - Fix test that assumes `CARGO_CFG_TARGET_FAMILY` is a single value (rust-lang/cargo#16079) - Fix regression that swallowed json diagnostic explanations (rust-lang/cargo#16075) - docs(ref): fix link to clippy incompatible_msrv lint (rust-lang/cargo#16077) - Convert a few more diagnostics to reports (rust-lang/cargo#16066) - fix(support): Add track_caller to know the actual failure (rust-lang/cargo#16069) - fix(add): Report a missing source error for workspace dependencies (rust-lang/cargo#16063) - fix(script): Default bin.name to package.name (rust-lang/cargo#16064) - refactor(gctx): ConfigValue getter cleanup (rust-lang/cargo#16067) - Fix unsafe_op_in_unsafe_fn for Windows (rust-lang/cargo#16058) - Consider public dependencies when choosing a version in cargo add (rust-lang/cargo#1… (rust-lang/cargo#15966) - docs: clarify panic-immediate-abort can be used in config (rust-lang/cargo#16054) - fix(timings): compute codegen start time to draw dep lines (rust-lang/cargo#16055) - chore: Added tracing span for build script execution (rust-lang/cargo#16053) - test: null-terminated path for reserved windows name detection (rust-lang/cargo#16052) - feat (publish): deprecate `--token` option (rust-lang/cargo#16046) r? ghost
What does this PR try to resolve?
Closes #15274
This PR adds a warning when
--tokenoption is used withcargo publishcommand.This PR removes
--tokenfrom help and docs for publish command.There's an
--indexoption that still requires--tokento be specified, but addressing that is not the part of this PR.How to test and review this PR?
Please check changed test cases to see how behavior changes.