diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index 953c48cd..9ca69cef 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -1,7 +1,7 @@
 # This workflow will upload a Python Package using Twine when a release is created
 # For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
 
-name: Publish to PyPI
+name: Upload package to PyPI
 
 on:
   release:
@@ -21,6 +21,8 @@ jobs:
 
     steps:
     - uses: actions/checkout@v4
+      with:
+        fetch-depth: 0
     - name: Set up Python
       uses: actions/setup-python@v4
       with:
@@ -28,11 +30,13 @@ jobs:
     - name: Install dependencies
       run: |
         python -m pip install --upgrade pip
-        pip install setuptools wheel twine
+        pip install setuptools setuptools_scm wheel twine
     - name: Build and publish
       env:
         TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
         TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+      # Build package, test pip install works, then upload to PyPI with twine
       run: |
         python setup.py sdist bdist_wheel
+        pip install dist/*.tar.gz
         twine upload dist/*
diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-tests.yml
similarity index 98%
rename from .github/workflows/python-package.yml
rename to .github/workflows/python-tests.yml
index 6913c1f4..9b335b7f 100644
--- a/.github/workflows/python-package.yml
+++ b/.github/workflows/python-tests.yml
@@ -1,7 +1,7 @@
 # This workflow will install Python dependencies, run tests and lint with a single version of Python
 # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
 
-name: build
+name: Tests
 
 on:
   push:
@@ -61,7 +61,7 @@ jobs:
       if: steps.cache.outputs.cache-hit != 'true'
       run: |
         mamba install pyyaml python=${{ matrix.python-version }}
-        python .github/scripts/generate_yml_env_fixed_py.py --pyv ${{ matrix.python-version }} --add "graphviz,opencv" "environment.yml"
+        python .github/scripts/generate_yml_env_fixed_py.py --pyv ${{ matrix.python-version }} --add "graphviz,opencv,pytransform3d" "environment.yml"
         mamba env update -n xdem-dev -f environment-ci-py${{ matrix.python-version }}.yml
 
     - name: Install project
diff --git a/pyproject.toml b/pyproject.toml
index 8c95a93c..4f716305 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,15 +1,15 @@
 [build-system]
 # Minimum requirements for the build system to execute.
 requires = [
-    "setuptools>=42",
-    "setuptools_scm[toml]>=6.2",
+    "setuptools>=64",
+    "setuptools_scm[toml]>=8",
     "wheel",
 ]
 build-backend = "setuptools.build_meta"
 
 # To write version to file
 [tool.setuptools_scm]
-write_to = "xdem/_version.py"
+version_file = "xdem/_version.py"
 fallback_version = "0.0.1"
 
 [tool.black]
diff --git a/requirements.txt b/requirements.txt
index 0176ab5e..700b92c0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -15,5 +15,5 @@ scikit-image
 scikit-gstat>=1.0
 geoutils==0.0.15
 pip
-setuptools>=42
-setuptools_scm[toml]>=6.2
+setuptools>=64
+setuptools_scm[toml]>=8