Skip to content

Conversation

klimaj
Copy link
Member

@klimaj klimaj commented Oct 3, 2025

PyRosettaCluster currently uses the conda environment manager for simulation reproduction life cycles. Herein this PR, we add support for mamba, uv, and pixi as well. Upon instantiation of PyRosettaCluster, we now look for the operating system environment variable PYROSETTACLUSTER_ENVIRONMENT_MANAGER to determine if the user wants to use a certain environment manager, or otherwise fallback on detecting whether pixi, uv, mamba, or conda is an executable to determine which environment manager to use. A second party reproducing a simulation may then use the same or a different environment manager, since the raw YAML file string is universal across environment managers and is cached in the PyRosettaCluster decoy output file and/or scorefile. Note that unit tests are not added herein because the Benchmark server implements virtual environments (i.e., using pip), and therefore these new functionalities are not testable at the moment (and so they may be considered experimental until thoroughly tested).

This PR also cleans up some module-level import side effects (e.g., running distributed.get_worker() upon importing pyrosetta.distributed.cluster) which were subtly affecting the PyRosetta documentation builds with sphinx.

@klimaj klimaj requested a review from lyskov October 3, 2025 23:49
@klimaj klimaj added enhancement New feature or request 03 PyRosetta industry labels Oct 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant