Merge pull request #79976 from bhipple/feature/fetchcargo-readme
rust: Replace migration README with GitHub issue
This commit is contained in:
commit
6abb59c6ba
1 changed files with 0 additions and 45 deletions
|
@ -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…
Reference in a new issue