Hi Maxime, similar discussions have been had in the past, but thanks for raising them again. As far as I'm aware, the "consensus" – if it can be called such – is that due to Rust packages often being a giant nothing burger both in terms of what they actually do and in what can be used for subsequent builds, but still generating a lot of hot air literally when evaluated on CI, we ought to skip the build in intermediate packages.
There are a few counter-proposals. One suggestion that has been raised, but not yet implemented, would be to make it so that build results can actually be reused. This is the most promising conceptually, but from what I can gather from those working on it might not be that easy to pull off. Another one I recently thought about myself would be to demote these packages to origins, which they in fact are. This could fairly easily be done by simply allowing an optional license field in origins, but we'd have to apply a special trick to get back the recursive unpacking. Basically, what we'd have to do is for e.g. rust-serde, (define rust-serde (append (list rust-serde-origin) other-origins ...) where other-origins ... are the "packages" rust- serde pulls in, add those to inputs via append and then unpack all of them in an "unpack-all-those-crates" phase to be added to cargo-build- system. I am probably missing further proposals that have been made over time. In any case, #:skip-build? is far from being the right thing we typically aim for, and I support every attempt to remove it that allows us to meet our climate goals. Cheers