src/doc/contrib/src/process/rfc.md
Generally, an RFC goes through:
Please keep in mind our design principles.
For more concrete areas of consideration:
.cargo/config.toml and Cargo.toml.cargo/config.toml is for environment or transient configuration,
being dependent on what directory you are running from and settable on the command-line,
independent of other flags like --manifest-path or --package.
On the other hand Cargo.toml is for static, high-level project configuration.
For example,
[cfg] table to represent rustc
--cfg flags as it was a direct port of low-level rustc behavior that didn't
mesh with the other high level abstractions of manifests.
[lints] field configuration.Cargo.toml.Cargo.tomlWhen adding a table to a manifest,
workspace alignworkspace = true field doesn't conflict with other entries
workspace linterWhen adding a field,
version field) should be aligned across a workspace
However, frequently dependency features will vary across a workspace.workspace and a package interact?
features get mergeddefault-features has been hard to get right (#12162)When working extending dependencies tables:
cargo add or cargo remove?[patches] which are just modified dependencies?