From 3e66a64a8068201fd38a2e71d03ecf70030f1bea Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 13:52:51 +0100 Subject: [PATCH 1/7] feat: support Python 3.13 and 3.14 --- .github/workflows/code-quality.yml | 23 ++++++++++++----------- pyproject.toml | 4 +++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 498f803..d8dbc3c 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -89,11 +89,12 @@ jobs: strategy: matrix: version: [ - {python: "3.10", torch: "2.1.0"}, - {python: "3.11", torch: "2.2.0"}, - {python: "3.12", torch: "2.3.0"}, - {python: "3.12", torch: "2.4.0"}, - # {python: "3.13", torch: "2.5.0"} # Python 3.13 currently is not supported because PyGAM does not support it + {python: "3.10", torch: "2.4.0"}, + {python: "3.11", torch: "2.5.0"}, + {python: "3.12", torch: "2.6.0"}, + {python: "3.12", torch: "2.7.0"}, + {python: "3.13", torch: "2.8.0"}, + {python: "3.14", torch: "2.9.0"}, ] steps: - name: Clean up potential remnants of past jobs @@ -108,10 +109,9 @@ jobs: with: python-version: ${{ matrix.version.python }} - name: Install package and dependencies - if: ${{ matrix.version.python != '3.13'}} + if: ${{ matrix.version.python <= '3.14'}} shell: bash run: | - apt-get update && apt-get install -y --no-install-recommends g++ python -m pip install torch==${{ matrix.version.torch }} python -m pip install torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html @@ -119,9 +119,10 @@ jobs: python -m pip install --upgrade -e .'[dev, docs]' pip install --force-reinstall git+https://github.com/josafatburmeister/circle_detection.git - name: Install package and dependencies - if: ${{ matrix.version.python == '3.13'}} + if: ${{ matrix.version.python >= '3.14'}} shell: bash run: | + apt-get update && apt-get install -y --no-install-recommends g++ python -m pip install torch==${{ matrix.version.torch }} python -m pip install --upgrade wheel setuptools numpy python -m pip install --no-use-pep517 torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html @@ -135,7 +136,7 @@ jobs: run: | python -m pip install numpy==1.26.4 - name: Execute tests - if: matrix.version.python != '3.12' + if: matrix.version.python != '3.14' shell: bash run: | pytest @@ -144,12 +145,12 @@ jobs: run: | pytest - name: Execute tests (without numba JIT) and measure code coverage - if: matrix.version.python == '3.12' + if: matrix.version.python == '3.14' shell: bash run: | NUMBA_DISABLE_JIT=1 pytest --cov --cov-report=xml - name: Upload results to Codecov - if: matrix.version.python == '3.12' + if: matrix.version.python == '3.14' uses: codecov/codecov-action@v4 with: fail_ci_if_error: true diff --git a/pyproject.toml b/pyproject.toml index cc9d482..7dfc0f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,10 +23,12 @@ classifiers = [ "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", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] keywords = ["tree", "point cloud", "segmentation"] -requires-python = ">=3.10, <3.13" +requires-python = ">=3.10" dependencies = [ "circle_detection>=1.0.0, <2.0.0", "cloth-simulation-filter>=1.1.5, <2.0.0", From 1a37b982ac7b7208940e4970efd4c64e7622853f Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 19:59:02 +0100 Subject: [PATCH 2/7] update CI pipeline --- .github/workflows/code-quality.yml | 37 ++++++++++++++---------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index d8dbc3c..15403af 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -84,18 +84,21 @@ jobs: pylint src --rcfile=.rcfile pylint test --rcfile=.rcfile --disable duplicate-code --disable missing-function-docstring test: + strategy: runs-on: ubuntu-latest - # run tests for all supported Python and PyTorch versions strategy: matrix: version: [ - {python: "3.10", torch: "2.4.0"}, - {python: "3.11", torch: "2.5.0"}, - {python: "3.12", torch: "2.6.0"}, - {python: "3.12", torch: "2.7.0"}, - {python: "3.13", torch: "2.8.0"}, - {python: "3.14", torch: "2.9.0"}, + {python: "3.10", torch: "2.5.0", image: "python:3.10-trixie"}, + {python: "3.11", torch: "2.6.0", image: "python:3.11-trixie"}, + {python: "3.12", torch: "2.7.0", image: "python:3.12-trixie"}, + {python: "3.13", torch: "2.8.0", image: "python:3.13-trixie"}, + {python: "3.14", torch: "2.9.0", image: "python:3.14-trixie"} ] + container: + image: ${{ matrix.version.image }} + volumes: + - ${{ github.workspace }}:/github/workspace steps: - name: Clean up potential remnants of past jobs uses: AutoModality/action-clean@v1.1.0 @@ -104,10 +107,6 @@ jobs: with: ref: ${{ github.head_ref }} fetch-depth: 0 - - name: Setup up Python - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.version.python }} - name: Install package and dependencies if: ${{ matrix.version.python <= '3.14'}} shell: bash @@ -117,37 +116,35 @@ jobs: python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git python -m pip install --upgrade -e .'[dev, docs]' - pip install --force-reinstall git+https://github.com/josafatburmeister/circle_detection.git - name: Install package and dependencies if: ${{ matrix.version.python >= '3.14'}} shell: bash run: | - apt-get update && apt-get install -y --no-install-recommends g++ + apt-get update && apt-get install -y libhdf5-dev + python -m pip install wheel setuptools + python -m pip install git+https://github.com/PyTables/PyTables python -m pip install torch==${{ matrix.version.torch }} - python -m pip install --upgrade wheel setuptools numpy python -m pip install --no-use-pep517 torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git + cd /github/workspace/ python -m pip install --upgrade -e .'[dev, docs]' - pip install --force-reinstall git+https://github.com/josafatburmeister/circle_detection.git - name: Install compatible numpy version if: ${{ matrix.version.python == '3.10' || matrix.version.python == '3.11' || matrix.version.python == '3.12' }} shell: bash run: | python -m pip install numpy==1.26.4 - name: Execute tests - if: matrix.version.python != '3.14' - shell: bash - run: | - pytest - - name: Execute tests and measure code coverage + if: matrix.version.python < '3.14' shell: bash run: | + cd /github/workspace/ pytest - name: Execute tests (without numba JIT) and measure code coverage if: matrix.version.python == '3.14' shell: bash run: | + cd /github/workspace/ NUMBA_DISABLE_JIT=1 pytest --cov --cov-report=xml - name: Upload results to Codecov if: matrix.version.python == '3.14' From 41b7e170a6d85529f9557dd04d3e042a56793975 Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 20:18:25 +0100 Subject: [PATCH 3/7] fix error in CI pipeline --- .github/workflows/code-quality.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 15403af..73a4b84 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -84,7 +84,6 @@ jobs: pylint src --rcfile=.rcfile pylint test --rcfile=.rcfile --disable duplicate-code --disable missing-function-docstring test: - strategy: runs-on: ubuntu-latest strategy: matrix: From 41cf56e947d40bd767d98b7e8a820e2054df3dd9 Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 20:36:10 +0100 Subject: [PATCH 4/7] fix CI pipeline --- .github/workflows/code-quality.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 73a4b84..281bade 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -123,8 +123,10 @@ jobs: python -m pip install wheel setuptools python -m pip install git+https://github.com/PyTables/PyTables python -m pip install torch==${{ matrix.version.torch }} - python -m pip install --no-use-pep517 torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html - python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html + git clone https://github.com/rusty1s/pytorch_scatter.git + cd pytorch_scatter && python setup.py install && python setup.py clean --all && cd .. && rm -r pytorch_scatter + git clone https://github.com/rusty1s/pytorch_cluster.git + cd pytorch_cluster && python setup.py install && python setup.py clean --all && cd .. && rm -r pytorch_cluster pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git cd /github/workspace/ python -m pip install --upgrade -e .'[dev, docs]' From 7407552521a9314854b26ed39c6f72eef19532f9 Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 20:46:34 +0100 Subject: [PATCH 5/7] fix CI pipeline --- .github/workflows/code-quality.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 281bade..795ad69 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -107,7 +107,7 @@ jobs: ref: ${{ github.head_ref }} fetch-depth: 0 - name: Install package and dependencies - if: ${{ matrix.version.python <= '3.14'}} + if: ${{ matrix.version.python < '3.14'}} shell: bash run: | python -m pip install torch==${{ matrix.version.torch }} From adab7c2f2411720f0648933c12900aa9644a2f7f Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Tue, 6 Jan 2026 21:10:29 +0100 Subject: [PATCH 6/7] fix CI pipeline --- .github/workflows/code-quality.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 795ad69..c186801 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -123,10 +123,8 @@ jobs: python -m pip install wheel setuptools python -m pip install git+https://github.com/PyTables/PyTables python -m pip install torch==${{ matrix.version.torch }} - git clone https://github.com/rusty1s/pytorch_scatter.git - cd pytorch_scatter && python setup.py install && python setup.py clean --all && cd .. && rm -r pytorch_scatter - git clone https://github.com/rusty1s/pytorch_cluster.git - cd pytorch_cluster && python setup.py install && python setup.py clean --all && cd .. && rm -r pytorch_cluster + python -m pip install torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html + python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git cd /github/workspace/ python -m pip install --upgrade -e .'[dev, docs]' From 94bb5d8be1dc1bc0e02a51bb8639eb7850a3a85b Mon Sep 17 00:00:00 2001 From: Josafat-Mattias Burmeister Date: Mon, 9 Mar 2026 17:22:27 +0100 Subject: [PATCH 7/7] update CI pipeline --- .github/workflows/code-quality.yml | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index c186801..1f1af1e 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -51,12 +51,11 @@ jobs: shell: bash run: | cd /github/workspace/ - pip install torch==2.4.0 - pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+cpu.html - pip install torch-cluster -f https://data.pyg.org/whl/torch-2.4.0+cpu.html + pip install torch==2.9.0 + pip install torch-scatter -f https://data.pyg.org/whl/torch-2.9.0+cpu.html + pip install torch-cluster -f https://data.pyg.org/whl/torch-2.9.0+cpu.html pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git python -m pip install -v --upgrade -e .'[dev, docs]' - pip install --force-reinstall git+https://github.com/josafatburmeister/circle_detection.git mypy . --warn-unused-ignores --show-error-codes --no-incremental pylint: runs-on: ubuntu-latest @@ -73,14 +72,11 @@ jobs: shell: bash run: | cd /github/workspace/ - pip install torch==2.4.0 - pip install torch-scatter -f https://data.pyg.org/whl/torch-2.4.0+cpu.html - pip install torch-cluster -f https://data.pyg.org/whl/torch-2.4.0+cpu.html + pip install torch==2.9.0 + pip install torch-scatter -f https://data.pyg.org/whl/torch-2.9.0+cpu.html + pip install torch-cluster -f https://data.pyg.org/whl/torch-2.9.0+cpu.html pip install --force-reinstall git+https://github.com/ai4trees/pointtorch.git python -m pip install -v --upgrade .'[dev, docs]' - echo "install circle detection" - pip install --force-reinstall git+https://github.com/josafatburmeister/circle_detection.git - echo "installed circle detection" pylint src --rcfile=.rcfile pylint test --rcfile=.rcfile --disable duplicate-code --disable missing-function-docstring test: @@ -119,9 +115,6 @@ jobs: if: ${{ matrix.version.python >= '3.14'}} shell: bash run: | - apt-get update && apt-get install -y libhdf5-dev - python -m pip install wheel setuptools - python -m pip install git+https://github.com/PyTables/PyTables python -m pip install torch==${{ matrix.version.torch }} python -m pip install torch-scatter -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html python -m pip install torch-cluster -f https://data.pyg.org/whl/torch-${{ matrix.version.torch }}+cpu.html