diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 3f3235a..b94cec8 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -15,26 +15,41 @@
     libboost-thread-dev
     libsqlite3-dev
     libssl-dev
-    pkg-config
+    pkgconf
     python3
 )
+DNF_PKGS=(
+    boost-devel
+    gcc-c++
+    libasan
+    lld
+    openssl-devel
+    pkgconf
+    python3
+    sqlite-devel
+)
 FORMULAE=(boost openssl pkgconf)
-PIP_PKGS=()
 case $JOB_NAME in
     *code-coverage)
-        APT_PKGS+=(lcov python3-pip)
-        PIP_PKGS+=('gcovr~=5.2')
+        APT_PKGS+=(lcov)
         ;;
     *Docs)
-        APT_PKGS+=(doxygen graphviz python3-pip)
+        APT_PKGS+=(doxygen graphviz)
         FORMULAE+=(doxygen graphviz)
-        PIP_PKGS+=(sphinx sphinxcontrib-doxylink)
         ;;
 esac
 
+install_uv() {
+    if [[ -z $GITHUB_ACTIONS && $ID_LIKE == *debian* ]]; then
+        sudo apt-get install -qy --no-install-recommends pipx
+        pipx upgrade uv || pipx install uv
+    fi
+}
+
 set -x
 
 if [[ $ID == macos ]]; then
+    export HOMEBREW_COLOR=1
     export HOMEBREW_NO_ENV_HINTS=1
     if [[ -n $GITHUB_ACTIONS ]]; then
         export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
@@ -45,10 +60,17 @@
     sudo apt-get update -qq
     sudo apt-get install -qy --no-install-recommends "${APT_PKGS[@]}"
 elif [[ $ID_LIKE == *fedora* ]]; then
-    sudo dnf install -y gcc-c++ libasan lld pkgconf-pkg-config python3 \
-                        boost-devel openssl-devel sqlite-devel
+    sudo dnf install -y "${DNF_PKGS[@]}"
 fi
 
-if (( ${#PIP_PKGS[@]} )); then
-    pip3 install --user --upgrade --upgrade-strategy=eager "${PIP_PKGS[@]}"
-fi
+case $JOB_NAME in
+    *code-coverage)
+        install_uv
+        ;;
+    *Docs)
+        install_uv
+        export FORCE_COLOR=1
+        export UV_NO_MANAGED_PYTHON=1
+        uv tool install sphinx --upgrade --with-requirements docs/requirements.txt
+        ;;
+esac
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index f2ba812..d3fe14d 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -4,13 +4,13 @@
 if [[ -z $DISABLE_ASAN ]]; then
     ASAN="--with-sanitizer=address"
 fi
-if [[ $JOB_NAME == *"code-coverage" ]]; then
+if [[ $JOB_NAME == *code-coverage ]]; then
     COVERAGE="--with-coverage"
 fi
 
 set -x
 
-if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
+if [[ $JOB_NAME != *code-coverage && $JOB_NAME != *limited-build ]]; then
     # Build in release mode with tests
     ./waf --color=yes configure --with-tests
     ./waf --color=yes build
@@ -30,7 +30,5 @@
 ./waf --color=yes configure --debug --with-chronosync --with-psync --with-svs --with-tests $ASAN $COVERAGE
 ./waf --color=yes build
 
-# (tests will be run against the debug version)
-
 # Install
 sudo ./waf --color=yes install
diff --git a/.jenkins.d/30-coverage.sh b/.jenkins.d/30-coverage.sh
index c758aaa..4432716 100755
--- a/.jenkins.d/30-coverage.sh
+++ b/.jenkins.d/30-coverage.sh
@@ -1,30 +1,36 @@
 #!/usr/bin/env bash
-set -exo pipefail
+set -eo pipefail
 
-if [[ $JOB_NAME == *"code-coverage" ]]; then
-    # Generate an XML report (Cobertura format) and a detailed HTML report using gcovr
-    # Note: trailing slashes are important in the paths below. Do not remove them!
-    gcovr --object-directory build \
-          --filter src/ \
-          --exclude-throw-branches \
-          --exclude-unreachable-branches \
-          --cobertura build/coverage.xml \
-          --html-details build/gcovr/ \
-          --print-summary
+[[ $JOB_NAME == *code-coverage ]] || exit 0
 
-    # Generate a detailed HTML report using lcov
-    lcov --quiet \
-         --capture \
-         --directory . \
-         --exclude "$PWD/tests/*" \
-         --no-external \
-         --rc lcov_branch_coverage=1 \
-         --output-file build/coverage.info
+export FORCE_COLOR=1
+export UV_NO_MANAGED_PYTHON=1
 
-    genhtml --branch-coverage \
-            --demangle-cpp \
-            --legend \
-            --output-directory build/lcov \
-            --title "NLSR unit tests" \
-            build/coverage.info
-fi
+set -x
+
+# Generate an XML report (Cobertura format) and a detailed HTML report using gcovr
+# Note: trailing slashes are important in the paths below. Do not remove them!
+uvx gcovr@5.2 \
+    --object-directory build \
+    --filter src/ \
+    --exclude-throw-branches \
+    --exclude-unreachable-branches \
+    --cobertura build/coverage.xml \
+    --html-details build/gcovr/ \
+    --print-summary
+
+# Generate a detailed HTML report using lcov
+lcov --quiet \
+     --capture \
+     --directory . \
+     --exclude "$PWD/tests/*" \
+     --no-external \
+     --rc lcov_branch_coverage=1 \
+     --output-file build/coverage.info
+
+genhtml --branch-coverage \
+        --demangle-cpp \
+        --legend \
+        --output-directory build/lcov \
+        --title "NLSR unit tests" \
+        build/coverage.info
