Remove coverage measurement.
diff --git a/.github/workflows/cygwin.yml b/.github/workflows/cygwin.yml
index d641b18..caf735a 100644
--- a/.github/workflows/cygwin.yml
+++ b/.github/workflows/cygwin.yml
@@ -87,7 +87,7 @@
       - name: Run pip
         run: |
           export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32
-          python3 -m pip --disable-pip-version-check install gcovr fastjsonschema pefile pytest pytest-subtests pytest-xdist coverage
+          python3 -m pip --disable-pip-version-check install gcovr fastjsonschema pefile pytest pytest-subtests pytest-xdist
         shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}'
 
       - uses: actions/cache/save@v4
@@ -112,17 +112,3 @@
           path: meson-test-run.*
         # test log should be saved on failure
         if: ${{ !cancelled() }}
-
-      - name: Aggregate coverage reports
-        run: |
-          export PATH=/usr/bin:/usr/local/bin:$(cygpath ${SYSTEMROOT})/system32
-          ./ci/combine_cov.sh
-        shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}'
-
-      - name: Upload coverage report
-        uses: codecov/codecov-action@v3
-        with:
-          files: .coverage/coverage.xml
-          name: "${{ matrix.NAME }}"
-          fail_ci_if_error: false
-          verbose: true
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 5588034..ef58895 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -53,7 +53,7 @@
       with:
         python-version: '3.x'
     # Pin mypy to version 1.8, so we retain the ability to lint for Python 3.7
-    - run: python -m pip install "mypy==1.8" coverage strictyaml types-PyYAML types-tqdm types-chevron
+    - run: python -m pip install "mypy==1.8" strictyaml types-PyYAML types-tqdm types-chevron
     - run: python run_mypy.py --allver
       env:
         PYTHONUNBUFFERED: 1
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
index 675807b..cc61d17 100644
--- a/.github/workflows/macos.yml
+++ b/.github/workflows/macos.yml
@@ -35,7 +35,7 @@
     - run: |
         export PATH="$HOME/Library/Python/3.9/bin:$PATH"
         /usr/bin/python3 -m pip install --upgrade pip
-        /usr/bin/python3 -m pip install pytest pytest-xdist pytest-subtests fastjsonschema coverage
+        /usr/bin/python3 -m pip install pytest pytest-xdist pytest-subtests fastjsonschema
     - run: brew install pkg-config ninja llvm qt@5
     - env:
         CPPFLAGS: "-I/opt/homebrew/include"
@@ -50,19 +50,6 @@
         export PKG_CONFIG_PATH="/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/Current/lib/pkgconfig:/opt/homebrew/opt/qt@5/lib/pkgconfig:$PKG_CONFIG_PATH"
         /usr/bin/python3 ./tools/run_with_cov.py ./run_unittests.py
 
-    - name: Aggregate coverage reports
-      run: |
-        export PATH="$HOME/Library/Python/3.9/bin:$PATH"
-        ./ci/combine_cov.sh
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "appleclang [unit tests]"
-        fail_ci_if_error: false
-        verbose: true
-
 
   project-tests-appleclang:
     runs-on: macos-latest
@@ -98,7 +85,7 @@
     # https://github.com/actions/setup-python/issues/58
     - run: brew install pkg-config ninja llvm qt@5 boost ldc hdf5 openmpi lapack scalapack sdl2 boost-python3 gtk-doc zstd ncurses objfw libomp
     - run: |
-        python3 -m pip install cython coverage
+        python3 -m pip install cython
     - env:
         CPPFLAGS: "-I/opt/homebrew/include"
         LDFLAGS: "-L/opt/homebrew/lib"
@@ -114,17 +101,6 @@
         export PKG_CONFIG_PATH="/opt/homebrew/opt/qt@5/lib/pkgconfig:/opt/homebrew/opt/lapack/lib/pkgconfig:/opt/homebrew/opt/ncurses/lib/pkgconfig:$PKG_CONFIG_PATH"
         ./tools/run_with_cov.py ./run_project_tests.py --backend=ninja
 
-    - name: Aggregate coverage reports
-      run: ./ci/combine_cov.sh
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "appleclang [project tests; unity=${{ matrix.unity }}]"
-        fail_ci_if_error: false
-        verbose: true
-
   Qt4macos:
     # This job only works on Intel Macs, because OpenSSL 1.0 doesn't build on
     # Apple ARM
diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml
index d1c2fa2..4f22c09 100644
--- a/.github/workflows/msys2.yml
+++ b/.github/workflows/msys2.yml
@@ -90,7 +90,7 @@
 
       - name: Install dependencies
         run: |
-          python3 -m pip --disable-pip-version-check install gcovr pefile pytest pytest-subtests pytest-xdist coverage
+          python3 -m pip --disable-pip-version-check install gcovr pefile pytest pytest-subtests pytest-xdist
 
       - name: Install pypy3 on x86_64
         run: |
@@ -131,14 +131,3 @@
         with:
           name: ${{ matrix.NAME }}
           path: meson-test-run.*
