Skip to content

Conversation

@sdvillal
Copy link

@sdvillal sdvillal commented Nov 12, 2025

Summary

Adds a modern conda environment following best practices to improve the quality of life of conda users.

The environment is self-contained, including a sane toolchain to build extensions fully compatible with the rest of dependencies, and with batteries included (inference, bioinformatics, fast kernels, dev dependencies).

We maintain a pixi workspace and an automatically generated conda environment for non-pixi users.

We still need to iron-out four known problems (see overcomments in pixi.toml and upcoming issues) and add documentation.

From here, creating conda-forge openfold3 package and bioconda openfold3-extra should be simple enough.

Changes

Related Issues

TBC

Testing

Current environment passes all tests and produce sensible predictions.

Other Notes

This is exploratory at the moment. Will cleanup commit history or open a clean PR when we are done.

@Emrys-Merlin
Copy link

Thank you for the draft!

@Emrys-Merlin
Copy link

DeepSpeed accepted our first upstream fix regarding the ninja detection (deepspeedai/DeepSpeed#7687). Once a new version is released, this should allow us to get rid of the PyPI ninja dependency. Of course, this fix will only come into play if we decide against the vendoring approach.

@sdvillal
Copy link
Author

sdvillal commented Dec 1, 2025

As of 2024/12/01, packages still installed from pypi after installing openfold3 in devel/editable mode:

To investigate

  • aria2, both from CF (v 1.37.0) and pypi (v 0.0.1b0)

Proposed solution: remove aria2 from pypi dependencies, as it is currently unused in OF3 codebase. The pypi package is an old convenience and should in general not be used to install aria2, as it is not even such big of a convenience.

Because of cuequivariance_ops_torch_cu12

  • cuequivariance_ops_torch_cu12
  • cuequivariance_ops_cu12
  • nvidia_cublas_cu12 both from CF (libcublas 12.9.1.4) and pypi (v12.9.1.4)

These should at the very least aligned with the CF version, but likely it is best to just install all from pypi until we understand how to deal with the license. The key question is what to do with libcublas, maybe we should add synonyms to parselmouth in pixi - although I am not 100% sure these two packages are 100% binary compatible.

Currently the biggest block to have a conda package with these is their LICENSE.

See also: NVIDIA/cuEquivariance#218

It could be interesting to see if openequivariance could be a viable alternative:
https://github.com/PASSIONLab/OpenEquivariance

Because of mkl

  • mkl both from CF (2025.3.0) and pypi (2025.3.0)
  • intel_openmp
  • onemkl_license
  • tbb both from CF (2022.3.0) and pypi (2022.3.0)
  • tcmlib
  • umf
  • intel_cmplr_lib_url

Proposed solution: remove mkl from pypi dependencies, as it is actually unused (pytorch links it statically, numpy and scipy are not build against it and do not dynamically dispatch).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants