| 25 Mar 2025 |
Toma | it will not fetch from the cache because the name is different | 13:50:56 |
emily | as in, defaulting useFetchCargoVendor = true would invalidate the cache even with the same hashes? right, makes sense | 13:51:19 |
emily | could we do anything to detect old hashes? | 13:51:42 |
emily | I guess probably not. so maybe it is okay for them to just fail with a mismatch | 13:51:57 |
Toma | yea | 13:52:07 |
emily | I was hoping we could print out a more useful message so people don't just go "why is my hash invalidated??" but I guess people are somewhat used to hashes changing anyway :P | 13:52:31 |
Toma | is the breaking rust version backported btw? | 13:52:43 |
emily | ok, then I guess we can just do useFetchCargoVendor ? true, assert lib.assertMsg useFetchCargoVendor "buildRustPackage: useFetchCargoVendor is now the only option" | 13:53:14 |
emily | we never backport Rust versions as rustc | 13:53:28 |
emily | we add separate packages if necessary | 13:53:49 |
emily | (AIUI) | 13:53:50 |
Toma | seems fine | 13:54:02 |
emily | we might want to deprecate/remove the useless useFetchCargoVendor at some point, but that can probably wait | 13:54:42 |
emily | as long as the docs don't tell people to add it | 13:54:51 |
Toma | btw what will happen on 24.11? | 13:55:59 |
emily | I assume nothing? but I'm not sure what you're asking | 13:56:21 |
emily | 24.11 is on whatever Rust version it released with for its lifespan | 13:56:27 |
emily | even if we add rustc_1_85 in the next few months, it won't be default, so there'd be no breaking change (I guess we'd have to backport the new machinery in that case) | 13:56:57 |
Toma | let's say we make useFetchCargoVendor default now, will we backport that or no? | 13:57:52 |
emily | no | 13:58:05 |
emily | we don't backport breaking changes | 13:58:12 |
emily | is useFetchCargoVendor even in 24.11? | 13:58:15 |
Toma | yes, I believe | 13:58:25 |
emily | right | 13:58:32 |
emily | is your concern that people need to be able to write packages compatible with both 24.11 and 25.05? | 13:58:41 |
emily | I believe they can do that by setting it explicitly to true. | 13:58:58 |
emily | we can't avoid 25.05 having a breaking change from 24.11, because 1.85 already broke all the hashes | 13:59:03 |
Toma | True, and they will get warned anyways | 13:59:10 |
emily | so since we're locked in to a breaking change, we should make it the safest and most ergonomic one that avoids old hashes being used from the cache and makes things work without setting a flag manually | 13:59:21 |
emily | shipping with useFetchCargoVendor = false; as the default means either (a) dangerous reuse of cached FODs that now don't reproduce, if we keep the old mechanism or (b) if we remove the old mechanism (which I think we ought to), you have to set a flag on every Rust package just to get it to eval, which is silly | 14:00:15 |