You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From security standpoint it would be great to have reproducible (byte-for-byte) release builds, however this issue is not about this (but is a prerequisite thereof).
DataFusion downstream consumers consume DataFusion source code, via crates or forking.
Im both these situations it would be great to guarantee that a given release actually builds, not only at the moment of the release.
A release compiles and works correctly (including passing test). Ideally it also passes clippy.
This is beneficial to anyone consuming a DataFusion code. People running a permanent fork likely mostly figured how to solve this already, but that would be very beneficial to anyone running a particular DataFusion version and wanting to fix a bug. Being able to check out code for the version they use and reproduce the bug there is really good first step, but this requires that the code works.
Proposed solution: commit Cargo.lock to the repository.
Lack of Cargo.lock in the repo gives some benefit (checking with latest versions of unpinned deps automatically). This can be provided with a CI job. I.e. make this a machine problem, not a human (consumer) problem.
Proposed solution: commit Cargo.lock to the repository. Lack of Cargo.lock in the repo gives some benefit (checking with latest versions of unpinned deps automatically). This can be provided with a CI job. I.e. make this a machine problem, not a human (consumer) problem.
Great. This probably would solve the biggest issue with re-buildable releases.
Some other stuff of similar kind is using pinned vs latest stable rust version.
Activity
findepi commentedon Feb 4, 2025
Proposed solution: commit
Cargo.lockto the repository.Lack of
Cargo.lockin the repo gives some benefit (checking with latest versions of unpinned deps automatically). This can be provided with a CI job. I.e. make this a machine problem, not a human (consumer) problem.mbrobbel commentedon Feb 4, 2025
#14135
alamb commentedon Feb 4, 2025
As @mbrobbel says, I agree it is time to put Cargo.lock int he repo:
findepi commentedon Feb 4, 2025
Great. This probably would solve the biggest issue with re-buildable releases.
Some other stuff of similar kind is using pinned vs latest stable rust version.
alamb commentedon Feb 5, 2025
I think this can be set using a
rust-toolchain.tomlfile, for example https://github.com/influxdata/influxdb/blob/main/rust-toolchain.tomlfindepi commentedon Feb 5, 2025
Let's do this. we upgrade compiler version manually anyway, so we can update one more place i believe.
alamb commentedon Feb 7, 2025
It would help us in InfluxDB too as it we have a patched version of DataFusion we keep around too.
I'll try and make a PR for it over the next few days if no one beats me to it
alamb commentedon Feb 14, 2025
Here is a proposed PR: