| 25 Mar 2025 |
Toma | I don't think so | 14:04:56 |
emily | I am wondering if it makes sense to allow fetchCargoVendor to be driven by a Cargo.lock to avoid maintaining two paths for all of this altogether. but that's not release-blocking | 14:07:20 |
Toma | after my last few migrations to fetchCargoVendor get merged, almost all other packages that still have a Cargo.lock vendored do it because of upstream not publishing it | 14:07:29 |
Toma | not sure I understand | 14:08:08 |
emily | we could have a mode where you supply a Cargo.lock and a hash, right? | 14:08:38 |
emily | which would meet the "no upstream Cargo.lock" use case and ~obsolete importCargoLock | 14:08:53 |
Toma | I guess very much like with fetchYarnDeps | 14:09:44 |
Toma | but for historical reasons almost everyone uses ${src}/yarn.lock instead of inherit src there (it's not IFD, since it only uses that in the build process) | 14:10:37 |
emily | https://github.com/NixOS/nixpkgs/blob/15f3d37c73c8c1090f8fef7b8508675c9260eab6/pkgs/build-support/rust/import-cargo-lock.nix
- https://github.com/NixOS/nixpkgs/blob/15f3d37c73c8c1090f8fef7b8508675c9260eab6/pkgs/build-support/rust/replace-workspace-values.py
isn't a trivial maintenance burden, so if 25.05 is doing breaking changes anyway, it might be best to eliminate it
| 14:11:05 |
emily | * https://github.com/NixOS/nixpkgs/blob/15f3d37c73c8c1090f8fef7b8508675c9260eab6/pkgs/build-support/rust/import-cargo-lock.nix
+ https://github.com/NixOS/nixpkgs/blob/15f3d37c73c8c1090f8fef7b8508675c9260eab6/pkgs/build-support/rust/replace-workspace-values.py
isn't a trivial maintenance burden, so if 25.05 is doing breaking changes anyway, it might be best to eliminate it | 14:11:09 |
emily | ah I guess we use the latter in fetchCargoVendor too | 14:11:34 |
emily | so it's not so bad | 14:11:35 |
emily | but it still seems better to just consolidate | 14:11:45 |
Toma | if still thinking of how we could replace depsExtraArgs with a better alterative | 14:12:27 |
Toma | * if still thinking of how we could replace depsExtraArgs with a better alterative (semi related) | 14:13:03 |
emily | it looks like we could add lockFileContents ? null and lockFile ? null to fetchCargoVendor, and simply replace ./Cargo.lock with ${if lockFile != null then "${lockFile}" else if lockFileContents != null then writeText … else "./Cargo.lock"} | 14:13:47 |
emily | I guess the downside is for "local" flakes with Rust packages though | 14:14:20 |
emily | so maybe it is not a good idea, even if it is better for Nixpkgs | 14:14:32 |
Toma | btw we're still using replace-workspace-values.py in fetchCargoVendor | 14:14:42 |
emily | yeah I saw :) | 14:14:48 |
emily | anyway, ok, this is a distraction. if we want to do that we can do it another release anyway | 14:15:16 |