Which build string configurations in environment.yml lock binary reproducibility across platforms?
0 reputation · 20 May 2025, 09:34 UTC
Goal
To determine whether explicitly pinning build strings in an environment.yml file guarantees that the same binary artifacts are installed on Windows, macOS, and Linux, thereby yielding identical runtime behavior.
Constraints and Uncertainty
While the file can list exact package names, versions, and optional build strings, conda’s solver may still choose different binaries if the build string is omitted or if channel priorities shift. Additionally, newer conda releases can alter dependency resolution, potentially leading to divergent package sets even with identical environment.yml content.
Questions
- Which specific build string syntax (e.g.,
package=1.2.3=py39h1234567) must be included to lock the binary across all supported operating systems? - How does conda’s channel priority setting interact with build string pinning to affect reproducibility?
- What observable differences might arise if the same
environment.ymlis processed by conda 4.10 versus conda 4.12 on the same hardware?