From eecb51cb8decb157404afe4bac9392abf15cce3c Mon Sep 17 00:00:00 2001 From: Dilawar Singh Date: Tue, 18 Nov 2025 20:57:29 +0530 Subject: [PATCH 1/5] enable 3.14 wheels --- .github/workflows/linux.yml | 2 +- .github/workflows/osx.yml | 2 +- .github/workflows/windows.yml | 2 +- scripts/Dockerfile | 2 +- scripts/build_wheels_linux.sh | 5 ++++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 4bdd5285..b0b675be 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index e67aac6a..8fce0d03 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -15,7 +15,7 @@ jobs: runs-on: macos-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 28ac1eae..ef7796a2 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -15,7 +15,7 @@ jobs: runs-on: windows-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v2 - name: "Setup Python ${{ matrix.python-version }}" diff --git a/scripts/Dockerfile b/scripts/Dockerfile index df307e77..b8fa46ea 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -1,4 +1,4 @@ -FROM quay.io/pypa/manylinux2014_x86_64 +FROM quay.io/pypa/manylinux_1_2_x86_64 ENV PATH=$PATH:/usr/local/bin RUN yum -y update RUN yum -y install freeglut-devel libtiff-devel libXmu-devel libffi-devel libXi-devel && yum clean all diff --git a/scripts/build_wheels_linux.sh b/scripts/build_wheels_linux.sh index 96665f15..bc5e37fb 100755 --- a/scripts/build_wheels_linux.sh +++ b/scripts/build_wheels_linux.sh @@ -13,8 +13,9 @@ PYDIR310=/opt/python/cp310-cp310/ PYDIR311=/opt/python/cp311-cp311/ PYDIR312=/opt/python/cp312-cp312/ PYDIR313=/opt/python/cp313-cp313/ +PYDIR314=/opt/python/cp314-cp314/ -for PYDIR in $PYDIR313 $PYDIR312 $PYDIR311 $PYDIR310; do +for PYDIR in $PYDIR314 $PYDIR313 $PYDIR312 $PYDIR311 $PYDIR310; do PYTHON=$PYDIR/bin/python # dependencies @@ -36,6 +37,8 @@ for PYDIR in $PYDIR313 $PYDIR312 $PYDIR311 $PYDIR310; do make wheel export PYTHONPATH="$(pwd)/py" $PYTHON -m smoldyn "$SCRIPT_DIR/../examples/S4_molecules/mollist.txt" + + $PYTHON -m auditwheel show *.whl $PYTHON -m auditwheel repair *.whl -w "$WHEELHOUSE" # install and test it From bbad1a8ff20e95bc7ac4910ee2bda05f606d3640 Mon Sep 17 00:00:00 2001 From: Dilawar Singh Date: Tue, 18 Nov 2025 21:17:26 +0530 Subject: [PATCH 2/5] Building using python3.10 --- scripts/Dockerfile | 2 +- scripts/build_wheels_linux.sh | 7 ++----- source/python/pyproject.toml.in | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/scripts/Dockerfile b/scripts/Dockerfile index b8fa46ea..df307e77 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -1,4 +1,4 @@ -FROM quay.io/pypa/manylinux_1_2_x86_64 +FROM quay.io/pypa/manylinux2014_x86_64 ENV PATH=$PATH:/usr/local/bin RUN yum -y update RUN yum -y install freeglut-devel libtiff-devel libXmu-devel libffi-devel libXi-devel && yum clean all diff --git a/scripts/build_wheels_linux.sh b/scripts/build_wheels_linux.sh index bc5e37fb..02ce657e 100755 --- a/scripts/build_wheels_linux.sh +++ b/scripts/build_wheels_linux.sh @@ -10,12 +10,9 @@ echo "Path to store wheels : $WHEELHOUSE" rm -rf "$WHEELHOUSE" && mkdir -p "$WHEELHOUSE" PYDIR310=/opt/python/cp310-cp310/ -PYDIR311=/opt/python/cp311-cp311/ -PYDIR312=/opt/python/cp312-cp312/ -PYDIR313=/opt/python/cp313-cp313/ -PYDIR314=/opt/python/cp314-cp314/ -for PYDIR in $PYDIR314 $PYDIR313 $PYDIR312 $PYDIR311 $PYDIR310; do +# all python3 version can use this wheel. +for PYDIR in $PYDIR310; do PYTHON=$PYDIR/bin/python # dependencies diff --git a/source/python/pyproject.toml.in b/source/python/pyproject.toml.in index 1cb2cebe..d28c7ff5 100644 --- a/source/python/pyproject.toml.in +++ b/source/python/pyproject.toml.in @@ -2,7 +2,7 @@ name = "smoldyn" version = "@SMOLDYN_VERSION@" readme = "../README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" authors = [ {name = "Steve Andrews", email = "steve.andrews@epcc.ed.ac.uk"}, {name = "Dilawar Singh", email = "dilawar.s.rajput@gmail.com"} From 7866a80ea73a2c2ccddbb04d0168dae943d6233d Mon Sep 17 00:00:00 2001 From: Dilawar Singh Date: Tue, 18 Nov 2025 21:22:32 +0530 Subject: [PATCH 3/5] tweaks to dev version strings --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ba22ff4a..61e92b62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,8 +17,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) if(NOT SMOLDYN_VERSION) find_package(Git QUIET) if(GIT_FOUND) - # Is the current commit tagged? If yes, this command will return the - # tag else it returns empty. When a tag is found, it is a release. + # Is the current commit tagged? If yes, following command + # will return the tag, empty otherwise. execute_process(COMMAND ${GIT_EXECUTABLE} tag --points-at HEAD WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE SMOLDYN_TAG @@ -28,9 +28,9 @@ if(NOT SMOLDYN_VERSION) string(SUBSTRING ${SMOLDYN_TAG} 1 -1 SMOLDYN_VERSION) message(STATUS " -- Found a release tag ${SMOLDYN_TAG}") else() - # minute-ly release. + # hourly release. string(TIMESTAMP STAMP "%Y%m%d%H%M") - set(SMOLDYN_VERSION "2.75.dev${STAMP}") + set(SMOLDYN_VERSION "2.76.dev${STAMP}") endif() endif() endif() From 6c98a43d3f4d79e1715f9b2a3209efff5e8c50e5 Mon Sep 17 00:00:00 2001 From: Dilawar Singh Date: Tue, 18 Nov 2025 21:36:37 +0530 Subject: [PATCH 4/5] use python3.10 in biosimulator images --- scripts/Dockerfile-BioSimulators | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/Dockerfile-BioSimulators b/scripts/Dockerfile-BioSimulators index 068bb0ae..49bdabd7 100644 --- a/scripts/Dockerfile-BioSimulators +++ b/scripts/Dockerfile-BioSimulators @@ -1,4 +1,4 @@ -FROM python:3.9-slim-bookworm +FROM python:3.10-slim-bullseye ARG VERSION="" @@ -44,6 +44,7 @@ ENV XVFB_RES="${RESOLUTION}" \ XVFB_ARGS="${XARGS}" # install Smoldyn and its dependencies +RUN ls -ltr COPY smoldyn*.whl /tmp/ RUN cd /tmp \ && WHEEL_PATH=$(ls -1 smoldyn*.whl | head -n 1) \ From c52111dc68e1becf45e3ff845c1dd2df90c59299 Mon Sep 17 00:00:00 2001 From: Dilawar Singh Date: Wed, 19 Nov 2025 08:39:22 +0530 Subject: [PATCH 5/5] use debian bulleyes as base image for biosimulator --- .github/workflows/linux.yml | 1 + scripts/Dockerfile-BioSimulators | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b0b675be..bc95deb4 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -66,6 +66,7 @@ jobs: cd build WHEEL_PATH=$(ls smoldyn*.whl) python -m pip install --force-reinstall "${WHEEL_PATH}[biosimulators,biosimulators-tests]" + - name: Test BioSimulators if: matrix.python-version >= '3.10' run: | diff --git a/scripts/Dockerfile-BioSimulators b/scripts/Dockerfile-BioSimulators index 49bdabd7..3cbe3840 100644 --- a/scripts/Dockerfile-BioSimulators +++ b/scripts/Dockerfile-BioSimulators @@ -14,7 +14,7 @@ LABEL \ org.opencontainers.image.vendor="Steven Andrews" \ org.opencontainers.image.licenses="LGPL-3.0-only" \ \ - base_image="python:3.9-slim-bookworm" \ + base_image="python:3.10-slim-bullseye" \ version="${VERSION}" \ software="Smoldyn" \ software.version="${VERSION}" \