-
-      - name: Aggregate coverage reports
-        run: ./ci/combine_cov.sh
-
-      - name: Upload coverage report
-        uses: codecov/codecov-action@v3
-        with:
-          files: .coverage/coverage.xml
-          name: "${{ matrix.NAME }}"
-          fail_ci_if_error: false
-          verbose: true
diff --git a/.github/workflows/nonnative.yml b/.github/workflows/nonnative.yml
index 4e9c283..5fc5807 100644
--- a/.github/workflows/nonnative.yml
+++ b/.github/workflows/nonnative.yml
@@ -36,22 +36,10 @@
     - run: |
         apt-get -y purge clang gcc gdc
         apt-get -y autoremove
-        python3 -m pip install coverage
     - uses: actions/checkout@v4
     - name: Run tests
       run: bash -c 'source /ci/env_vars.sh; cd $GITHUB_WORKSPACE; ./tools/run_with_cov.py ./run_tests.py $CI_ARGS --cross ubuntu-armhf.json --cross-only'
 
-    - name: Aggregate coverage reports
-      run: ./ci/combine_cov.sh
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "Ubuntu nonnative"
-        fail_ci_if_error: false
-        verbose: true
-
   cross-cuda:
     runs-on: ubuntu-latest
     container: mesonbuild/cuda-cross:latest
diff --git a/.github/workflows/os_comp.yml b/.github/workflows/os_comp.yml
index 0912a75..6c4e465 100644
--- a/.github/workflows/os_comp.yml
+++ b/.github/workflows/os_comp.yml
@@ -74,17 +74,6 @@
         cd $GITHUB_WORKSPACE
         ./tools/run_with_cov.py ./run_tests.py $CI_ARGS
 
-    - name: Aggregate coverage reports
-      run: ./ci/combine_cov.sh
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "OS Comp [${{ matrix.cfg.name }}]"
-        fail_ci_if_error: false
-        verbose: true
-
   pypy:
     name: 'Arch / PyPy'
     runs-on: ubuntu-latest
@@ -173,14 +162,3 @@
           update-alternatives --set i686-w64-mingw32-g++   /usr/bin/i686-w64-mingw32-g++-posix
 
           ./tools/run_with_cov.py ./run_tests.py $RUN_TESTS_ARGS -- $MESON_ARGS
-
-      - name: Aggregate coverage reports
-        run: ./ci/combine_cov.sh
-
-      - name: Upload coverage report
-        uses: codecov/codecov-action@v3
-        with:
-          files: .coverage/coverage.xml
-          name: "Ubuntu [${{ matrix.cfg.CC }} ${{ matrix.cfg.RUN_TESTS_ARGS }} ${{ matrix.cfg.MESON_ARGS }}]"
-          fail_ci_if_error: false
-          verbose: true
diff --git a/.github/workflows/unusedargs_missingreturn.yml b/.github/workflows/unusedargs_missingreturn.yml
index d6f1246..5e5be8d 100644
--- a/.github/workflows/unusedargs_missingreturn.yml
+++ b/.github/workflows/unusedargs_missingreturn.yml
@@ -52,22 +52,10 @@
       run: |
         sudo apt update -yq
         sudo apt install -yq --no-install-recommends g++ gfortran ninja-build gobjc gobjc++
-        python -m pip install coverage
     - run: ./tools/run_with_cov.py run_project_tests.py --only cmake common fortran platform-linux "objective c" "objective c++"
       env:
         MESON_CI_JOBNAME: linux-ubuntu-gcc-werror
 
-    - name: Aggregate coverage reports
-      run: ./ci/combine_cov.sh
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "UnusedMissingReturn"
-        fail_ci_if_error: false
-        verbose: true
-
   windows:
     runs-on: windows-latest
     steps:
@@ -76,7 +64,7 @@
       with:
         python-version: '3.x'
 
-    - run: pip install ninja pefile coverage
+    - run: pip install ninja pefile
 
     - run: python ./tools/run_with_cov.py run_project_tests.py --only platform-windows
       env:
@@ -84,15 +72,3 @@
         CXX: g++
         FC: gfortran
         MESON_CI_JOBNAME: msys2-gcc-werror
-
-    - name: Aggregate coverage reports
-      run: ./ci/combine_cov.sh
-      shell: C:\msys64\usr\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}'
-
-    - name: Upload coverage report
-      uses: codecov/codecov-action@v3
-      with:
-        files: .coverage/coverage.xml
-        name: "UnusedMissingReturn Windows"
-        fail_ci_if_error: false
-        verbose: true
diff --git a/ci/combine_cov.sh b/ci/combine_cov.sh
deleted file mode 100755
index 99a503b..0000000
--- a/ci/combine_cov.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash
-
-echo "Combining coverage reports..."
-coverage combine
-
-echo "Generating XML report..."
-coverage xml
-
-echo "Printing report"
-coverage report
diff --git a/ci/coverage.ps1 b/ci/coverage.ps1
deleted file mode 100644
index ebd7cd4..0000000
--- a/ci/coverage.ps1
+++ /dev/null
@@ -1,14 +0,0 @@
-echo ""
-echo ""
-echo "=== Gathering coverage report ==="
-echo ""
-
-python3 -m coverage combine
-python3 -m coverage xml
-python3 -m coverage report
-
-# Currently codecov.py does not handle Azure, use this fork of a fork to get it
-# working without requiring a token
-git clone https://github.com/mensinda/codecov-python
-python3 -m pip install --ignore-installed ./codecov-python
-python3 -m codecov -f .coverage/coverage.xml -n "VS$env:compiler $env:arch $env:backend" -c $env:SOURCE_VERSION