3 ms·
> For projects with native bindings you can still fairly trivially solve this with SBOMs For bitwise identical results there are many small details that need t
by akoboldfrying 2mo ago
> For projects with native bindings you can still fairly trivially solve this with SBOMs
For bitwise identical results there are many small details that need to be taken care of, even in the pure-Python case: Ensuring that files appear in the wheel (zip) file in the same order (glob() doesn't guarantee this and you can definitely see different orders from run to run), timestamps are set to some fixed standard time. Any kind of build-time code generation or pulling in of external info like git commit hashes needs to be handled. Then once you include compiled build dependencies, there might be nondeterminism in the order that a multithreaded compiler writes object code, hidden timestamps, hidden absolute paths, and things like runtime detection of CPU version leading to different instructions being emitted on different machines.
- kpcyrd 2mo agoI'm well aware of those issues (having worked on this for many years), but I still believe the majority of python packages won't be affected by this. :) Most of these you would fix once on the relevant [build-system] and be done with it, no need to fix each individual python library.