From fd2fe5a496bc76624a496d44a3518888e78b3bd3 Mon Sep 17 00:00:00 2001 From: Lars Kaiser <71793357+kaiserls@users.noreply.github.com> Date: Fri, 1 Aug 2025 22:59:26 +0200 Subject: [PATCH 1/3] Add first draft of recipes --- python/sdist/conda.recipe/meta.yaml | 94 +++++++++++++++++++ python/sdist/conda.recipe/meta_old.yaml | 114 ++++++++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 python/sdist/conda.recipe/meta.yaml create mode 100644 python/sdist/conda.recipe/meta_old.yaml diff --git a/python/sdist/conda.recipe/meta.yaml b/python/sdist/conda.recipe/meta.yaml new file mode 100644 index 0000000000..d8e0a79cdf --- /dev/null +++ b/python/sdist/conda.recipe/meta.yaml @@ -0,0 +1,94 @@ +{% set name = "amici" %} +{% set version = "0.34.0" %} +{% set python_min = "3.11" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/amici-{{ version }}.tar.gz + sha256: 8b68f8a244c267ecdb92fd50e8031aa7b89a7f01674a7b3c3170f9618e7a7d31 + +build: + skip: true # [py<311] + entry_points: + - amici_import_petab = amici.petab.cli.import_petab:_main + - amici_import_petab.py = amici.petab.cli.import_petab:_main + script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + number: 0 + +requirements: + build: + - {{ compiler('cxx') }} + - {{ compiler('c') }} +# - {{ stdlib("c") }} + host: + - python {{ python_min }} + - setuptools >=77 + - wheel + - numpy >=2.0 + - cmake-build-extension ==0.6.0 + - libblas * *openblas + - openblas-ilp64 + - swig>=4 + - pip + run: + - python {{ python_min }} + - cmake-build-extension ==0.6.0 + - libblas * *openblas + - openblas-ilp64 + - sympy >=1.12.1 + - python-libsbml + - pandas >=2.0.2 + - pyarrow + - sbmlmath >=0.4.0 + - toposort + - setuptools >=48 + - mpmath + - swig + - {{ pin_compatible('numpy') }} + +test: + imports: + - SuiteSparse + - amici + - sundials + commands: + - pip check + - amici_import_petab --help + - amici_import_petab.py --help + requires: + - pip + +about: + home: https://github.com/amici-dev/amici + summary: Advanced multi-language Interface to CVODES and IDAS + license: BSD-3-Clause AND Apache-2.0 + license_file: + - LICENSE.md + - amici/ThirdParty/SuiteSparse/LICENSE.txt + - amici/ThirdParty/SuiteSparse/BTF/Doc/License.txt + - amici/ThirdParty/SuiteSparse/KLU/Doc/License.txt + - amici/ThirdParty/SuiteSparse/COLAMD/Doc/License.txt + - amici/ThirdParty/SuiteSparse/AMD/Doc/License.txt + - amici/ThirdParty/sundials/LICENSE + - amici/ThirdParty/sundials/NOTICE + - amici/ThirdParty/sundials/src/idas/LICENSE + - amici/ThirdParty/sundials/src/idas/NOTICE + - amici/ThirdParty/sundials/src/cvodes/LICENSE + - amici/ThirdParty/sundials/src/cvodes/NOTICE + description: | + AMICI provides a multi-language (Python, C++, Matlab) interface for the + SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS + (for algebraic differential equations). AMICI allows the user to read + differential equation models specified as SBML or PySB and automatically + compiles such models into .mex simulation files (Matlab), C++ executables + or Python modules. + doc_url: https://amici.readthedocs.io/en/latest/ + dev_url: https://github.com/amici-dev/amici + +extra: + recipe-maintainers: + - kaiserls + - dweindl diff --git a/python/sdist/conda.recipe/meta_old.yaml b/python/sdist/conda.recipe/meta_old.yaml new file mode 100644 index 0000000000..08bf9f45b1 --- /dev/null +++ b/python/sdist/conda.recipe/meta_old.yaml @@ -0,0 +1,114 @@ +{% set name = "amici" %} +{% set version = "0.34.0" %} + +package: + name: {{ name|lower }} + version: {{ version }} + +source: + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz + sha256: 8b68f8a244c267ecdb92fd50e8031aa7b89a7f01674a7b3c3170f9618e7a7d31 + +build: + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + skip: true # [win or py<37] + script_env: + - BLAS_LIBS="-lopenblas" + + +requirements: + build: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - numpy>=2.0 + - pip + - setuptools>=77 + - cmake-build-extension==0.6.0 + - python>=3.11 + - swig>=4 + - _openmp_mutex + - libstdcxx-ng + - libgcc-ng + - pandas>=2.0.2 + - sympy>=1.12.1 + - openblas + - boost + - hdf5 + - pkg-config + - libxml2 + - libxslt + host: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - numpy>=2.0 + - pip + - setuptools>=77 + - cmake-build-extension==0.6.0 + - python>=3.11 + - swig>=4 + - _openmp_mutex + - libstdcxx-ng + - libgcc-ng + - pandas>=2.0.2 + - sympy>=1.12.1 + - openblas + - boost + - hdf5 + - pkg-config + - libxml2 + - libxslt + run: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - numpy>=2.0 + - pip + - python>=3.11 + - swig>=4 + - _openmp_mutex + - libstdcxx-ng + - libgcc-ng + - pandas>=2.0.2 + - sympy>=1.12.1 + - libopenblas + - libboost + - libgomp + - hdf5 + - pkg-config + - libxml2 + - libxslt + - libpython +test: + requires: + - python-libsbml + - sbmlmath + - toposort + - wurlitzer + - pandas + imports: + - amici + - amici.amici + commands: + - python -m amici + +about: + home: https://github.com/amici-dev/amici + license: BSD-3-Clause + license_family: BSD + #license_file: LICENSE.txt + summary: 'Advanced Multilanguage Interface to CVODES and IDAS' + + # The remaining entries in this section are optional, but recommended. + description: | + AMICI provides a multi-language (Python, C++, Matlab) interface for the + SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS + (for algebraic differential equations). AMICI allows the user to read + differential equation models specified as SBML or PySB and automatically + compiles such models into .mex simulation files (Matlab), C++ executables + or Python modules. + doc_url: https://amici.readthedocs.io/en/latest/ + dev_url: https://github.com/amici-dev/amici + +extra: + recipe-maintainers: + - dweindl \ No newline at end of file From 1ad53d6e60b43126ac6ec7f8174799e1cfcd157b Mon Sep 17 00:00:00 2001 From: Lars Kaiser <71793357+kaiserls@users.noreply.github.com> Date: Mon, 24 Nov 2025 23:57:38 +0100 Subject: [PATCH 2/3] Working draft of recipe.yaml --- .gitignore | 1 + .../conda.recipe/conda_build_config.yaml | 19 +++ python/sdist/conda.recipe/meta.yaml | 114 ++++++++-------- python/sdist/conda.recipe/meta_old.yaml | 114 ---------------- python/sdist/conda.recipe/recipe.yaml | 126 ++++++++++++++++++ 5 files changed, 207 insertions(+), 167 deletions(-) create mode 100644 python/sdist/conda.recipe/conda_build_config.yaml delete mode 100644 python/sdist/conda.recipe/meta_old.yaml create mode 100644 python/sdist/conda.recipe/recipe.yaml diff --git a/.gitignore b/.gitignore index 96bf825460..cbc61d2375 100644 --- a/.gitignore +++ b/.gitignore @@ -163,6 +163,7 @@ python/sdist/amici/_installation/include/ python/sdist/amici/_installation/lib/ python/sdist/amici/_installation/share/ python/sdist/build/* +python/sdist/output/* python/sdist/amici/git_version.txt python/sdist/dist diff --git a/python/sdist/conda.recipe/conda_build_config.yaml b/python/sdist/conda.recipe/conda_build_config.yaml new file mode 100644 index 0000000000..1740058120 --- /dev/null +++ b/python/sdist/conda.recipe/conda_build_config.yaml @@ -0,0 +1,19 @@ +python: + - 3.13 + +c_compiler: + - gcc # [linux] + # - clang # [osx] + # - vs2022 # [win] +c_stdlib: + - sysroot # [linux] + # - macosx_deployment_target # [osx] + # - vs # [win] +cxx_compiler: + - gxx # [linux] + # - clangxx # [osx] + # - vs2022 # [win] +# fortran_compiler: # [unix or win64] +# - gfortran # [linux64 or (osx and x86_64)] +# - gfortran # [aarch64 or ppc64le or armv7l or s390x] +# - flang # [win64] \ No newline at end of file diff --git a/python/sdist/conda.recipe/meta.yaml b/python/sdist/conda.recipe/meta.yaml index d8e0a79cdf..bad9026cc4 100644 --- a/python/sdist/conda.recipe/meta.yaml +++ b/python/sdist/conda.recipe/meta.yaml @@ -1,83 +1,92 @@ {% set name = "amici" %} {% set version = "0.34.0" %} -{% set python_min = "3.11" %} package: name: {{ name|lower }} version: {{ version }} source: - url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/amici-{{ version }}.tar.gz + url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz sha256: 8b68f8a244c267ecdb92fd50e8031aa7b89a7f01674a7b3c3170f9618e7a7d31 build: skip: true # [py<311] - entry_points: - - amici_import_petab = amici.petab.cli.import_petab:_main - - amici_import_petab.py = amici.petab.cli.import_petab:_main - script: {{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation - number: 0 + script: "{{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation" + script_env: + - BLAS_LIBS="-lopenblas" + requirements: build: - - {{ compiler('cxx') }} - {{ compiler('c') }} -# - {{ stdlib("c") }} - host: - - python {{ python_min }} - - setuptools >=77 + - {{ compiler('cxx') }} + - cmake-build-extension==0.6.0 + - setuptools + - pip - wheel - - numpy >=2.0 - - cmake-build-extension ==0.6.0 - - libblas * *openblas - - openblas-ilp64 - - swig>=4 + host: + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - numpy>=2.0 - pip + - setuptools>=77 + - cmake-build-extension==0.6.0 + - python>=3.11 + - swig>=4 + - _openmp_mutex + - libstdcxx-ng + - libgcc-ng + - pandas>=2.0.2 + - sympy>=1.12.1 + - openblas + - boost + - hdf5 + - pkg-config + - libxml2 + - libxslt run: - - python {{ python_min }} - - cmake-build-extension ==0.6.0 - - libblas * *openblas - - openblas-ilp64 - - sympy >=1.12.1 + - {{ compiler('c') }} + - {{ compiler('cxx') }} + - numpy>=2.0 + - pip + - python>=3.11 + - swig>=4 + - _openmp_mutex + - libstdcxx-ng + - libgcc-ng + - pandas>=2.0.2 + - sympy>=1.12.1 + - libopenblas + - boost + - hdf5 + - pkg-config + - libxml2 + - libxslt - python-libsbml - - pandas >=2.0.2 - - pyarrow - - sbmlmath >=0.4.0 + - cmake-build-extension ==0.6.0 - toposort - - setuptools >=48 - mpmath - - swig - - {{ pin_compatible('numpy') }} - + - setuptools >=48 + - pyarrow + - sbmlmath + - wurlitzer test: + requires: + - pip imports: - - SuiteSparse - amici - - sundials + - amici.amici commands: - - pip check - - amici_import_petab --help - - amici_import_petab.py --help - requires: - - pip + - python -m amici about: home: https://github.com/amici-dev/amici - summary: Advanced multi-language Interface to CVODES and IDAS - license: BSD-3-Clause AND Apache-2.0 - license_file: - - LICENSE.md - - amici/ThirdParty/SuiteSparse/LICENSE.txt - - amici/ThirdParty/SuiteSparse/BTF/Doc/License.txt - - amici/ThirdParty/SuiteSparse/KLU/Doc/License.txt - - amici/ThirdParty/SuiteSparse/COLAMD/Doc/License.txt - - amici/ThirdParty/SuiteSparse/AMD/Doc/License.txt - - amici/ThirdParty/sundials/LICENSE - - amici/ThirdParty/sundials/NOTICE - - amici/ThirdParty/sundials/src/idas/LICENSE - - amici/ThirdParty/sundials/src/idas/NOTICE - - amici/ThirdParty/sundials/src/cvodes/LICENSE - - amici/ThirdParty/sundials/src/cvodes/NOTICE + license: BSD-3-Clause + license_family: BSD + #license_file: LICENSE.txt + summary: 'Advanced Multilanguage Interface to CVODES and IDAS' + + # The remaining entries in this section are optional, but recommended. description: | AMICI provides a multi-language (Python, C++, Matlab) interface for the SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS @@ -90,5 +99,4 @@ about: extra: recipe-maintainers: - - kaiserls - - dweindl + - dweindl \ No newline at end of file diff --git a/python/sdist/conda.recipe/meta_old.yaml b/python/sdist/conda.recipe/meta_old.yaml deleted file mode 100644 index 08bf9f45b1..0000000000 --- a/python/sdist/conda.recipe/meta_old.yaml +++ /dev/null @@ -1,114 +0,0 @@ -{% set name = "amici" %} -{% set version = "0.34.0" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8b68f8a244c267ecdb92fd50e8031aa7b89a7f01674a7b3c3170f9618e7a7d31 - -build: - number: 0 - script: "{{ PYTHON }} -m pip install . -vv" - skip: true # [win or py<37] - script_env: - - BLAS_LIBS="-lopenblas" - - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - numpy>=2.0 - - pip - - setuptools>=77 - - cmake-build-extension==0.6.0 - - python>=3.11 - - swig>=4 - - _openmp_mutex - - libstdcxx-ng - - libgcc-ng - - pandas>=2.0.2 - - sympy>=1.12.1 - - openblas - - boost - - hdf5 - - pkg-config - - libxml2 - - libxslt - host: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - numpy>=2.0 - - pip - - setuptools>=77 - - cmake-build-extension==0.6.0 - - python>=3.11 - - swig>=4 - - _openmp_mutex - - libstdcxx-ng - - libgcc-ng - - pandas>=2.0.2 - - sympy>=1.12.1 - - openblas - - boost - - hdf5 - - pkg-config - - libxml2 - - libxslt - run: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - numpy>=2.0 - - pip - - python>=3.11 - - swig>=4 - - _openmp_mutex - - libstdcxx-ng - - libgcc-ng - - pandas>=2.0.2 - - sympy>=1.12.1 - - libopenblas - - libboost - - libgomp - - hdf5 - - pkg-config - - libxml2 - - libxslt - - libpython -test: - requires: - - python-libsbml - - sbmlmath - - toposort - - wurlitzer - - pandas - imports: - - amici - - amici.amici - commands: - - python -m amici - -about: - home: https://github.com/amici-dev/amici - license: BSD-3-Clause - license_family: BSD - #license_file: LICENSE.txt - summary: 'Advanced Multilanguage Interface to CVODES and IDAS' - - # The remaining entries in this section are optional, but recommended. - description: | - AMICI provides a multi-language (Python, C++, Matlab) interface for the - SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS - (for algebraic differential equations). AMICI allows the user to read - differential equation models specified as SBML or PySB and automatically - compiles such models into .mex simulation files (Matlab), C++ executables - or Python modules. - doc_url: https://amici.readthedocs.io/en/latest/ - dev_url: https://github.com/amici-dev/amici - -extra: - recipe-maintainers: - - dweindl \ No newline at end of file diff --git a/python/sdist/conda.recipe/recipe.yaml b/python/sdist/conda.recipe/recipe.yaml new file mode 100644 index 0000000000..2c63b0ca31 --- /dev/null +++ b/python/sdist/conda.recipe/recipe.yaml @@ -0,0 +1,126 @@ +schema_version: 1 + +context: + name: amici + version: 0.34.2 + +package: + name: ${{ name|lower }} + version: ${{ version }} + +source: + url: https://pypi.io/packages/source/${{ name[0] }}/${{ name }}/${{ name }}-${{ version }}.tar.gz + sha256: 7d9097ea971ea751167269e246ca3a224b069a29a4b820e35faab214e2ecb15a + +build: + # python: + # entry_points: + # - amici_import_petab = amici.petab.cli.import_petab:_main + # - amici_import_petab.py = amici.petab.cli.import_petab:_main + skip: match(python, "<3.11") + script: + # env: + # BLAS_LIBS: "-lopenblas" + content: ${{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation + +requirements: + build: + - ${{ stdlib('c') }} + - ${{ compiler('c') }} + - ${{ compiler('cxx') }} + - python>=3.11 + - if: build_platform != target_platform + then: + - cross-python_{{ target_platform }} + - cmake-build-extension==0.6.0 + - numpy>=2.0 + - setuptools>=77 + - pip + - wheel + - swig>=4 + - libopenblas + - libboost + - hdf5 + - pkg-config + - mkl + # - if: linux + # then: + # - libgomp + # - if: win + # then: + - llvm-openmp + host: + - cmake-build-extension==0.6.0 + - python>=3.11 + - numpy>=2.0 + - setuptools>=77 + - pip + - wheel + - swig>=4 + - libboost + - hdf5 + - pkg-config + - mkl + run: + - numpy>=2.0 + - pip + - setuptools >=77 + - cmake-build-extension==0.6.0 + - python>=3.11 + - swig>=4 + - pandas>=2.0.2 + - sympy>=1.12.1 + - python-libsbml + - toposort + - mpmath + - pyarrow + - sbmlmath + - xarray + +tests: + - python: + imports: + - amici + - amici.amici + pip_check: false # cmake-build-extension is buggy + - script: + - python -m amici + # - amici_import_petab --help + # - amici_import_petab.py --help + # - pytest -v + requirements: + run: + # - fiddy>=0.0.3 # fiddy is not on conda-forge! + - h5py!=3.15 + - pytest + - pytest-cov + - pytest-rerunfailures!=16.0 # v16.0: https://github.com/pytest-dev/pytest-rerunfailures/issues/302 + - coverage + - shyaml + # - antimony!=2.14 # not on conda-forge! + - scipy + - pooch + - beartype + # - petab #petab not available on conda-forge + # - pysb # pysb is not on conda-forge + +about: + license: BSD-3-Clause + #license_file: LICENSE.txt + summary: Advanced Multilanguage Interface to CVODES and IDAS + # The remaining entries in this section are optional, but recommended. + description: | + AMICI provides a multi-language (Python, C++, Matlab) interface for the + SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS + (for algebraic differential equations). AMICI allows the user to read + differential equation models specified as SBML or PySB and automatically + compiles such models into .mex simulation files (Matlab), C++ executables + or Python modules. + homepage: https://github.com/amici-dev/amici + repository: https://github.com/amici-dev/amici + documentation: https://amici.readthedocs.io/en/latest/ + +extra: + recipe-maintainers: + - dweindl + From 605eb3cd24f7ab3506b979a15f0ff6f03de6322c Mon Sep 17 00:00:00 2001 From: Lars Kaiser <71793357+kaiserls@users.noreply.github.com> Date: Tue, 25 Nov 2025 00:11:01 +0100 Subject: [PATCH 3/3] Delete incomplete recipe (meta.yaml) --- python/sdist/conda.recipe/meta.yaml | 102 ---------------------------- 1 file changed, 102 deletions(-) delete mode 100644 python/sdist/conda.recipe/meta.yaml diff --git a/python/sdist/conda.recipe/meta.yaml b/python/sdist/conda.recipe/meta.yaml deleted file mode 100644 index bad9026cc4..0000000000 --- a/python/sdist/conda.recipe/meta.yaml +++ /dev/null @@ -1,102 +0,0 @@ -{% set name = "amici" %} -{% set version = "0.34.0" %} - -package: - name: {{ name|lower }} - version: {{ version }} - -source: - url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz - sha256: 8b68f8a244c267ecdb92fd50e8031aa7b89a7f01674a7b3c3170f9618e7a7d31 - -build: - skip: true # [py<311] - script: "{{ PYTHON }} -m pip install . -vv --no-deps --no-build-isolation" - script_env: - - BLAS_LIBS="-lopenblas" - - -requirements: - build: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - cmake-build-extension==0.6.0 - - setuptools - - pip - - wheel - host: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - numpy>=2.0 - - pip - - setuptools>=77 - - cmake-build-extension==0.6.0 - - python>=3.11 - - swig>=4 - - _openmp_mutex - - libstdcxx-ng - - libgcc-ng - - pandas>=2.0.2 - - sympy>=1.12.1 - - openblas - - boost - - hdf5 - - pkg-config - - libxml2 - - libxslt - run: - - {{ compiler('c') }} - - {{ compiler('cxx') }} - - numpy>=2.0 - - pip - - python>=3.11 - - swig>=4 - - _openmp_mutex - - libstdcxx-ng - - libgcc-ng - - pandas>=2.0.2 - - sympy>=1.12.1 - - libopenblas - - boost - - hdf5 - - pkg-config - - libxml2 - - libxslt - - python-libsbml - - cmake-build-extension ==0.6.0 - - toposort - - mpmath - - setuptools >=48 - - pyarrow - - sbmlmath - - wurlitzer -test: - requires: - - pip - imports: - - amici - - amici.amici - commands: - - python -m amici - -about: - home: https://github.com/amici-dev/amici - license: BSD-3-Clause - license_family: BSD - #license_file: LICENSE.txt - summary: 'Advanced Multilanguage Interface to CVODES and IDAS' - - # The remaining entries in this section are optional, but recommended. - description: | - AMICI provides a multi-language (Python, C++, Matlab) interface for the - SUNDIALS solvers CVODES (for ordinary differential equations) and IDAS - (for algebraic differential equations). AMICI allows the user to read - differential equation models specified as SBML or PySB and automatically - compiles such models into .mex simulation files (Matlab), C++ executables - or Python modules. - doc_url: https://amici.readthedocs.io/en/latest/ - dev_url: https://github.com/amici-dev/amici - -extra: - recipe-maintainers: - - dweindl \ No newline at end of file