diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1699d2a5443d105364ac227fcadce08292e0043..9579b58036689ec75d94a504584dee99a86b7800 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,35 @@
+# [4.0.0](https://gitlab.com/to-be-continuous/python/compare/3.2.1...4.0.0) (2022-02-25)
+
+
+### Bug Fixes
+
+* **Poetry:** Poetry cache in GitLab CI cache ([9fbaa6d](https://gitlab.com/to-be-continuous/python/commit/9fbaa6db687746c0c223caf01bf745f7eac91abb))
+
+
+### chore
+
+* renamed unprefixed variables ([8c8a873](https://gitlab.com/to-be-continuous/python/commit/8c8a873b795c4f8a6a8f07e9ed7729d9c35dacd5))
+
+
+### Features
+
+* add multi build-system support (Poetry, Setuptools or requirements file) ([130e210](https://gitlab.com/to-be-continuous/python/commit/130e2102af56dc8719ba5c87a7e31902fb9fe228))
+* add Pipenv support ([7afc0db](https://gitlab.com/to-be-continuous/python/commit/7afc0dbfccfe6b7678cce2d6a9f7f7ececff193f))
+* **release:** complete release process refactoring ([ff8b985](https://gitlab.com/to-be-continuous/python/commit/ff8b9856a0bb045932f4810410404261cd848ea4))
+
+
+### BREAKING CHANGES
+
+* **release:** complete refactoring or release process, including variables and jobs redefinition
+- no more separate publish job: the entire release process is now performed by the py-release job
+- TWINE_XXX variables removed and replaced by PYTHON_REPOSITORY_XXX
+- RELEASE_VERSION_PART variable replaced by PYTHON_RELEASE_NEXT
+
+For additional info, see the doc.
+* rename $REQUIREMENTS_FILE as $PYTHON_REQS_FILE and $PYTHON_REQS_FILE as $PYTHON_EXTRA_REQS_FILES
+default extra requirements changed from 'test-requirements.txt' to 'requirements-dev.txt'
+* removed $PYTHON_POETRY_DISABLED with $PYTHON_BUILD_SYSTEM (see doc)
+
 ## [3.2.1](https://gitlab.com/to-be-continuous/python/compare/3.2.0...3.2.1) (2021-12-21)
 
 
diff --git a/README.md b/README.md
index 7d06b4ca272ae560705a54f2ecfcc6b1fe337df8..3b38ef730412a862597dc8939c778433c958d652 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@ In order to include this template in your project, add the following to your `gi
 ```yaml
 include:
   - project: 'to-be-continuous/python'
-    ref: '3.2.1'
+    ref: '4.0.0'
     file: '/templates/gitlab-ci-python.yml'
 ```
 
diff --git a/templates/gitlab-ci-python.yml b/templates/gitlab-ci-python.yml
index a8188ebe1b0e05b09b9bd40f88994b95cb9d865d..d4a96ce04488f57fa25f874b947bf797b3b5abbb 100644
--- a/templates/gitlab-ci-python.yml
+++ b/templates/gitlab-ci-python.yml
@@ -540,7 +540,7 @@ variables:
     fi
   }
 
-  if [[ "$TEMPLATE_CHECK_UPDATE_DISABLED" != "true" ]]; then check_for_update python "3.2.1"; fi
+  if [[ "$TEMPLATE_CHECK_UPDATE_DISABLED" != "true" ]]; then check_for_update python "4.0.0"; fi
   unscope_variables
 
   # ENDSCRIPT
@@ -552,7 +552,7 @@ variables:
   image: $PYTHON_IMAGE
   services:
     - name: "$CI_REGISTRY/to-be-continuous/tools/tracking:master"
-      command: ["--service", "python", "3.2.1"]
+      command: ["--service", "python", "4.0.0"]
   # Cache downloaded dependencies and plugins between builds.
   # To keep cache across branches add 'key: "$CI_JOB_NAME"'
   cache: