Repository to build wheels for openmm.
We are using github actions to build wheels. Wheels are found in the github actions artifacts section and when a release is made in this github repo, wheels are uploaded to the release as well.
Use ./rerender.sh
to rerender this feedstock
There are two wheels for each platform. Eg: for linux
OpenMM-8.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
openmm_cuda-8.1.1.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
The first wheel contains all files except the CUDA plugins and the second wheel contains all the CUDA plugins.
When uploaded to PyPI, these wheels can be installed with
pip install openmm[cuda12]
or
pip install openmm[cuda11.2]
or
pip install openmm[cuda11.8]
To install without the CUDA plugins,
pip install openmm
- Change
version
andgit_rev
inrecipe/meta.yaml
. - Update for new python/cuda versions. See next section.
- Run
./rerender.sh
. - Make a PR and merge once CI passes.
- Make a release in this github repo and wait for CI to upload wheels. eg:
v8.1.1-0
. - Download the wheels using
./download_wheels.sh v8.1.1-0
. - Optionally test the wheels.
- Upload the wheels using
twine upload dist
.
- Copy the migration file for python/cuda from conda-forge/openmm-feedstock For eg: python 3.12 migration
- Run
./rerender.sh
. - Make a new release in the github repo. eg:
v8.1.1-1
. - Follow steps 6, 7, 8 as above.
To get downstream packages as wheels, we need to do the following,
- Get a
conda-forge
feedstock up and running. - Copy the feedstock into a new repo for wheel changes
- Copy
recipe/build_openmm*
,conda-forge.yml
,recipe/conda_build_config.yaml
,rerender.sh
,download_wheels.sh
from this repo. - Copy the dependencies in
recipe/meta.yaml
'sbuild
indicated by# START WHEEL CHANGES
. - Make sure
host
inrecipe/meta.yaml
has no C++ shared dependencies on Linux. To be compatible withmanylinux
spec, we need to build C++ shared libraries inrecipe/build_openmm.sh
. - If there are CUDA specific plugins, then we need to provide a separate python wheel like
openmm-cuda
. Seerecipe/0001-wheels.patch
for how to do that. - Edit
recipe/build_openmm.sh
to update the lists of headers, libraries to include in each wheel.