pymol-open-source icon indicating copy to clipboard operation
pymol-open-source copied to clipboard

CI workflow for pypi wheels

Open nrontsis opened this issue 1 year ago • 2 comments

Will there be appetite for including a CI workflow that publishes pypi wheels, so that pymol can be installed (including binaries) via pip? Happy to open a PR for that.

So far I managed to manually create wheels via manylinux - automating that for many architectures and python versions should be quite easy via cibuildwheel:

demo of manual wheels creation

Run

docker build --platform linux/amd64 -t pymol-builder .
docker run --platform linux/amd64 -v "$(pwd)/wheels:/wheelhouse" pymol-builder

using this Dockerfile

FROM quay.io/pypa/manylinux_2_34_x86_64
RUN yum update -y && yum install -y \
    glew-devel \
    freeglut-devel \
    libpng-devel \
    freetype-devel \
    libxml2-devel \
    glm-devel \
    msgpack-devel \
    netcdf-devel \
    mesa-libGLU-devel \
    && yum clean all \
    && rm -rf /var/cache/yum
RUN ln -sf /opt/python/cp311-cp311/bin/python3.11 /usr/local/bin/python3 && \
    ln -sf /opt/python/cp311-cp311/bin/pip3.11 /usr/local/bin/pip3
WORKDIR /tmp
RUN git clone --depth 1 https://github.com/rcsb/mmtf-cpp.git && \
    mkdir -p /usr/local/include/mmtf && \
    cp -r mmtf-cpp/include/mmtf/* /usr/local/include/mmtf/ && \
    cp mmtf-cpp/include/mmtf.hpp /usr/local/include/ && \
    rm -rf mmtf-cpp
WORKDIR /build
RUN git clone --depth 1 https://github.com/schrodinger/pymol-open-source.git
VOLUME /wheelhouse
CMD ["sh", "-c", "cd pymol-open-source && python3 -m build --wheel && mkdir -p /wheelhouse && auditwheel repair dist/*.whl -w /wheelhouse/"]

nrontsis avatar Nov 27 '24 15:11 nrontsis

I think something like this would be great, and I know many have been wanting pypi wheels. Though I'm hoping that this would be done in a separate repository. I'll consult with others and circle back on this.

JarrettSJohnson avatar Jan 25 '25 05:01 JarrettSJohnson

Thanks @JarrettSJohnson, happy with either approach.

nrontsis avatar Jan 28 '25 10:01 nrontsis