From 4af8055f0998087c44cb5f0d13641a828324fce0 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Mon, 6 Jan 2025 17:09:26 +0100 Subject: [PATCH 01/17] Update box_mesh.py --- microgen/box_mesh.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/microgen/box_mesh.py b/microgen/box_mesh.py index 8d479393..9c6ce312 100644 --- a/microgen/box_mesh.py +++ b/microgen/box_mesh.py @@ -25,8 +25,7 @@ # USE_MULTI_RAY = True # except ImportError: -USE_MULTI_RAY = False - +USE_MULTI_RAY = True class ClosestCellsOnBoundaries(NamedTuple): """ From 7859ccf8055f861e26c611d33ed053e1f12f6a8f Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Wed, 25 Feb 2026 17:02:21 +0100 Subject: [PATCH 02/17] Update box_mesh.py --- microgen/box_mesh.py | 1 + 1 file changed, 1 insertion(+) diff --git a/microgen/box_mesh.py b/microgen/box_mesh.py index 9c6ce312..62ee75e4 100644 --- a/microgen/box_mesh.py +++ b/microgen/box_mesh.py @@ -27,6 +27,7 @@ USE_MULTI_RAY = True + class ClosestCellsOnBoundaries(NamedTuple): """ Class to manage closest cells on boundaries From 58753f286fe5407507ce1ac46945b8497180350b Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 11:23:28 +0100 Subject: [PATCH 03/17] switch to latest mac od and add a pyvista setup --- .github/workflows/build-and-test.yml | 4 +++- .github/workflows/integration.yml | 1 + .github/workflows/mmg-packaging.yml | 2 +- .github/workflows/neper-packaging.yml | 2 +- .github/workflows/test-conda-package.yml | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 1e861a97..bc8bcd41 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -16,12 +16,14 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu-latest", "macos-13", "windows-latest"] + os: ["ubuntu-latest", "macos-latest", "windows-latest"] python-version: ["3.9", "3.12"] steps: - uses: actions/checkout@v4 + - uses: pyvista/setup-headless-display-action@v3 + - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 58e9b604..464fa86c 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -20,6 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: pyvista/setup-headless-display-action@v3 - uses: mamba-org/setup-micromamba@v1 with: generate-run-shell: true diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index f92e6edd..e49a1c49 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -24,7 +24,7 @@ jobs: macos: name: MacOS - runs-on: "macos-13" + runs-on: "macos-latest" steps: - uses: actions/checkout@v4 - uses: conda-incubator/setup-miniconda@v3 diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index c56f0f91..9da0621b 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -24,7 +24,7 @@ jobs: macos: name: MacOS - runs-on: "macos-13" + runs-on: "macos-latest" steps: - uses: actions/checkout@v4 - uses: conda-incubator/setup-miniconda@v3 diff --git a/.github/workflows/test-conda-package.yml b/.github/workflows/test-conda-package.yml index b17997d7..9996fd86 100644 --- a/.github/workflows/test-conda-package.yml +++ b/.github/workflows/test-conda-package.yml @@ -9,7 +9,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: ["ubuntu-latest", "macos-13"] + os: ["ubuntu-latest", "macos-latest"] steps: - uses: actions/checkout@v4 - uses: conda-incubator/setup-miniconda@v3 From e607b067a917c04b95e617a349c3ae43d586bb30 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 11:23:34 +0100 Subject: [PATCH 04/17] Update box_mesh.py --- microgen/box_mesh.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/microgen/box_mesh.py b/microgen/box_mesh.py index 62ee75e4..79eed399 100644 --- a/microgen/box_mesh.py +++ b/microgen/box_mesh.py @@ -15,17 +15,12 @@ from .rve import Rve from .single_mesh import SingleMesh, check_if_only_linear_tetrahedral -# We could in future versions make benefit of the embree library -# with multi ray tracing embedded in PyVista. -# However, a very old version of embree (2) is nowadays bound in python -# try: -# import trimesh -# import rtree -# import pyembree -# USE_MULTI_RAY = True -# except ImportError: - -USE_MULTI_RAY = True +try: + import trimesh + + USE_MULTI_RAY = trimesh.ray.has_embree +except ImportError: + USE_MULTI_RAY = False class ClosestCellsOnBoundaries(NamedTuple): From 0d539b88c909129e4a8e01ae5c52fda5a8bd95d6 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 11:23:54 +0100 Subject: [PATCH 05/17] install trimesh and embreex --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5de632de..24e83bf1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,6 +44,10 @@ docs = [ 'mock', 'myst-parser', ] +ray = [ + "trimesh", + "embreex", +] jupyter = [ "jupyterlab<4.3", "jupyter-cadquery", @@ -52,7 +56,7 @@ jupyter = [ "sidecar", "jupyterview", ] -all = ["microgen[dev, docs, jupyter]"] +all = ["microgen[dev, docs, jupyter, ray]"] [project.urls] Documentation = 'https://microgen.readthedocs.io/en/latest' From abb1cd018f32a764f328b1d95a146cd71dd70637 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 12:07:21 +0100 Subject: [PATCH 06/17] =?UTF-8?q?Bump=20Python=20support=20to=203.10?= =?UTF-8?q?=E2=80=933.14=20and=20add=20nlopt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update CI and packaging to require Python >=3.10 and expand tested versions to 3.10, 3.12, 3.13, and 3.14 in both build-and-test and integration workflows. Adjust pyproject.toml: set requires-python to >=3.10, update classifiers to include 3.13 and 3.14 (remove 3.9), add nlopt>=2.9 to dependencies, and change ruff target-version to py310. These changes modernize supported Python versions and include a new native dependency. --- .github/workflows/build-and-test.yml | 2 +- .github/workflows/integration.yml | 2 +- pyproject.toml | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index bc8bcd41..29b6b794 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] - python-version: ["3.9", "3.12"] + python-version: ["3.10", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 464fa86c..c269cfea 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] - python-version: ["3.9", "3.12"] + python-version: ["3.10", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index 24e83bf1..ddf4feea 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ version = "1.2.1" authors = [{ name = "3MAH", email = 'set3mah@gmail.com' }] description = "Microstructure generation and meshing" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" keywords = ["microstructure", "lattice", "periodic", "TPMS", "mesh"] license = { text = "GPLv3" } classifiers = [ @@ -17,12 +17,13 @@ classifiers = [ 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', 'Operating System :: MacOS', - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] -dependencies = ["numpy<2", "pyvista", "gmsh", "meshio", "cadquery<2.5", "scipy"] +dependencies = ["numpy<2", "pyvista", "gmsh", "meshio", "cadquery<2.5", "scipy", "nlopt>=2.9"] [project.optional-dependencies] dev = [ @@ -80,7 +81,7 @@ module = ["gmsh", "scipy.spatial"] ignore_missing_imports = true [tool.ruff] -target-version = "py38" +target-version = "py310" [tool.ruff.lint] exclude = [ From 006ac166c5ea68b1ea0fa5dfb4663fc3b12e50a8 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 12:13:31 +0100 Subject: [PATCH 07/17] Drop Python 3.14 from CI and metadata Remove Python 3.14 from the GitHub Actions test matrices and package classifiers. Updated .github/workflows/build-and-test.yml and .github/workflows/integration.yml to remove "3.14" from the python-version matrix, and removed the "Programming Language :: Python :: 3.14" classifier from pyproject.toml to align package metadata with the CI matrix. --- .github/workflows/build-and-test.yml | 2 +- .github/workflows/integration.yml | 2 +- pyproject.toml | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 29b6b794..eccf182a 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] - python-version: ["3.10", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.12", "3.13"] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index c269cfea..cef06616 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -16,7 +16,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest", "macos-latest", "windows-latest"] - python-version: ["3.10", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.12", "3.13"] steps: - uses: actions/checkout@v4 diff --git a/pyproject.toml b/pyproject.toml index ddf4feea..9728ed39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,6 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: 3.14", ] dependencies = ["numpy<2", "pyvista", "gmsh", "meshio", "cadquery<2.5", "scipy", "nlopt>=2.9"] From 8810727bc47350f6860642814ba8589144d08a35 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 14:47:05 +0100 Subject: [PATCH 08/17] Update environment.yml --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 71265efc..8dbf2b44 100755 --- a/environment.yml +++ b/environment.yml @@ -4,7 +4,7 @@ channels: - set3mah dependencies: - - numpy <2 + - numpy - pyvista - scipy - python-gmsh From 22f77393cec6ab6e5665ced2cf265ea90a51508a Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 17:20:33 +0100 Subject: [PATCH 09/17] Unpin scotch and install VTK via pip on Windows Workflow: add a Windows-only step to install VTK from PyPI (pip install vtk) before installing microgen to avoid relying on a conda-provided VTK build on Windows. Recipes: remove strict version pins for scotch in mmg and neper meta.yaml (replace 6.0.* / 6.* with an unpinned scotch) to permit newer/compatible scotch builds and reduce version conflicts during packaging. --- .github/workflows/integration.yml | 5 +++++ mmg.recipe/meta.yaml | 4 ++-- neper.recipe/meta.yaml | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index f0a18afc..0b8be32f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -52,6 +52,11 @@ jobs: run: python examples/run_examples.py -n auto shell: micromamba-shell {0} + - name: Replace conda VTK with PyPI VTK for Windows + if: runner.os == 'Windows' + run: pip install vtk + shell: pwsh + - name: Install microgen for Windows if: runner.os == 'Windows' run: pip install . --no-deps diff --git a/mmg.recipe/meta.yaml b/mmg.recipe/meta.yaml index dc58f534..fc0848e4 100644 --- a/mmg.recipe/meta.yaml +++ b/mmg.recipe/meta.yaml @@ -20,9 +20,9 @@ requirements: - make # [unix] host: - cmake - - scotch 6.0.* + - scotch run: - - scotch 6.0.* + - scotch about: home: https://github.com/MmgTools/mmg diff --git a/neper.recipe/meta.yaml b/neper.recipe/meta.yaml index 441dac5e..a133f6b7 100644 --- a/neper.recipe/meta.yaml +++ b/neper.recipe/meta.yaml @@ -23,13 +23,13 @@ requirements: - libblas - llvm-openmp # [osx] - gsl - - scotch 6.0.* + - scotch - nlopt - openmp #[not osx] - occt 7.7.0 run: - gsl - - scotch 6.* + - scotch - llvm-openmp # [osx] - nlopt - openmp #[not osx] From 32123eefc2ea77e7f6942b8621f6768ac0e0aa50 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 17:31:35 +0100 Subject: [PATCH 10/17] Add VTK to env and remove Windows pip step Remove the Windows-specific pip install of VTK from the CI workflow and add a vtk >=9.4 dependency to environment.yml. This centralizes VTK installation into the environment configuration so CI no longer needs a platform-specific pip workaround and ensures a consistent VTK version across runners. --- .github/workflows/integration.yml | 5 ----- environment.yml | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 0b8be32f..f0a18afc 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -52,11 +52,6 @@ jobs: run: python examples/run_examples.py -n auto shell: micromamba-shell {0} - - name: Replace conda VTK with PyPI VTK for Windows - if: runner.os == 'Windows' - run: pip install vtk - shell: pwsh - - name: Install microgen for Windows if: runner.os == 'Windows' run: pip install . --no-deps diff --git a/environment.yml b/environment.yml index 8dbf2b44..1658e1a1 100755 --- a/environment.yml +++ b/environment.yml @@ -5,6 +5,7 @@ channels: dependencies: - numpy + - vtk >=9.4 - pyvista - scipy - python-gmsh From 78db0560e25549765e40e9b5a3f2545aad33ace5 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 22:05:23 +0100 Subject: [PATCH 11/17] Update environment.yml This pins pyvista to <0.46.5 in the conda environment only (not in pyproject.toml), avoiding the hard import vtkmodules.vtkRenderingMatplotlib that was added in v0.46.5. Once cadquery on conda-forge supports ocp 7.9 (which brings VTK 9.5 with the module included), the pin can be removed. --- environment.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/environment.yml b/environment.yml index 1658e1a1..852ccfd2 100755 --- a/environment.yml +++ b/environment.yml @@ -5,8 +5,7 @@ channels: dependencies: - numpy - - vtk >=9.4 - - pyvista + - pyvista <0.46.5 - scipy - python-gmsh - meshio From 2af6ef0472d22dfd53a4813f0ef144476b1fa317 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 22:29:57 +0100 Subject: [PATCH 12/17] Bump conda Python to 3.12 and use macOS arm64 Update CI packaging workflows (mmg and neper) to install python=3.12 instead of 3.9 for Linux, macOS, and Windows builds. Also change the macOS upload target from osx-64 to osx-arm64 to publish Apple Silicon packages; conda-build and anaconda login/upload steps remain unchanged. --- .github/workflows/mmg-packaging.yml | 8 ++++---- .github/workflows/neper-packaging.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index aeb35182..550ab423 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -20,7 +20,7 @@ jobs: - name: Conda build for Linux shell: bash -l {0} run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . @@ -38,11 +38,11 @@ jobs: - name: Conda build for MacOS shell: bash -l {0} run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload osx-64/*.tar.bz2 --force + anaconda upload osx-arm64/*.tar.bz2 --force windows: name: Windows @@ -56,7 +56,7 @@ jobs: - name: Conda build for Windows shell: pwsh run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index 71025bcd..b3c71829 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -20,7 +20,7 @@ jobs: - name: Conda build for Linux shell: bash -l {0} run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build neper.recipe -c conda-forge -c set3mah --output-folder . @@ -38,11 +38,11 @@ jobs: - name: Conda build for MacOS shell: bash -l {0} run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload osx-64/*.tar.bz2 --force + anaconda upload osx-arm64/*.tar.bz2 --force windows: name: Windows @@ -56,7 +56,7 @@ jobs: - name: Conda build for Windows shell: pwsh run: | - conda install python=3.9 conda-build anaconda-client + conda install python=3.12 conda-build anaconda-client anaconda logout anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} conda-build neper.recipe -c conda-forge -c set3mah --output-folder . From 0bd01e0ddf74c8c2795ee5e4aa036e87adca9c57 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Thu, 26 Feb 2026 22:39:44 +0100 Subject: [PATCH 13/17] Use Anaconda API token for uploads Replace interactive anaconda login/logout using username/password with token-based uploads using the ANACONDA_API_TOKEN secret. Updated mmg-packaging.yml and neper-packaging.yml to remove login steps and call `anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload ...` for linux, macOS and Windows jobs. Also minor whitespace tidy for conda-build output-folder. --- .github/workflows/mmg-packaging.yml | 18 ++++++------------ .github/workflows/neper-packaging.yml | 18 ++++++------------ 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index 550ab423..7ccf671c 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -21,10 +21,8 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload linux-64/*.tar.bz2 --force + conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/*.tar.bz2 --force macos: name: MacOS @@ -39,10 +37,8 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload osx-arm64/*.tar.bz2 --force + conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/*.tar.bz2 --force windows: name: Windows @@ -57,7 +53,5 @@ jobs: shell: pwsh run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload win-64/*.tar.bz2 --force + conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/*.tar.bz2 --force diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index b3c71829..6a152703 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -21,10 +21,8 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload linux-64/*.tar.bz2 --force + conda-build neper.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/*.tar.bz2 --force macos: name: MacOS @@ -39,10 +37,8 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload osx-arm64/*.tar.bz2 --force + conda-build neper.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/*.tar.bz2 --force windows: name: Windows @@ -57,7 +53,5 @@ jobs: shell: pwsh run: | conda install python=3.12 conda-build anaconda-client - anaconda logout - anaconda login --username ${{ secrets.ANACONDA_USERNAME }} --password ${{ secrets.ANACONDA_PASSWORD }} - conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload win-64/*.tar.bz2 --force + conda-build neper.recipe -c conda-forge -c set3mah --output-folder . + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/*.tar.bz2 --force From 651a7db187496e25e80a10c2ee71d8efb4459a08 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Fri, 27 Feb 2026 08:33:06 +0100 Subject: [PATCH 14/17] Use .conda uploads and bash shell in CI Update GitHub Actions packaging workflows for mmg and neper to upload the .conda artifacts (mmg-*.conda / neper-*.conda) instead of the old *.tar.bz2 pattern, and switch the Windows conda-build step to use bash (bash -l {0}) instead of pwsh. These changes align the upload paths with conda-build's .conda output and ensure the Windows step runs the expected shell for conda commands. --- .github/workflows/mmg-packaging.yml | 8 ++++---- .github/workflows/neper-packaging.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index 7ccf671c..5b94a569 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -22,7 +22,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/mmg-*.conda --force macos: name: MacOS @@ -38,7 +38,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/mmg-*.conda --force windows: name: Windows @@ -50,8 +50,8 @@ jobs: miniconda-version: "latest" activate-environment: packaging - name: Conda build for Windows - shell: pwsh + shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/mmg-*.conda --force diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index 6a152703..f6dcdaec 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -22,7 +22,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/neper-*.conda --force macos: name: MacOS @@ -38,7 +38,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/neper-*.conda --force windows: name: Windows @@ -50,8 +50,8 @@ jobs: miniconda-version: "latest" activate-environment: packaging - name: Conda build for Windows - shell: pwsh + shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/*.tar.bz2 --force + anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/neper-*.conda --force From 0c759d10abde98dece81a81b7606523f7ba676e6 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Fri, 27 Feb 2026 08:42:36 +0100 Subject: [PATCH 15/17] [skip ci] : add upload --- .github/workflows/mmg-packaging.yml | 6 +++--- .github/workflows/neper-packaging.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index 5b94a569..a6473344 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -22,7 +22,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/mmg-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} linux-64/mmg-*.conda --force macos: name: MacOS @@ -38,7 +38,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/mmg-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} osx-arm64/mmg-*.conda --force windows: name: Windows @@ -54,4 +54,4 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/mmg-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} win-64/mmg-*.conda --force diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index f6dcdaec..957fa585 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -22,7 +22,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload linux-64/neper-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} linux-64/neper-*.conda --force macos: name: MacOS @@ -38,7 +38,7 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload osx-arm64/neper-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} osx-arm64/neper-*.conda --force windows: name: Windows @@ -54,4 +54,4 @@ jobs: run: | conda install python=3.12 conda-build anaconda-client conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda --token ${{ secrets.ANACONDA_API_TOKEN }} upload win-64/neper-*.conda --force + anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} win-64/neper-*.conda --force From 2abc126e5aaa9ebc55f733456085ef90c5ddf467 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Fri, 27 Feb 2026 09:00:05 +0100 Subject: [PATCH 16/17] [skip ci] --- .github/workflows/mmg-packaging.yml | 24 +++++++++++++++++++++--- .github/workflows/neper-packaging.yml | 24 +++++++++++++++++++++--- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index a6473344..8dcd51f5 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -21,8 +21,14 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} linux-64/mmg-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload linux-64/*.conda --force --no-progress macos: name: MacOS @@ -37,8 +43,14 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} osx-arm64/mmg-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload osx-arm64/*.conda --force --no-progress windows: name: Windows @@ -53,5 +65,11 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build mmg.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} win-64/mmg-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload win-64/*.conda --force --no-progress diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index 957fa585..6798d88b 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -21,8 +21,14 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} linux-64/neper-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload linux-64/*.conda --force --no-progress macos: name: MacOS @@ -37,8 +43,14 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} osx-arm64/neper-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload osx-arm64/*.conda --force --no-progress windows: name: Windows @@ -53,5 +65,11 @@ jobs: shell: bash -l {0} run: | conda install python=3.12 conda-build anaconda-client + conda config --set anaconda_upload no conda-build neper.recipe -c conda-forge -c set3mah --output-folder . - anaconda upload --token ${{ secrets.ANACONDA_API_TOKEN }} win-64/neper-*.conda --force + - name: Upload to Anaconda + shell: bash -l {0} + env: + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + run: | + anaconda upload win-64/*.conda --force --no-progress From 660e3b55c85f58430e8cbdb36a51839dbf95f7e1 Mon Sep 17 00:00:00 2001 From: Yves Chemisky Date: Fri, 27 Feb 2026 09:41:45 +0100 Subject: [PATCH 17/17] [skip ci] --- .github/workflows/mmg-packaging.yml | 6 +++--- .github/workflows/neper-packaging.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mmg-packaging.yml b/.github/workflows/mmg-packaging.yml index 8dcd51f5..fb908261 100644 --- a/.github/workflows/mmg-packaging.yml +++ b/.github/workflows/mmg-packaging.yml @@ -26,7 +26,7 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload linux-64/*.conda --force --no-progress @@ -48,7 +48,7 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload osx-arm64/*.conda --force --no-progress @@ -70,6 +70,6 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload win-64/*.conda --force --no-progress diff --git a/.github/workflows/neper-packaging.yml b/.github/workflows/neper-packaging.yml index 6798d88b..74f1d996 100644 --- a/.github/workflows/neper-packaging.yml +++ b/.github/workflows/neper-packaging.yml @@ -26,7 +26,7 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload linux-64/*.conda --force --no-progress @@ -48,7 +48,7 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload osx-arm64/*.conda --force --no-progress @@ -70,6 +70,6 @@ jobs: - name: Upload to Anaconda shell: bash -l {0} env: - ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }} + ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_TOKEN }} run: | anaconda upload win-64/*.conda --force --no-progress