Skip to content

Added python 3.13 support with conda-forge #458

Added python 3.13 support with conda-forge

Added python 3.13 support with conda-forge #458

Workflow file for this run

name: cMaBoSS MacOS
on:
push:
pull_request:
release:
types: [created]
jobs:
cmaboss_macos:
name: cMaBoSS
runs-on: macos-12
env:
CC: clang
CXX: clang++
INSTALL_PATH: /usr/local/
BUILD_PATH: /tmp/
LIBXML_LIBDIR: /usr/local/opt/libxml2/lib/libxml2.dylib
LIBXML_INCLUDEDIR: /usr/local/opt/libxml2/include/libxml2/
MACOSX_DEPLOYMENT_TARGET: 12.0
steps:
- uses: actions/checkout@v4
- name: Downgrading to XCode 13.1
run: |
sudo xcode-select -s /Applications/Xcode_13.1.app/Contents/Developer
- name: Install dependencies
run: |
brew install flex bison python3 cmake libxml2
python3 -m pip install --upgrade pip
pip3 install numpy wheel delocate pandas
- name: Set cmake version variable
run: |
echo "CMAKE_VERSION=$(cmake --version | head -n 1)" >> $GITHUB_ENV
- name: Cache compiled libSBML
id: cache-libsbml-clang
uses: actions/cache@v4
with:
path: /tmp/libsbml-5.20.4
key: ${{ runner.os }}-${{ env.CMAKE_VERSION }}-libSBML-5.20.4-clang++-namespace
- name: Compiling libSBML
if: steps.cache-libsbml-clang.outputs.cache-hit != 'true'
run: bash scripts/build_libsbml.sh
- name: Install libSBML
run: sudo bash scripts/install_libsbml.sh
- name: Build cMaBoSS
run: |
cd engine/src
make grammars
cd ../python
cp -r ../src cmaboss
python3 -m pip wheel -w wheelhouse .
delocate-wheel -w fixed_wheels -v `ls wheelhouse/cmaboss*.whl`
pip3 install `ls fixed_wheels/cmaboss*.whl`
- name: Test cMaBoSS
run: bash scripts/run_cmaboss_tests.sh
build_wheels_macos:
name: Build MacOS wheels
runs-on: macos-12
needs: cmaboss_macos
steps:
- uses: actions/checkout@v4
- name: Downgrading to XCode 13.1
run: |
sudo xcode-select -s /Applications/Xcode_13.1.app/Contents/Developer
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install cibuildwheel
run: python -m pip install cibuildwheel numpy twine
- name: Build wheels
env:
MACOSX_DEPLOYMENT_TARGET: 12.0
CIBW_ARCHS: x86_64
CIBW_BEFORE_ALL: >
brew install libxml2 &&
CC=clang CXX=clang++ INSTALL_PATH=/usr/local/ BUILD_PATH=/tmp/ \
LIBXML_LIBDIR=/usr/local/opt/libxml2/lib/libxml2.dylib \
LIBXML_INCLUDEDIR=/usr/local/opt/libxml2/include/libxml2/ \
bash scripts/build_libsbml.sh &&
BUILD_PATH=/tmp/ bash scripts/install_libsbml.sh
CIBW_REPAIR_WHEEL_COMMAND_MACOS: >
DYLD_LIBRARY_PATH=/usr/local/lib/ delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
run: |
cd engine/src
make grammars
cd ../../
cp -r engine/src engine/python/cmaboss/
python -m cibuildwheel --output-dir wheelhouse engine/python
- uses: actions/upload-artifact@v4
with:
name: wheels-macos-x86_64
path: wheelhouse/*.whl
- name: Upload cMaBoSS to test Pypi
if: github.repository == 'vincent-noel/MaBoSS' && github.ref == 'refs/heads/master'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
run: |
python -m twine upload --repository testpypi --skip-existing wheelhouse/cmaboss*
- name: Upload cMaBoSS to Pypi
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
python -m twine upload --skip-existing wheelhouse/cmaboss*
build_wheels_macos_arm64:
name: Build MacOS wheels
runs-on: macos-14
needs: cmaboss_macos
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install cibuildwheel
run: python -m pip install cibuildwheel numpy twine
- name: Build wheels
env:
MACOSX_DEPLOYMENT_TARGET: 14.0
CIBW_ARCHS: arm64
CIBW_BEFORE_ALL: >
brew install libxml2 &&
CC=clang CXX=clang++ INSTALL_PATH=/usr/local/ BUILD_PATH=/tmp/ \
LIBXML_LIBDIR=/opt/homebrew/opt/libxml2/lib/libxml2.dylib \
LIBXML_INCLUDEDIR=/opt/homebrew/opt/libxml2/include/ \
bash scripts/build_libsbml.sh &&
BUILD_PATH=/tmp/ sudo bash scripts/install_libsbml.sh
CIBW_REPAIR_WHEEL_COMMAND_MACOS: >
DYLD_LIBRARY_PATH=/usr/local/lib/ delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}
run: |
cd engine/src
make grammars
cd ../../
cp -r engine/src engine/python/cmaboss/
python -m cibuildwheel --output-dir wheelhouse engine/python
- uses: actions/upload-artifact@v4
with:
name: wheels-macos-arm64
path: wheelhouse/*.whl
- name: Upload cMaBoSS to test Pypi
if: github.repository == 'vincent-noel/MaBoSS' && github.ref == 'refs/heads/master'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TEST_TOKEN }}
run: |
python -m twine upload --repository testpypi --skip-existing wheelhouse/cmaboss*
- name: Upload cMaBoSS to Pypi
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
run: |
python -m twine upload --skip-existing wheelhouse/cmaboss*
conda_cmaboss_macosx_defaults:
name: cMaBoSS Conda package (defaults)
needs: cmaboss_macos
strategy:
fail-fast: false
matrix:
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.0"}, {python: "3.11", numpy: "2.0"}, {python: "3.12", numpy: "2.0"}]
runs-on: macos-12
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: defaults
python-version: 3.12
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build conda-verify anaconda-client
- name: Installing MacOSX10.9 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.9.sdk.tar.xz
sudo tar xf MacOSX10.9.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX10.9.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build cMaBoSS Anaconda package
env:
MACOSX_DEPLOYMENT_TARGET: 10.9
run: |
CUSTOM_BUILD_NUMBER=0 conda build -c defaults -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss;
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /usr/local/miniconda/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /usr/local/miniconda/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
conda_cmaboss_macosx_condaforge:
name: cMaBoSS Conda package (conda-forge)
needs: cmaboss_macos
strategy:
fail-fast: false
matrix:
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.1"}, {python: "3.11", numpy: "2.1"}, {python: "3.12", numpy: "2.1"}, {python: "3.13", numpy: "2.1"}]
runs-on: macos-12
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: conda-forge
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build conda-verify anaconda-client
- name: Installing MacOSX10.13 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.13.sdk.tar.xz
sudo tar xf MacOSX10.13.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX10.13.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build cMaBoSS Anaconda package
env:
MACOSX_DEPLOYMENT_TARGET: 10.13
run: |
CUSTOM_BUILD_NUMBER=1 conda build -c conda-forge -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss;
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /Users/runner/miniconda3/envs/test/conda-bld/osx-64/*.tar.bz2 --force;
conda_cmaboss_macosx_M1_defaults:
name: cMaBoSS Conda package for arm64 (defaults)
needs: cmaboss_macos
strategy:
fail-fast: false
matrix:
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.0"}, {python: "3.11", numpy: "2.0"}, {python: "3.12", numpy: "2.0"}]
runs-on: macos-14
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: defaults
python-version: 3.12
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build conda-verify anaconda-client
- name: Installing MacOSX11.1 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.1.sdk.tar.xz
sudo tar xf MacOSX11.1.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX11.1.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build cMaBoSS Anaconda package
env:
MACOSX_DEPLOYMENT_TARGET: 11.1
run: |
CUSTOM_BUILD_NUMBER=0 conda build -c defaults -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss;
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /Users/runner/miniconda3/envs/test/conda-bld/osx-arm64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /Users/runner/miniconda3/envs/test/conda-bld/osx-arm64/*.tar.bz2 --force;
conda_cmaboss_macosx_M1_condaforge:
name: cMaBoSS Conda package for arm64 (conda-forge)
needs: cmaboss_macos
strategy:
fail-fast: false
matrix:
version: [{python: "3.8", numpy: "1.24"}, {python: "3.9", numpy: "2.0"}, {python: "3.10", numpy: "2.1"}, {python: "3.11", numpy: "2.1"}, {python: "3.12", numpy: "2.1"}, {python: "3.13", numpy: "2.1"}]
runs-on: macos-14
defaults:
run:
shell: sh -l {0}
steps:
- uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
channels: conda-forge
python-version: 3.12
miniforge-variant: Mambaforge
use-mamba: true
- name: Install conda-build
run: |
conda install conda-build conda-verify anaconda-client
- name: Installing MacOSX11.0 SDK
run: |
wget https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX11.0.sdk.tar.xz
sudo tar xf MacOSX11.0.sdk.tar.xz -C /opt
echo "conda_build:" > ~/.condarc
echo " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc
echo "CONDA_BUILD_SYSROOT:" > ~/.conda/conda_build_config.yaml
echo " - /opt/MacOSX11.0.sdk # [osx]" >> ~/.conda/conda_build_config.yaml
- name: Build cMaBoSS Anaconda package
env:
MACOSX_DEPLOYMENT_TARGET: 11.0
run: |
CUSTOM_BUILD_NUMBER=1 conda build -c conda-forge -c colomoto --variants "{\"python\": [\"${{ matrix.version.python }}\"], \"numpy\": [\"${{ matrix.version.numpy }}\"]}" conda/cmaboss;
- name: Upload MaBoSS to Anaconda cloud on vincent-noel
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u vincent-noel /Users/runner/miniconda3/envs/test/conda-bld/osx-arm64/*.tar.bz2 --force;
- name: Upload MaBoSS to Anaconda cloud on colomoto
if: github.repository == 'sysbio-curie/MaBoSS' && github.event_name == 'release'
run: |
anaconda -t ${{ secrets.ANACONDA_TOKEN }} upload -u colomoto /Users/runner/miniconda3/envs/test/conda-bld/osx-arm64/*.tar.bz2 --force;