diff --git a/CHANGELOG.md b/CHANGELOG.md
index 160abb58a62c03b13e6214e3a5e47a902bcacda9..4d6259a196c21af581825dbff0060e66962a62a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# [7.10.0](https://gitlab.com/to-be-continuous/python/compare/7.9.2...7.10.0) (2025-04-16)
+
+
+### Features
+
+* **Hatch:** add Hatch support as a new build system ([f684e63](https://gitlab.com/to-be-continuous/python/commit/f684e634496711d984843b25141f57df6e3826be))
+
 ## [7.9.2](https://gitlab.com/to-be-continuous/python/compare/7.9.1...7.9.2) (2025-04-02)
 
 
diff --git a/README.md b/README.md
index e5b7725df1fc4dc2e57e2bdc941495bb31448166..e53a639aad9ff89efd5fcc7ce1970b470eb78823 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ Add the following to your `.gitlab-ci.yml`:
 ```yaml
 include:
   # 1: include the component
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.10.0
     # 2: set/override component inputs
     inputs:
       image: registry.hub.docker.com/library/python:3.12-slim
@@ -29,7 +29,7 @@ Add the following to your `.gitlab-ci.yml`:
 include:
   # 1: include the template
   - project: 'to-be-continuous/python'
-    ref: '7.9.2'
+    ref: '7.10.0'
     file: '/templates/gitlab-ci-python.yml'
 
 variables:
@@ -602,9 +602,9 @@ With:
 ```yaml
 include:
   # main component
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.10.0
   # Vault variant
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-vault@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-vault@7.10.0
     inputs:
       vault-base-url: "https://vault.acme.host/v1"
       # audience claim for JWT
@@ -643,13 +643,13 @@ The variant requires the additional configuration parameters:
 
 ```yaml
 include:
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.10.0
     # 2: set/override component inputs
     inputs:
       image: registry.hub.docker.com/library/python:3.12-slim
       pytest-enabled: true
 
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-gcp@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-gcp@7.10.0
     inputs:
       # common OIDC config for non-prod envs
       gcp-oidc-provider: "projects/<gcp_nonprod_proj_id>/locations/global/workloadIdentityPools/<pool_id>/providers/<provider_id>"
@@ -709,13 +709,13 @@ then set the required configuration.
 
 ```yaml
 include:
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python@7.10.0
     # 2: set/override component inputs
     inputs:
       image: registry.hub.docker.com/library/python:3.12-slim
       pytest-enabled: true
 
-  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-aws-codeartifact@7.9.2
+  - component: $CI_SERVER_FQDN/to-be-continuous/python/gitlab-ci-python-aws-codeartifact@7.10.0
     inputs:
       aws-region: "us-east-1"
       aws-codeartifact-domain: "acme"
diff --git a/templates/gitlab-ci-python-gcp.yml b/templates/gitlab-ci-python-gcp.yml
index d6aa1f5449e3d616d5703f82c430651c63274c7b..384e644bcc4b7798bda1169398eb4549185d9833 100644
--- a/templates/gitlab-ci-python-gcp.yml
+++ b/templates/gitlab-ci-python-gcp.yml
@@ -46,7 +46,7 @@ variables:
   image: $PYTHON_IMAGE
   services:
     - name: "$TBC_TRACKING_IMAGE"
-      command: ["--service", "python", "7.9.2"]
+      command: ["--service", "python", "7.10.0"]
   id_tokens:
     GCP_JWT:
       aud: "$GCP_OIDC_AUD"
diff --git a/templates/gitlab-ci-python-vault.yml b/templates/gitlab-ci-python-vault.yml
index 5162a0fdd324b87152b626d409a3b31495da8d59..50300561c2726c897bc201084cc1592d5dde6cd3 100644
--- a/templates/gitlab-ci-python-vault.yml
+++ b/templates/gitlab-ci-python-vault.yml
@@ -22,7 +22,7 @@ variables:
 .python-base:
   services:
     - name: "$TBC_TRACKING_IMAGE"
-      command: ["--service", "python", "7.9.2"]
+      command: ["--service", "python", "7.10.0"]
     - name: "$TBC_VAULT_IMAGE"
       alias: "vault-secrets-provider"
   variables:
diff --git a/templates/gitlab-ci-python.yml b/templates/gitlab-ci-python.yml
index c332124965256b4d9354f2d7288919b86c718e74..1a7c07a9bcdb4a08aefcf1159226b789657be211 100644
--- a/templates/gitlab-ci-python.yml
+++ b/templates/gitlab-ci-python.yml
@@ -1086,7 +1086,7 @@ stages:
   image: $PYTHON_IMAGE
   services:
     - name: "$TBC_TRACKING_IMAGE"
-      command: ["--service", "python", "7.9.2"]
+      command: ["--service", "python", "7.10.0"]
   variables:
     # set local cache dir; most Python tools honour XDG specs
     XDG_CACHE_HOME: "$CI_PROJECT_DIR/.cache"