CANCELLED
CANCELLED
Dirty
messages were only displayed with --verbose
, then they can be difficult to find in the sea of Running
messages.
Dirty
is only displayed with --verbose
, it shouldn't be too difficult to sift through the output when doing an investigation.@weihanglo: Unavailable. Conflict with other meeting
epage: https://github.com/rust-lang/cargo/pull/11312#
cargo:warning+=second line
syntax support (epage is in favor)
cargo:error=
automatically cause the build script to error or not (previously, we said it should)
error
should be used (under no circumstances can it proceed)build.rs
directives due to cargo:KEY=VALUE
support
$CARGO_EDITION
[package]
, not target, so can assume a single editioncargo::
Question about sparse registry feedback. Eric to follup up with the summary.
arlosi: registry-auth
without asymmetric tokens: zulip
sparse
?)
cargo update
--precise
or --aggressive
without -p
flag
--precise
field and updates everything.--agressive
is a bit different from --precise
. --precise
takes a field, which has no meaning without -p
. --aggressive
is the "default" behavior, so adding it really doesn't cause any harm.
--aggressive
even be a warning?--precise
an error now.
--aggressive
could be left as a warning.crate.xz
or .crate2
or .cr8
or whatever).Cargo.toml
could change the dependency requirements, requiring re-running the resolver.
Cargo.toml
, and possibly add support for that later. It may add significant complexity to cargo, compared to the rest of this RFC.CARGO_ENCODED_RUSTFLAGS
and there is also --config
.--all-targets
will probably need to be renamedcargo add
could add pre-releases with an equal by default^1.0.0-beta.1
works as it does today.1.0.0-beta.1
is treated as =1.0.0-beta.1
resolver="3"
is a global thing which might not be the right way to opt-in to this.
Cargo.toml
file.=
make it too difficult to update dependencies due to small differences?
=
), but we currently don't support that.cargo publish
, with an option to override.cargo outdated
would provide that (and also cargo upgarde
's dry-run?). Would that maybe help alleviate the difficulty of using =
pre-releases? Because otherwise, the existence of new pre-releases isn't very visible.config.json
could be a mechanism for opting-in to the merkle structure. Branching and depth factors could be parameters in the config.json.[[bin]]
[[bin]]
, which can then be used with optional dependencies to implement the same behavior as 2887.required-features
enables features.enable-features = […]
force enables the given features when the binary is included.force-enable-features = true
would change the meaning of required-features
select
vs depends
in the Linux kernel's Kconfig language--bin
and required-features
, change it so that it enables the features instead of generating an error.
--bin
) or the required-features are enabld otherwise.default-install-features = […]
cargo run
, there is an implicit binary associated with thatcargo test
and cargo bench
can build binaries, and there isn't an explicit choice for those binaries being givencargo test
will enable additional features for binaries, which isn't the set of features that are default for the library. cargo test --lib
would be a workaround, but may not be clear to userscargo install
saying what is excluded due to required-features.
myexample
requires the features: myfeature
, another
" could suggest using enable-features
instead. (That error message is not good, and we should possibly continue to think about just removing it and imply --features
, but that seems somewhat independent.)default-feaures
to workspace dependencies derived from issue #11329
foo = {workspace=true, default-features=false}
is not generating a warning about specifying default-features=false
. Scott is working on a fix for that.default-features=false
, and if you inherit a workspace dependency, the default-features
needs to match what is specified in [workspace.dependencies]
, and if it doesn't, warn.
--style-edition
flag to cargo fmt
epage: unavailable
--package
and feature resolve v2
--token
to other subcommands?
cargo package
and extract the result.
$CARGO
when Cargo is used as a library
current_exe()
which is the wrong thing from a library.cargo
cargo
(so as not to affect other things). Tradeoff: could make existing build scripts work that way, but would be more complex.
cargo-mysubcommand
, and the build script will run the wrong thing.
~/.cargo/bin/cargo
).CARGO_BIKESHED
(for some value of BIKESHED
)cargo fix
something that should be added now?
cargo fix
workflow can be a little bumpy. Particularly, --allow-dirty
is a roadbump.
--allow-dirty
, or should --allow-dirty
be the default?warning: `foo` (lib) generated 1 warning (run `cargo fix --lib -p foo` to apply 1 suggestion)
cargo fix
(without flags) what users would normally run?home
to rust-lang org
home
so people stop using it ouside of cargo's needs
HOME
on Windows which doesn't work right on cygwincargo_home
std
version.unsafe
from a function can cause unused_unsafe
lint to fire. If the package has deny(unused_unsafe)
, it will then fail to compile.
must_use
, though I think those almost certainly should be allowed.Cargo.lock
for /library
in the rust repoCargo.toml
itself
-Z
Cargo.toml
?%
encoding in Cargo.toml
today (does it get unescaped, or is it broken?)cargo fix
could corrupt code when there are errors, so we can limit the hint to warningscargo fix
will error because the tree is dirty, can we instead remove that? I stopped using cargo fix
as part of edition migration because of this flag-p
, --tests
, --lib
--allow-dirty
? Always mention it? make it default?
[registries.crates-io]
protocol = "sparse"
crates-io
sub-table is novel, and might be confusing with [registry]
.[source]
or [net]
protocol
field could potentially be used for other registries, but there is no plan for that, and that might be over-engineered.cargo build -O
, see https://github.com/rust-lang/rust/issues/57968#issuecomment-1208772020tf
--profile dev-opt
.cargo install
or cargo publish
cargo publish
?Cargo.lock
and is difficult to get visibility.config.json
ahead of time to know that mapping.Cargo.lock
and .crate
files.config.json
could indicate what the "lock" URL is.
[source.crates-io]
points to private[source]
config would be broken.index="http://example.com"
. Now, all Cargo.lock
files have example.com
in them instead of crates.io
.http://example.com
, just ask for the config file.
config.json
first, and if that fails, assume it is git.cargo install
and cargo publish
mem::transmute
on private libstd types (std::net
types)
resolver
if edition<2021 and resolver=1cargo install
—locked by default)
cargo install
.)cargo outdated
-like view for cargo update
would provide a natural way to clarify that a dependency was held back and why (cargo upgrade just added this view, just not rust-version support yet)cargo add
or cargo update
or whatever, provide better error messages (or behavior) when comparing the rust-version.-j
-j cpus-2
-J
-1
means auto-1
means max-1
*
means something different in the future.[profile.build]
would that be any less confusing?
build-override
should then almost never need to be used.package.*
and build-override
are both set, that one is overriding the other.cargo
is run in an automated fashion (e.g. metadata
, locate-project
)su
and probably have more complex root prompts than they shouldsudo
on their files now workscargo add
display)_feature-foo
underscores and kebab-case. Might pressure someone to use underscores instead of dashes.default-features
[workspace.package]
resolver =
"``2``"
cargo new
for workspace could set the defaultpackage
doesn’t scream that this means “these can be reused in the workspace”, and might be confusing (subtle difference between [workspace.package]
and [package]
that is very different)[workspace.package]
table in one go (or all dependencies, etc.)env!
). For example, cargo-bisect-rustc embeds the absolute path of RUST_SRC_REPO
.--remap-path-prefix
to clang or gcc
-fdebug-prefix-map
-fmacro-prefix-map
: Similar to debug, but handles __FILE__
macros-ffile-prefix-map
: alias for debug and macro--locked
is involved. Repro steps don’t include clearing the registry cache, so not sure why any network requests are being made.cargo rustc --crate-type
flag:
timings = ['html']
in config, waiting on checkmarks