diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 54a7c2ff5d14c7bed6b3c3e6206736772ea0351c_LmdpdGxhYi1jaS55bWw=..c60027c8cc3e72f3173a78c68452a9dbbb57739f_LmdpdGxhYi1jaS55bWw= 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -288,5 +288,5 @@
     - DOCKER_BASE_IMAGE_NAME="$TEMP_IMAGE" DOCKER_IMAGE="xcgd/odoo_scripts" tag-img
   rules: !reference [publish_package, rules]
 
-release_job:
+prepare_job:
   stage: deploy
@@ -292,3 +292,3 @@
   stage: deploy
-  image: registry.gitlab.com/gitlab-org/release-cli:latest
+  image: $TEMP_IMAGE
   needs:
@@ -294,5 +294,6 @@
   needs:
-    - publish_package
+    - job: publish_package
+    - job: build-docker-image
   rules:
     - if: $CI_COMMIT_TAG
   script:
@@ -296,4 +297,23 @@
   rules:
     - if: $CI_COMMIT_TAG
   script:
+    # Go back just before the tag
+    - hg up .~1
+    - towncrier build --version=$CI_COMMIT_TAG --draft > changes
+    - echo "DESCRIPTION='$(cat changes)'" >> variables.env
+  artifacts:
+    reports:
+      dotenv: variables.env
+
+release_job:
+  stage: !reference [prepare_job, stage]
+  image: registry.gitlab.com/gitlab-org/release-cli:latest
+  needs:
+    - job: prepare_job
+      artifacts: true
+      optional: true
+  rules: !reference [prepare_job, rules]
+  variables:
+    GIT_STRATEGY: none
+  script:
     - echo "running release_job"
@@ -299,4 +319,3 @@
     - echo "running release_job"
-    - export EXTRA_DESCRIPTION="test"
   release:
     name: "$CI_COMMIT_TAG"
@@ -301,5 +320,5 @@
   release:
     name: "$CI_COMMIT_TAG"
-    description: "Created using the release-cli $EXTRA_DESCRIPTION"
+    description: "$DESCRIPTION"
     tag_name: "$CI_COMMIT_TAG"
     ref: "$CI_COMMIT_TAG"
@@ -304,3 +323,3 @@
     tag_name: "$CI_COMMIT_TAG"
     ref: "$CI_COMMIT_TAG"
-    # TODO find a way to automatically add the packages and changelog to the release
+    # TODO find a way to automatically add the packages to the release (need a valid generic URL)
diff --git a/Dockerfile b/Dockerfile
index 54a7c2ff5d14c7bed6b3c3e6206736772ea0351c_RG9ja2VyZmlsZQ==..c60027c8cc3e72f3173a78c68452a9dbbb57739f_RG9ja2VyZmlsZQ== 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,7 +9,7 @@
 LABEL org.opencontainers.image.title="Odoo scripts"
 LABEL org.opencontainers.image.source=$VCS_URL
 RUN apk add --no-cache --update zsh rsync postgresql-libs mercurial grep git perl openssh-client
-RUN pip install hg-evolve && mkdir -p /etc/mercurial/hgrc.d && zsh -c 'echo "[extensions]\nevolve =/usr/local/lib/python3.11/site-packages/hgext3rd/evolve\n" >/etc/mercurial/hgrc.d/evolve.rc'
+RUN pip install hg-evolve towncrier && mkdir -p /etc/mercurial/hgrc.d && zsh -c 'echo "[extensions]\nevolve =/usr/local/lib/python3.11/site-packages/hgext3rd/evolve\n" >/etc/mercurial/hgrc.d/evolve.rc'
 ARG VENDIR_VERSION=0.41.0
 ARG VENDIR_SHA256=3b1094bf45a9ff5c2915a986f4d7cee8480c3cab31c060445f851c48f397ee31
 RUN --mount=target=/tmp/downloads,type=cache,sharing=shared \