From 57e9b752fed460f5542bda226467210d0135f4fb Mon Sep 17 00:00:00 2001
From: Nicolas Drebenstedt <897972+cutoffthetop@users.noreply.github.com>
Date: Wed, 15 Jan 2025 11:41:20 +0100
Subject: [PATCH] feature/template maint 2024-11-22 (#129)

# PR Context
- some regular version maintenance
- includes version fix for mx-1731, for try-out see
https://github.com/robert-koch-institut/mex-release/pull/87/files and
the correct versions on that release
https://github.com/robert-koch-institut/mex-release/releases/tag/0.3.1

# Changed
- optimize pip and pdm environment variables
- bump year in license files to 2025

# Removed
- remove wheel dependency from requirements.txt

# Fixed
- build correct package versions in release pipeline

---------

Signed-off-by: Nicolas Drebenstedt <897972+cutoffthetop@users.noreply.github.com>
Co-authored-by: RKI | Metadata Exchange <121876825+RKIMetadataExchange@users.noreply.github.com>
---
 .github/workflows/release.yml                               | 6 ++++--
 .github/workflows/renovatebot.yml                           | 2 +-
 CHANGELOG.md                                                | 4 ++++
 LICENSE                                                     | 2 +-
 .../.github/workflows/cookiecutter.yml                      | 4 +++-
 .../.github/workflows/documentation.yml                     | 4 +++-
 .../.github/workflows/linting.yml                           | 4 +++-
 .../.github/workflows/release.yml                           | 6 ++++--
 .../.github/workflows/renovatebot.yml                       | 2 +-
 .../.github/workflows/testing.yml                           | 4 +++-
 mex-{{ cookiecutter.project_name }}/.pre-commit-config.yaml | 4 ++--
 mex-{{ cookiecutter.project_name }}/Dockerfile              | 5 +++--
 mex-{{ cookiecutter.project_name }}/LICENSE                 | 2 +-
 mex-{{ cookiecutter.project_name }}/pyproject.toml          | 4 ++--
 mex-{{ cookiecutter.project_name }}/requirements.txt        | 5 ++---
 requirements.txt                                            | 5 ++---
 16 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index e8a9d2b..abef176 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -15,8 +15,10 @@ on:
         required: true
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 permissions:
@@ -84,6 +86,7 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-depth: 1
+          ref: ${{ needs.release.outputs.tag }}
 
       - name: Cache requirements
         uses: actions/cache@v4
@@ -106,6 +109,5 @@ jobs:
       - name: Build wheel and sdist distros and create a github release
         env:
           GH_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}
-          PDM_CHECK_UPDATE: False
         run: |
           gh release create ${{ needs.release.outputs.tag }} --generate-notes --latest --verify-tag
diff --git a/.github/workflows/renovatebot.yml b/.github/workflows/renovatebot.yml
index 7a1af58..17d6e10 100644
--- a/.github/workflows/renovatebot.yml
+++ b/.github/workflows/renovatebot.yml
@@ -22,7 +22,7 @@ jobs:
           fetch-depth: 1
 
       - name: Run renovatebot
-        uses: renovatebot/github-action@v41.0.2
+        uses: renovatebot/github-action@v41.0.8
         env:
           RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.GPG_SIGNING_KEY }}
           RENOVATE_REPOSITORIES: "robert-koch-institut/mex-template"
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f285852..efd87b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -24,16 +24,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - constrain dev-dependencies only to major/minor versions, to limit renovate noise
 - title-case readme headings for a more professional look
 - use commit-signing flow from mex-release
+- optimize pip and pdm environment variables
+- bump year in license files to 2025
 
 ### Deprecated
 
 ### Removed
 
 - remove black dependency and pre-commit hook
+- remove wheel dependency from requirements.txt
 
 ### Fixed
 
 - remove --no-editable flag to avoid installing local package into venv
+- build correct package versions in release pipeline
 
 ### Security
 
diff --git a/LICENSE b/LICENSE
index 25955ae..0d52b13 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2024 Robert Koch-Institut
+Copyright (c) 2025 Robert Koch-Institut
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/cookiecutter.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/cookiecutter.yml
index 8cb7fa4..5123308 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/cookiecutter.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/cookiecutter.yml	
@@ -13,8 +13,10 @@ concurrency:
   cancel-in-progress: true
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 jobs:
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/documentation.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/documentation.yml
index 801fc7c..413f458 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/documentation.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/documentation.yml	
@@ -8,8 +8,10 @@ on:
   workflow_dispatch:
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 permissions:
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/linting.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/linting.yml
index 97cdcfa..8a27392 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/linting.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/linting.yml	
@@ -12,8 +12,10 @@ on:
   workflow_dispatch:
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 concurrency:
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/release.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/release.yml
index 02164d8..2f24cb0 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/release.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/release.yml	
@@ -15,8 +15,10 @@ on:
         required: true
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 permissions:
@@ -133,6 +135,7 @@ jobs:
         uses: actions/checkout@v4
         with:
           fetch-depth: 1
+          {% raw %}ref: ${{ needs.release.outputs.tag }}{% endraw %}
 
       - name: Cache requirements
         uses: actions/cache@v4
@@ -155,7 +158,6 @@ jobs:
       - name: Build wheel and sdist distros and create a github release
         env:
           {% raw %}GH_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}{% endraw %}
-          PDM_CHECK_UPDATE: False
         run: |
           {% raw -%}
           gh release create ${{ needs.release.outputs.tag }} --generate-notes --latest --verify-tag
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/renovatebot.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/renovatebot.yml
index d5bd0dd..715d6a8 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/renovatebot.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/renovatebot.yml	
@@ -22,7 +22,7 @@ jobs:
           fetch-depth: 1
 
       - name: Run renovatebot
-        uses: renovatebot/github-action@v41.0.2
+        uses: renovatebot/github-action@v41.0.8
         env:
           RENOVATE_GIT_PRIVATE_KEY: {% raw %}${{ secrets.GPG_SIGNING_KEY }}{% endraw %}
           RENOVATE_REPOSITORIES: "robert-koch-institut/mex-{{ cookiecutter.project_name }}"
diff --git a/mex-{{ cookiecutter.project_name }}/.github/workflows/testing.yml b/mex-{{ cookiecutter.project_name }}/.github/workflows/testing.yml
index 8468de4..06fe865 100644
--- a/mex-{{ cookiecutter.project_name }}/.github/workflows/testing.yml	
+++ b/mex-{{ cookiecutter.project_name }}/.github/workflows/testing.yml	
@@ -12,8 +12,10 @@ on:
   workflow_dispatch:
 
 env:
-  PIP_NO_OPTION: on
+  PDM_CHECK_UPDATE: False
+  PIP_DISABLE_PIP_VERSION_CHECK: on
   PIP_NO_CLEAN: on
+  PIP_NO_INPUT: on
   PIP_PREFER_BINARY: on
 
 concurrency:
diff --git a/mex-{{ cookiecutter.project_name }}/.pre-commit-config.yaml b/mex-{{ cookiecutter.project_name }}/.pre-commit-config.yaml
index ee8e3f2..d328f57 100644
--- a/mex-{{ cookiecutter.project_name }}/.pre-commit-config.yaml	
+++ b/mex-{{ cookiecutter.project_name }}/.pre-commit-config.yaml	
@@ -3,7 +3,7 @@ default_language_version:
   python: python3.11
 repos:
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.7.3
+    rev: v0.9.1
     hooks:
       - id: ruff
         args: [--fix, --exit-non-zero-on-fix]
@@ -25,7 +25,7 @@ repos:
       - id: fix-byte-order-marker
         name: byte-order
   - repo: https://github.com/pdm-project/pdm
-    rev: 2.20.1
+    rev: 2.22.2
     hooks:
       - id: pdm-lock-check
         name: pdm
diff --git a/mex-{{ cookiecutter.project_name }}/Dockerfile b/mex-{{ cookiecutter.project_name }}/Dockerfile
index c74834a..c4a8d63 100644
--- a/mex-{{ cookiecutter.project_name }}/Dockerfile	
+++ b/mex-{{ cookiecutter.project_name }}/Dockerfile	
@@ -11,9 +11,10 @@ LABEL org.opencontainers.image.vendor="robert-koch-institut"
 ENV PYTHONUNBUFFERED=1
 ENV PYTHONOPTIMIZE=1
 
-ENV PIP_PROGRESS_BAR=off
-ENV PIP_PREFER_BINARY=on
 ENV PIP_DISABLE_PIP_VERSION_CHECK=on
+ENV PIP_NO_INPUT: on
+ENV PIP_PREFER_BINARY=on
+ENV PIP_PROGRESS_BAR=off
 
 ENV MEX_{{ cookiecutter.project_name|upper }}_HOST=0.0.0.0
 
diff --git a/mex-{{ cookiecutter.project_name }}/LICENSE b/mex-{{ cookiecutter.project_name }}/LICENSE
index 25955ae..0d52b13 100644
--- a/mex-{{ cookiecutter.project_name }}/LICENSE	
+++ b/mex-{{ cookiecutter.project_name }}/LICENSE	
@@ -1,6 +1,6 @@
 MIT License
 
-Copyright (c) 2024 Robert Koch-Institut
+Copyright (c) 2025 Robert Koch-Institut
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/mex-{{ cookiecutter.project_name }}/pyproject.toml b/mex-{{ cookiecutter.project_name }}/pyproject.toml
index 3163d90..407d07b 100644
--- a/mex-{{ cookiecutter.project_name }}/pyproject.toml	
+++ b/mex-{{ cookiecutter.project_name }}/pyproject.toml	
@@ -15,7 +15,7 @@ optional-dependencies.dev = [
     "pytest-random-order>=1,<2",
     "pytest-xdist>=3,<4",
     "pytest>=8,<9",
-    "ruff>=0.7,<1",
+    "ruff>=0.9,<1",
     "sphinx>=8,<9",
 ]
 
@@ -138,5 +138,5 @@ known-first-party = ["mex", "tests"]
 convention = "google"
 
 [build-system]
-requires = ["pdm-backend==2.4.1"]
+requires = ["pdm-backend==2.4.3"]
 build-backend = "pdm.backend"
diff --git a/mex-{{ cookiecutter.project_name }}/requirements.txt b/mex-{{ cookiecutter.project_name }}/requirements.txt
index 7470a61..b8007c0 100644
--- a/mex-{{ cookiecutter.project_name }}/requirements.txt	
+++ b/mex-{{ cookiecutter.project_name }}/requirements.txt	
@@ -1,5 +1,4 @@
-cruft==2.15.0
+cruft==2.16.0
 mex-release==0.3.0
-pdm==2.20.1
+pdm==2.22.1
 pre-commit==4.0.1
-wheel==0.45.0
diff --git a/requirements.txt b/requirements.txt
index 7470a61..3eac021 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,4 @@
-cruft==2.15.0
+cruft==2.16.0
 mex-release==0.3.0
-pdm==2.20.1
+pdm==2.22.2
 pre-commit==4.0.1
-wheel==0.45.0