Merge pull request #79976 from bhipple/feature/fetchcargo-readme
rust: Replace migration README with GitHub issue
This commit is contained in:
commit
6abb59c6ba
@ -1,45 +0,0 @@
|
|||||||
# Updated fetchCargo behavior
|
|
||||||
|
|
||||||
Changes to the `fetchcargo.nix` behavior that cause changes to the `cargoSha256`
|
|
||||||
are somewhat disruptive, so historically we've added conditionals to provide
|
|
||||||
backwards compatibility. We've now accumulated enough of these that it makes
|
|
||||||
sense to do a clean sweep updating hashes, and delete the conditionals in the
|
|
||||||
fetcher to simplify maintenance and implementation complexity. These
|
|
||||||
conditionals are:
|
|
||||||
|
|
||||||
1. When cargo vendors dependencies, it generates a config. Previously, we were
|
|
||||||
hard-coding our own config, but this fails if there are git dependencies. We
|
|
||||||
have conditional logic to sometimes copy the vendored cargo config in, and
|
|
||||||
sometimes not.
|
|
||||||
|
|
||||||
2. When a user updates the src package, they may forget to update the
|
|
||||||
`cargoSha256`. We have an opt-in conditional flag to add the `Cargo.lock`
|
|
||||||
into the vendor dir for inspection and compare at build-time, but it defaults
|
|
||||||
to false.
|
|
||||||
|
|
||||||
3. We were previously vendoring into a directory with a recursive hash, but
|
|
||||||
would like to vendor into a compressed tar.gz file instead, for the reasons
|
|
||||||
specified in the git commit message adding this feature.
|
|
||||||
|
|
||||||
|
|
||||||
## Migration plan
|
|
||||||
|
|
||||||
1. (DONE in this PR) Implement `fetchCargoTarball` as a separate, clean fetcher
|
|
||||||
implementation along-side `fetchcargo`. Rename `verifyCargoDeps` (default
|
|
||||||
false) to `legacyCargoFetcher` (default true), which switches the fetcher
|
|
||||||
implementation used. Replace `verifyCargoDeps = true;` with
|
|
||||||
`legacyCargoFetcher = false;` in Rust applications.
|
|
||||||
|
|
||||||
2. Send a treewide Rust PR that sets `legacyCargoFetcher = true;` in all Rust
|
|
||||||
applications not using this (which is ~200 of them), with a note to
|
|
||||||
maintainers to delete if updating the package. Change the default in
|
|
||||||
`buildRustPackage` to false.
|
|
||||||
|
|
||||||
3. Go through all Rust src packages deleting the `legacyCargoFetcher = false;`
|
|
||||||
line and re-computing the `cargoSha256`, merging as we go.
|
|
||||||
|
|
||||||
4. Delete the `fetchcargo.nix` implementation entirely and also remove:
|
|
||||||
- All overrides in application-level packages
|
|
||||||
- The `fetchcargo-default-config.toml` and conditionals around using it when
|
|
||||||
no `$CARGO_CONFIG` exists
|
|
||||||
- This README.md file
|
|
Loading…
x
Reference in New Issue
Block a user