diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 874f3952104e5d8dede9d9b3fdf6fd6aa11fb4d8..b3f4902a6c15008ad872eba211676159bfddda28 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -74,7 +74,7 @@ test_python311:
     - cp dist/*.whl .
   after_script:
     - pip install twine
-    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
+    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
 
 upload_python311_armv7l:
   image: zoo.smok.co/build/build:latest
@@ -82,7 +82,7 @@ upload_python311_armv7l:
   dependencies:
     - build_python311_armv7l
   script:
-    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
+    - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
   only:
     - tags
   except:
diff --git a/docs/changelog.rst b/docs/changelog.rst
index bb09bf180b7df8842daaf5a6f3f3ef046e86ec35..9aecde16969609670569b2536c26299ab93e2f0c 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,14 +1,11 @@
 Changelog
 =========
 
-v3.1.1
-------
-
-* added support for Python 3.12
 
 v3.1.0
 ------
 
+* added support for Python 3.12
 * Moved entirely to SMOKs' build architecture.
 * support for Python 3.7 and 3.6 dropped
 
diff --git a/docs/conf.py b/docs/conf.py
index 76edc1c6f776dde2789d1269c149f18aea8e1ca3..fac8ac4b18e15fcda12c49cb11eb9546203aeddd 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -22,7 +22,7 @@ copyright = '2021 Dronehub Group sp. z o. o., 2022-2024 SMOK sp. z o. o.'
 author = 'Piotr Maślanka'
 
 # The full version, including alpha/beta/rc tags
-release = '3.1.1a1'
+release = '3.1.0'
 
 
 # -- General configuration ---------------------------------------------------
diff --git a/setup.cfg b/setup.cfg
index 7760fd5ca8da1cb4d3aa3c2764431f18c7d66f7b..83813215fc8e49c9988f07f8c6e8a06cb10a5116 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,13 +1,13 @@
 # coding: utf-8
 [metadata]
-version = 3.1.1a1
+version = 3.1.0
 name = minijson
 long_description = file: README.md
 long_description_content_type = text/markdown; charset=UTF-8
 author = Piotr Maślanka
 license_files =
     LICENSE
-author_email = piotr.maslanka@dronehub.ai
+author_email = pmaslanka@smok.co
 description = A library for serializing JSON in a small binary format
 url = https://git.dms-serwis.com.pl/smokserwis/minijson
 project_urls =