diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b62d5d27c13ed852078794d8ca4a62bd91b13277..b46f58e0b1d33b913ecb22239d3a4571ba4fe942 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -33,6 +33,11 @@ stages:
 build:
   stage: build
   script:
+    - mkdir -p latest
+    - "(curl -sS --header 'PRIVATE-TOKEN: ${CI_JOB_TOKEN}' https://${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/jobs/artifacts/${CI_COMMIT_BRANCH}/download?job=build | bsdtar -xf - -C latest) || true"
+    - test -d latest/dist && export LATEST_UTIL_VERSION $(cd latest/dist; ls *.whl | sed -r 's/.*\+([a-z0-9.]+)-.*/\1/g')
+    - test -d latest/dist && export LATEST_API_VERSION $(cd latest/dist; ls *.whl | sed -r 's/netdb_client-([0-9]+\.[0-9]+\.[0-9]+).*/\1/g')
+    - test -d latest/dist && export POST_NUM $(cd latest/dist; ls *.whl | sed -r 's/.*\.post([0-9]+).*/\1/g')
     - python3 -m build
     - TWINE_PASSWORD=${CI_JOB_TOKEN} TWINE_USERNAME=gitlab-ci-token python3 -m twine upload --verbose --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi --skip-existing dist/*
   artifacts:
diff --git a/setup.py b/setup.py
index f1ec6414765aef19ea7efabb7daea179f7e02a0d..b1993c0112effe198aa9ec537a2d9ffdc30bbf18 100644
--- a/setup.py
+++ b/setup.py
@@ -12,6 +12,10 @@ for v in vers:
     if largest_ver is None or largest_ver < sem_v:
         largest_ver = sem_v 
 
+latest_previous_util_version = os.environ.get('LATEST_UTIL_VERSION', None)
+latest_previous_api_version = os.environ.get('LATEST_API_VERSION', None)
+post_version = os.environ.get('POST_NUM', None)
+
 def get_gen_version():
     ver = subprocess.run(["pip freeze | grep net_api_generator"], shell=True, text=True, check=True, capture_output=True).stdout
     return ver.split('@')[-1][:12]
@@ -31,9 +35,17 @@ class APIGenBuild(build_py):
         subprocess.run(['net-api-generator', 'python', f'--output-dir={target_dir}'], check=True, env=environ)
         build_py.run(self)
 
+util_version = f'{os.environ.get("CI_COMMIT_SHORT_SHA", "HEAD")}.{get_gen_version()}'
+
+if util_version != latest_previous_util_version && str(largest_ver) == latest_previous_api_version:
+    if post_version is None:
+        post_version = 1
+    else:
+        post_version = int(post_version) + 1
+
 setup(
     name='netdb_client',
-    version=f'{str(largest_ver)}{".dev1" if os.environ.get("CI_COMMIT_BRANCH", "local") == "devel" else ""}+{os.environ.get("CI_COMMIT_SHORT_SHA", "HEAD")}.{get_gen_version()}',
+    version=f'{str(largest_ver)}{".post" + post_version if post_version is not None elese ""}{".dev1" if os.environ.get("CI_COMMIT_BRANCH", "local") == "devel" else ""}+{util_version}',
     author='NETVS-Team <netvs@scc.kit.edu>',
     description='This is a meta package to install the automatically generated NET-API definitions for the currently supported API versions.',
     url='https://git.scc.kit.edu/scc-net/net-suite/netdb-client-lib',