Add helpful warnings upon differing environment manager versions - #18
Merged
Conversation
lyskov
pushed a commit
to RosettaCommons/rosetta
that referenced
this pull request
Aug 5, 2026
…on records (#747) This quick PR adds a caching mechanism for the configured environment manager's version string in the *PyRosettaCluster* full simulation record. The captured version string facilitates environment reproducibility when using Pixi or uv, as described in the accompanying PR: RosettaCommons/pyrosetta-extras#18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If a user is running a different
pixioruvenvironment manager version than the one used to generate thepixi.lockoruv.lockfile cached in the PyRosettaCluster full simulation record, then downstream PyRosettaCluster environment validation during reproduction simulations may fail, even if the resolved dependencies are equivalent, due to differences in the generated lockfile serialization format. This scenario may fail because PyRosettaCluster validates bitwise identity between the original lockfile and the recreated one, and the lockfile format may change betweenpixioruvreleases without changing the resolved dependency graph. Thus, thepixioruvversion becomes part of the reproducibility contract, since toolchain provenance influences the generated lockfile artifact. This idea is analogous to how different compiler versions produce different binary artifacts from identical source code, where reproducibility depends on both the source code and the compiler version.This PR adds warnings instructing users to use the cached
pixioruvversion, but doesn't block since they'll receive a (circumventable) error during PyRosettaCluster simulation reproduction if lockfile artifacts differ. Version checks are not performed for Conda/Mamba environment managers, since theenvironment.ymlformat is quite stable over different Conda/Mamba versions.