Updating the Cloud Function workspace
This article explains how to update your Cloud Function workspace when there is a new version. We regularly release new versions with
Updating to ixoncdkingress 1.0.0
Since ixoncdkingress 1.0.0, it requires Python 3.12.x. First make sure you have installed Python 3.12.x and that you are using it:
$ python --version
Python 3.12.13In your workspace, find the file requirements.txt and change the version after ixoncdkingress to 1.0.0:
ixoncdkingress==1.0.0Remove the venv folder, if it exists. The existing folder is for the old Python version. A new venv will be created automatically for the new Python version when you run the Cloud Function:
$ make py-distclean
rm -rf ./venv
$ make run
Setting up virtual environment for Python 3
/usr/bin/python3 -m venv ./venv
./venv/bin/python3 -m pip install pip setuptools wheel --upgrade
Requirement already satisfied: pip in ./venv/lib/python3.12/site-packages (24.0)
Collecting pip
Using cached pip-26.0.1-py3-none-any.whl.metadata (4.7 kB)
Collecting setuptools
Using cached setuptools-82.0.1-py3-none-any.whl.metadata (6.5 kB)
Collecting wheel
Using cached wheel-0.46.3-py3-none-any.whl.metadata (2.4 kB)
Collecting packaging>=24.0 (from wheel)
Using cached packaging-26.0-py3-none-any.whl.metadata (3.3 kB)
Using cached pip-26.0.1-py3-none-any.whl (1.8 MB)
Using cached setuptools-82.0.1-py3-none-any.whl (1.0 MB)
Using cached wheel-0.46.3-py3-none-any.whl (30 kB)
Using cached packaging-26.0-py3-none-any.whl (74 kB)
Installing collected packages: setuptools, pip, packaging, wheel
Attempting uninstall: pip
Found existing installation: pip 24.0
Uninstalling pip-24.0:
Successfully uninstalled pip-24.0
Successfully installed packaging-26.0 pip-26.0.1 setuptools-82.0.1 wheel-0.46.3
Installing application dependencies
./venv/bin/python3 -m pip install --requirement requirements-dev.txt
...
Installing collected packages: urllib3, typing-extensions, PyYaml, pycparser, load-environ-typed, idna, dominate, dnspython, charset-normalizer, certifi, annotated-types, requests, pymongo, pydantic-core, cffi, pydantic, docker, cryptography, ixoncdkingress
Successfully installed PyYaml-6.0.3 annotated-types-0.7.0 certifi-2026.2.25 cffi-2.0.0 charset-normalizer-3.4.7 cryptography-42.0.8 dnspython-2.8.0 docker-7.0.0 dominate-2.9.1 idna-3.11 ixoncdkingress-1.0.0 load-environ-typed-0.3.0 pycparser-3.0 pydantic-2.10.6 pydantic-core-2.27.2 pymongo-4.7.3 requests-2.31.0 typing-extensions-4.15.0 urllib3-2.6.3
echo > venv/pip-dev.done
CBC_PATH=./functions ./venv/bin/python3 -m ixoncdkingress
2026-04-03 11:54:24,052 - ixoncdkingress - INFO - Starting DocumentDB server
2026-04-03 11:54:29,204 - ixoncdkingress - INFO - DocumentDB server started successfully
2026-04-03 11:54:29,205 - ixoncdkingress - INFO - wsgiref listening on http://127.0.0.1:8020/
2026-04-03 11:54:29,205 - ixoncdkingress - INFO - CBC_PATH: ./functions
You can now verify that your Cloud Function still works as expected and upload a new version.
Useful links
The links below give a summary of what has changed in Python.
Troubleshooting
Wrong Python version
If you have the wrong Python version, the make run call will fail:
$ python --version
Python 3.10.14
$ make run
Setting up virtual environment for Python 3
/usr/bin/python3 -m venv ./venv
./venv/bin/python3 -m pip install pip setuptools wheel --upgrade
Requirement already satisfied: pip in ./venv/lib/python3.10/site-packages (23.0.1)
Collecting pip
Using cached pip-26.0.1-py3-none-any.whl (1.8 MB)
Requirement already satisfied: setuptools in ./venv/lib/python3.10/site-packages (65.5.0)
Collecting setuptools
Using cached setuptools-82.0.1-py3-none-any.whl (1.0 MB)
Collecting wheel
Using cached wheel-0.46.3-py3-none-any.whl (30 kB)
Collecting packaging>=24.0
Using cached packaging-26.0-py3-none-any.whl (74 kB)
Installing collected packages: setuptools, pip, packaging, wheel
Attempting uninstall: setuptools
Found existing installation: setuptools 65.5.0
Uninstalling setuptools-65.5.0:
Successfully uninstalled setuptools-65.5.0
Attempting uninstall: pip
Found existing installation: pip 23.0.1
Uninstalling pip-23.0.1:
Successfully uninstalled pip-23.0.1
Successfully installed packaging-26.0 pip-26.0.1 setuptools-82.0.1 wheel-0.46.3
WARNING: There was an error checking the latest version of pip.
Installing application dependencies
./venv/bin/python3 -m pip install --requirement requirements-dev.txt
ERROR: Ignored the following yanked versions: 0.0.8, 0.0.9, 0.0.14, 0.0.15
ERROR: Ignored the following versions that require a different python version: 1.0.0 Requires-Python ~=3.12.0; 1.0.0.dev0 Requires-Python ~=3.12.0
ERROR: Could not find a version that satisfies the requirement ixoncdkingress==1.0.0 (from versions: 0.0.6, 0.0.7, 0.0.10, 0.0.11, 0.0.12, 0.0.13, 0.0.16, 0.0.17.dev0, 0.0.17, 0.0.18.dev0, 0.0.18.dev1, 0.0.18.dev2, 0.0.18.dev3, 0.0.18.dev4, 0.0.18.dev5, 0.0.18, 0.0.19.dev0, 0.0.19, 0.0.20.dev0, 0.0.20.dev1, 0.0.20.dev2, 0.0.20.dev3, 0.0.20.dev4, 0.0.20, 0.0.21.dev0, 0.0.21, 0.0.22.dev0, 0.0.22.dev1, 0.0.22, 0.0.23.dev1, 0.0.23.dev2, 0.0.23)
ERROR: No matching distribution found for ixoncdkingress==1.0.0
make: *** [Makefile:102: venv/pip-dev.done] Error 1
To prevent running into problems with multiple installations of Python on the same system, consider using a tool like pyenv to manage them. This is especially useful if you still have other Cloud Functions or other projects that still depend on Python 3.10, or newer projects that need Python 3.13.
Existing venv folder for older Python version
venv folder for older Python versionIf you do not remove the venv folder prior to running make run, it will keep using the old Python version (because it will call ./venv/bin/python3 instead of /usr/bin/python3). Be sure to completely remove the venv folder.
$ ls -1
context_values.yaml
functions
LICENSE
Makefile
README.md
requirements-dev.txt
requirements.txt
venv
$ python --version
Python 3.12.13
$ make run
Installing application dependencies
./venv/bin/python3 -m pip install --requirement requirements-dev.txt
ERROR: Ignored the following yanked versions: 0.0.8, 0.0.9, 0.0.14, 0.0.15
ERROR: Ignored the following versions that require a different python version: 1.0.0 Requires-Python ~=3.12.0; 1.0.0.dev0 Requires-Python ~=3.12.0
ERROR: Could not find a version that satisfies the requirement ixoncdkingress==1.0.0 (from versions: 0.0.6, 0.0.7, 0.0.10, 0.0.11, 0.0.12, 0.0.13, 0.0.16, 0.0.17.dev0, 0.0.17, 0.0.18.dev0, 0.0.18.dev1, 0.0.18.dev2, 0.0.18.dev3, 0.0.18.dev4, 0.0.18.dev5, 0.0.18, 0.0.19.dev0, 0.0.19, 0.0.20.dev0, 0.0.20.dev1, 0.0.20.dev2, 0.0.20.dev3, 0.0.20.dev4, 0.0.20, 0.0.21.dev0, 0.0.21, 0.0.22.dev0, 0.0.22.dev1, 0.0.22, 0.0.23.dev1, 0.0.23.dev2, 0.0.23)
ERROR: No matching distribution found for ixoncdkingress==1.0.0
make: *** [Makefile:102: venv/pip-dev.done] Error 1
Updated about 3 hours ago
