Skip to content

chore: Update CHANGELOG.md

3af717c
Select commit
Loading
Failed to load commit list.
Merged

chore: release main #493

chore: Update CHANGELOG.md
3af717c
Select commit
Loading
Failed to load commit list.
Google Cloud Build / core-python-sdk-pr-py314 (toolbox-testing-438616) succeeded Jan 13, 2026 in 1m 10s

Summary

Build Information

Trigger core-python-sdk-pr-py314
Build bfc7e42c-39cc-4d13-9f14-537db4e4a195
Start 2026-01-13T01:53:12-08:00
Duration 1m2.587s
Status SUCCESS

Steps

Step Status Duration
Install library requirements SUCCESS 34.406s
Install test requirements SUCCESS 6.009s
Run integration tests SUCCESS 17.957s

Details


starting build "bfc7e42c-39cc-4d13-9f14-537db4e4a195"

FETCHSOURCE
From https://github.com/googleapis/mcp-toolbox-sdk-python
 * branch            3af717cddba935220d75d6c2ee5fc05851bbdfed -> FETCH_HEAD
HEAD is now at 3af717c chore: Update CHANGELOG.md
GitCommit:
3af717cddba935220d75d6c2ee5fc05851bbdfed
BUILD
Starting Step #0 - "Install library requirements"
Step #0 - "Install library requirements": Pulling image: python:3.14
Step #0 - "Install library requirements": 3.14: Pulling from library/python
Step #0 - "Install library requirements": 2ca1bfae7ba8: Pulling fs layer
Step #0 - "Install library requirements": 82e18c5e1c15: Pulling fs layer
Step #0 - "Install library requirements": be442a7e0d6f: Pulling fs layer
Step #0 - "Install library requirements": 26d823e3848f: Pulling fs layer
Step #0 - "Install library requirements": 0a23b95910e1: Pulling fs layer
Step #0 - "Install library requirements": 3096782d2500: Pulling fs layer
Step #0 - "Install library requirements": a53307d2fabc: Pulling fs layer
Step #0 - "Install library requirements": a53307d2fabc: Waiting
Step #0 - "Install library requirements": 0a23b95910e1: Verifying Checksum
Step #0 - "Install library requirements": 0a23b95910e1: Download complete
Step #0 - "Install library requirements": a53307d2fabc: Verifying Checksum
Step #0 - "Install library requirements": a53307d2fabc: Download complete
Step #0 - "Install library requirements": 82e18c5e1c15: Verifying Checksum
Step #0 - "Install library requirements": 82e18c5e1c15: Download complete
Step #0 - "Install library requirements": 3096782d2500: Verifying Checksum
Step #0 - "Install library requirements": 3096782d2500: Download complete
Step #0 - "Install library requirements": 2ca1bfae7ba8: Verifying Checksum
Step #0 - "Install library requirements": 2ca1bfae7ba8: Download complete
Step #0 - "Install library requirements": be442a7e0d6f: Verifying Checksum
Step #0 - "Install library requirements": be442a7e0d6f: Download complete
Step #0 - "Install library requirements": 26d823e3848f: Verifying Checksum
Step #0 - "Install library requirements": 26d823e3848f: Download complete
Step #0 - "Install library requirements": 2ca1bfae7ba8: Pull complete
Step #0 - "Install library requirements": 82e18c5e1c15: Pull complete
Step #0 - "Install library requirements": be442a7e0d6f: Pull complete
Step #0 - "Install library requirements": 26d823e3848f: Pull complete
Step #0 - "Install library requirements": 0a23b95910e1: Pull complete
Step #0 - "Install library requirements": 3096782d2500: Pull complete
Step #0 - "Install library requirements": a53307d2fabc: Pull complete
Step #0 - "Install library requirements": Digest: sha256:99536892f722b2a8f83c7b3a1e26734e1c183aa914f6cad1d89d9adb68b4dd90
Step #0 - "Install library requirements": Status: Downloaded newer image for python:3.14
Step #0 - "Install library requirements": docker.io/library/python:3.14
Step #0 - "Install library requirements": Collecting uv
Step #0 - "Install library requirements":   Downloading uv-0.9.24-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Step #0 - "Install library requirements": Downloading uv-0.9.24-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.3 MB)
Step #0 - "Install library requirements":    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.3/22.3 MB 126.0 MB/s  0:00:00
Step #0 - "Install library requirements": Installing collected packages: uv
Step #0 - "Install library requirements": Successfully installed uv-0.9.24
Step #0 - "Install library requirements": WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
Step #0 - "Install library requirements": Using CPython 3.14.2 interpreter at: /usr/local/bin/python3
Step #0 - "Install library requirements": Creating virtual environment at: /workspace/venv
Step #0 - "Install library requirements": Activate with: source /workspace/venv/bin/activate
Step #0 - "Install library requirements": Using Python 3.14.2 environment at: /workspace/venv
Step #0 - "Install library requirements": Resolved 1 package in 70ms
Step #0 - "Install library requirements": Downloading uv (21.3MiB)
Step #0 - "Install library requirements":  Downloaded uv
Step #0 - "Install library requirements": Prepared 1 package in 332ms
Step #0 - "Install library requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #0 - "Install library requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #0 - "Install library requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #0 - "Install library requirements": Installed 1 package in 66ms
Step #0 - "Install library requirements":  + uv==0.9.24
Step #0 - "Install library requirements": Using Python 3.14.2 environment at: /workspace/venv
Step #0 - "Install library requirements": Resolved 25 packages in 450ms
Step #0 - "Install library requirements": Downloading pydantic-core (2.0MiB)
Step #0 - "Install library requirements": Downloading aiohttp (1.6MiB)
Step #0 - "Install library requirements":  Downloaded pydantic-core
Step #0 - "Install library requirements":  Downloaded aiohttp
Step #0 - "Install library requirements": Prepared 25 packages in 219ms
Step #0 - "Install library requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #0 - "Install library requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #0 - "Install library requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #0 - "Install library requirements": Installed 25 packages in 71ms
Step #0 - "Install library requirements":  + aiohappyeyeballs==2.6.1
Step #0 - "Install library requirements":  + aiohttp==3.13.3
Step #0 - "Install library requirements":  + aiosignal==1.4.0
Step #0 - "Install library requirements":  + annotated-types==0.7.0
Step #0 - "Install library requirements":  + attrs==25.4.0
Step #0 - "Install library requirements":  + cachetools==6.2.4
Step #0 - "Install library requirements":  + certifi==2026.1.4
Step #0 - "Install library requirements":  + charset-normalizer==3.4.4
Step #0 - "Install library requirements":  + deprecated==1.3.1
Step #0 - "Install library requirements":  + frozenlist==1.8.0
Step #0 - "Install library requirements":  + google-auth==2.45.0
Step #0 - "Install library requirements":  + idna==3.11
Step #0 - "Install library requirements":  + multidict==6.7.0
Step #0 - "Install library requirements":  + propcache==0.4.1
Step #0 - "Install library requirements":  + pyasn1==0.6.1
Step #0 - "Install library requirements":  + pyasn1-modules==0.4.2
Step #0 - "Install library requirements":  + pydantic==2.12.5
Step #0 - "Install library requirements":  + pydantic-core==2.41.5
Step #0 - "Install library requirements":  + requests==2.32.5
Step #0 - "Install library requirements":  + rsa==4.9.1
Step #0 - "Install library requirements":  + typing-extensions==4.15.0
Step #0 - "Install library requirements":  + typing-inspection==0.4.2
Step #0 - "Install library requirements":  + urllib3==2.6.3
Step #0 - "Install library requirements":  + wrapt==2.0.1
Step #0 - "Install library requirements":  + yarl==1.22.0
Finished Step #0 - "Install library requirements"
Starting Step #1 - "Install test requirements"
Step #1 - "Install test requirements": Already have image (with digest): python:3.14
Step #1 - "Install test requirements": Using Python 3.14.2 environment at: /workspace/venv
Step #1 - "Install test requirements": Resolved 74 packages in 2.53s
Step #1 - "Install test requirements":    Building toolbox-core @ file:///workspace/packages/toolbox-core
Step #1 - "Install test requirements": Downloading pygments (1.2MiB)
Step #1 - "Install test requirements": Downloading black (1.7MiB)
Step #1 - "Install test requirements": Downloading grpcio (6.3MiB)
Step #1 - "Install test requirements": Downloading jedi (1.5MiB)
Step #1 - "Install test requirements": Downloading mypy (13.0MiB)
Step #1 - "Install test requirements":       Built toolbox-core @ file:///workspace/packages/toolbox-core
Step #1 - "Install test requirements":  Downloaded grpcio
Step #1 - "Install test requirements":  Downloaded black
Step #1 - "Install test requirements":  Downloaded pygments
Step #1 - "Install test requirements":  Downloaded mypy
Step #1 - "Install test requirements":  Downloaded jedi
Step #1 - "Install test requirements": Prepared 49 packages in 1.08s
Step #1 - "Install test requirements": warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
Step #1 - "Install test requirements":          If the cache and target directories are on different filesystems, hardlinking may not be supported.
Step #1 - "Install test requirements":          If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Step #1 - "Install test requirements": Installed 49 packages in 296ms
Step #1 - "Install test requirements":  + aioresponses==0.7.8
Step #1 - "Install test requirements":  + asttokens==3.0.1
Step #1 - "Install test requirements":  + black==25.12.0
Step #1 - "Install test requirements":  + click==8.3.1
Step #1 - "Install test requirements":  + coverage==7.13.1
Step #1 - "Install test requirements":  + decorator==5.2.1
Step #1 - "Install test requirements":  + executing==2.2.1
Step #1 - "Install test requirements":  + google-api-core==2.29.0
Step #1 - "Install test requirements":  + google-cloud-core==2.5.0
Step #1 - "Install test requirements":  + google-cloud-secret-manager==2.26.0
Step #1 - "Install test requirements":  + google-cloud-storage==3.7.0
Step #1 - "Install test requirements":  + google-crc32c==1.8.0
Step #1 - "Install test requirements":  + google-resumable-media==2.8.0
Step #1 - "Install test requirements":  + googleapis-common-protos==1.72.0
Step #1 - "Install test requirements":  + grpc-google-iam-v1==0.14.3
Step #1 - "Install test requirements":  + grpcio==1.76.0
Step #1 - "Install test requirements":  + grpcio-status==1.76.0
Step #1 - "Install test requirements":  + iniconfig==2.3.0
Step #1 - "Install test requirements":  + ipython==9.9.0
Step #1 - "Install test requirements":  + ipython-pygments-lexers==1.1.1
Step #1 - "Install test requirements":  + isort==7.0.0
Step #1 - "Install test requirements":  + jedi==0.19.2
Step #1 - "Install test requirements":  + librt==0.7.7
Step #1 - "Install test requirements":  + matplotlib-inline==0.2.1
Step #1 - "Install test requirements":  + mypy==1.19.1
Step #1 - "Install test requirements":  + mypy-extensions==1.1.0
Step #1 - "Install test requirements":  + packaging==25.0
Step #1 - "Install test requirements":  + parso==0.8.5
Step #1 - "Install test requirements":  + pathspec==1.0.3
Step #1 - "Install test requirements":  + pexpect==4.9.0
Step #1 - "Install test requirements":  + platformdirs==4.5.1
Step #1 - "Install test requirements":  + pluggy==1.6.0
Step #1 - "Install test requirements":  + prompt-toolkit==3.0.52
Step #1 - "Install test requirements":  + proto-plus==1.27.0
Step #1 - "Install test requirements":  + protobuf==6.33.4
Step #1 - "Install test requirements":  + ptyprocess==0.7.0
Step #1 - "Install test requirements":  + pure-eval==0.2.3
Step #1 - "Install test requirements":  + pygments==2.19.2
Step #1 - "Install test requirements":  + pytest==9.0.2
Step #1 - "Install test requirements":  + pytest-aioresponses==0.3.0
Step #1 - "Install test requirements":  + pytest-asyncio==1.3.0
Step #1 - "Install test requirements":  + pytest-cov==7.0.0
Step #1 - "Install test requirements":  + pytest-mock==3.15.1
Step #1 - "Install test requirements":  + pytokens==0.3.0
Step #1 - "Install test requirements":  + stack-data==0.6.3
Step #1 - "Install test requirements":  + tokenize-rt==6.2.0
Step #1 - "Install test requirements":  + toolbox-core==0.5.7 (from file:///workspace/packages/toolbox-core)
Step #1 - "Install test requirements":  + traitlets==5.14.3
Step #1 - "Install test requirements":  + wcwidth==0.2.14
Finished Step #1 - "Install test requirements"
Starting Step #2 - "Run integration tests"
Step #2 - "Run integration tests": Already have image (with digest): python:3.14
Step #2 - "Run integration tests": ============================= test session starts ==============================
Step #2 - "Run integration tests": platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0
Step #2 - "Run integration tests": rootdir: /workspace/packages/toolbox-core
Step #2 - "Run integration tests": configfile: pyproject.toml
Step #2 - "Run integration tests": plugins: asyncio-1.3.0, cov-7.0.0, aioresponses-0.3.0, mock-3.15.1
Step #2 - "Run integration tests": asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function
Step #2 - "Run integration tests": collected 336 items
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/mcp_transport/test_base.py ..........                              [  2%]
Step #2 - "Run integration tests": tests/mcp_transport/test_v20241105.py ...........                        [  6%]
Step #2 - "Run integration tests": tests/mcp_transport/test_v20250326.py ...........                        [  9%]
Step #2 - "Run integration tests": tests/mcp_transport/test_v20250618.py ............                       [ 13%]
Step #2 - "Run integration tests": tests/test_auth_methods.py .........                                     [ 15%]
Step #2 - "Run integration tests": tests/test_client.py ......................                              [ 22%]
Step #2 - "Run integration tests": tests/test_e2e.py .................................                      [ 32%]
Step #2 - "Run integration tests": tests/test_e2e_mcp.py .................................................. [ 47%]
Step #2 - "Run integration tests": .................................................                        [ 61%]
Step #2 - "Run integration tests": tests/test_protocol.py .................                                 [ 66%]
Step #2 - "Run integration tests": tests/test_sync_client.py ...............                                [ 71%]
Step #2 - "Run integration tests": tests/test_sync_e2e.py ..............                                    [ 75%]
Step #2 - "Run integration tests": tests/test_sync_tool.py ...................                              [ 80%]
Step #2 - "Run integration tests": tests/test_tool.py ..........................                            [ 88%]
Step #2 - "Run integration tests": tests/test_toolbox_transport.py .............                            [ 92%]
Step #2 - "Run integration tests": tests/test_utils.py .........................                            [100%]
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": =============================== warnings summary ===============================
Step #2 - "Run integration tests": tests/test_tool.py:522
Step #2 - "Run integration tests":   /workspace/packages/toolbox-core/tests/test_tool.py:522: SyntaxWarning: "\(" is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\("? A raw string is also an option.
Step #2 - "Run integration tests":     expected_error_message = "Authentication source\(s\) \`unused-auth-service\` unused by tool \`sample_tool\`."
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/test_client.py: 9 warnings
Step #2 - "Run integration tests": tests/test_e2e.py: 7 warnings
Step #2 - "Run integration tests": tests/test_e2e_mcp.py: 21 warnings
Step #2 - "Run integration tests": tests/test_sync_client.py: 4 warnings
Step #2 - "Run integration tests": tests/test_sync_e2e.py: 6 warnings
Step #2 - "Run integration tests": tests/test_tool.py: 18 warnings
Step #2 - "Run integration tests": tests/test_utils.py: 7 warnings
Step #2 - "Run integration tests":   /workspace/packages/toolbox-core/src/toolbox_core/utils.py:150: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead
Step #2 - "Run integration tests":     if asyncio.iscoroutinefunction(source):
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_unauth_with_auth
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_auth
Step #2 - "Run integration tests":   /workspace/venv/lib/python3.14/site-packages/google/auth/compute_engine/credentials.py:503: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
Step #2 - "Run integration tests":     return id_token, datetime.datetime.utcfromtimestamp(payload["exp"])
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_wrong_auth
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_auth
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_async_auth
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_param_auth
Step #2 - "Run integration tests": tests/test_e2e.py::TestAuth::test_run_tool_param_auth_no_field
Step #2 - "Run integration tests": tests/test_toolbox_transport.py::test_tool_invoke_success
Step #2 - "Run integration tests":   /workspace/packages/toolbox-core/src/toolbox_core/toolbox_transport.py:78: UserWarning: Sending data token over HTTP. User data may be exposed. Use HTTPS for secure communication.
Step #2 - "Run integration tests":     warn(
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/test_sync_client.py::TestSyncClientLifecycle::test_load_tool_raises_if_loop_or_thread_none
Step #2 - "Run integration tests":   /workspace/packages/toolbox-core/tests/test_sync_client.py:333: RuntimeWarning: coroutine 'ToolboxClient.load_tool' was never awaited
Step #2 - "Run integration tests":     with pytest.raises(
Step #2 - "Run integration tests":   Enable tracemalloc to get traceback where the object was allocated.
Step #2 - "Run integration tests":   See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": tests/test_sync_client.py::TestSyncClientLifecycle::test_load_tool_raises_if_loop_or_thread_none
Step #2 - "Run integration tests":   /workspace/packages/toolbox-core/tests/test_sync_client.py:342: RuntimeWarning: coroutine 'ToolboxClient.load_toolset' was never awaited
Step #2 - "Run integration tests":     with pytest.raises(
Step #2 - "Run integration tests":   Enable tracemalloc to get traceback where the object was allocated.
Step #2 - "Run integration tests":   See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info.
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
Step #2 - "Run integration tests": ================================ tests coverage ================================
Step #2 - "Run integration tests": _______________ coverage: platform linux, python 3.14.2-final-0 ________________
Step #2 - "Run integration tests": 
Step #2 - "Run integration tests": Name                                                Stmts   Miss  Cover
Step #2 - "Run integration tests": -----------------------------------------------------------------------
Step #2 - "Run integration tests": src/toolbox_core/__init__.py                            3      0   100%
Step #2 - "Run integration tests": src/toolbox_core/auth_methods.py                       58      2    97%
Step #2 - "Run integration tests": src/toolbox_core/client.py                            104      1    99%
Step #2 - "Run integration tests": src/toolbox_core/itransport.py                         20      5    75%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/__init__.py              4      0   100%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/transport_base.py       58      3    95%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20241105/mcp.py        66      8    88%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20241105/types.py      58      1    98%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20250326/mcp.py        79     12    85%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20250326/types.py      58      1    98%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20250618/mcp.py        69      8    88%
Step #2 - "Run integration tests": src/toolbox_core/mcp_transport/v20250618/types.py      58      1    98%
Step #2 - "Run integration tests": src/toolbox_core/protocol.py                           46      0   100%
Step #2 - "Run integration tests": src/toolbox_core/sync_client.py                        45      0   100%
Step #2 - "Run integration tests": src/toolbox_core/sync_tool.py                          64      0   100%
Step #2 - "Run integration tests": src/toolbox_core/tool.py                              113      7    94%
Step #2 - "Run integration tests": src/toolbox_core/toolbox_transport.py                  42      0   100%
Step #2 - "Run integration tests": src/toolbox_core/utils.py                              39      0   100%
Step #2 - "Run integration tests": src/toolbox_core/version.py                             1      0   100%
Step #2 - "Run integration tests": -----------------------------------------------------------------------
Step #2 - "Run integration tests": TOTAL                                                 985     49    95%
Step #2 - "Run integration tests": Required test coverage of 90% reached. Total coverage: 95.03%
Step #2 - "Run integration tests": ====================== 336 passed, 83 warnings in 11.04s =======================
Finished Step #2 - "Run integration tests"
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%22bfc7e42c-39cc-4d13-9f14-537db4e4a195%22+AND+resource.labels.build_trigger_id%3D%223acd6d5e-75d6-41f9-82f9-f667825297d1%22&project=toolbox-testing-438616