Skip to content

Consolidate Python SDK into single-file csm_tcp_router_client module and release as v0.3.0 - #37

Merged
nevstop merged 2 commits into
Dev_2026Q2from
copilot/change-csm-tcp-router-to-client
Apr 27, 2026
Merged

Consolidate Python SDK into single-file csm_tcp_router_client module and release as v0.3.0#37
nevstop merged 2 commits into
Dev_2026Q2from
copilot/change-csm-tcp-router-to-client

Conversation

CopilotAI commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Aligns the Python SDK's import name with its PyPI distribution name (csm-tcp-router-client), collapses the multi-file csm_tcp_router package into a single module file, and prepares the change for release as version 0.3.0.

Changes

  • Module: replaced SDK/python/src/csm_tcp_router/ (8 files: __init__, client, async_client, models, exceptions, _protocol, _transport, _errors) with a single SDK/python/src/csm_tcp_router_client.py re-exporting the same public surface (TcpRouterClient, AsyncTcpRouterClient, exception hierarchy, data models, __version__). Behaviour, semantics, and public API symbols are unchanged.
  • Packaging: switched the wheel target in pyproject.toml from a packages = […] directory layout to only-include = ["src/csm_tcp_router_client.py"] with sources = ["src"]. Built wheel now contains exactly one .py plus dist-info.
  • Tests / examples: rewrote imports in tests/*.py and examples/*.py from csm_tcp_router[.submodule] to csm_tcp_router_client. Tests that previously reached into private sub-modules (_protocol, _errors, client, async_client) now import the same internals from the consolidated module.
  • Docs: updated README.md, README.zh-cn.md quickstarts and added a CHANGELOG entry for the breaking import-name change.
  • Release / version bump: bumped the package version from 0.2.0 to 0.3.0 (in both pyproject.toml and the module-level __version__) to reflect the breaking import-name change. CHANGELOG [Unreleased] block was promoted to [0.3.0] – 2026-04-27 and a [0.3.0] compare link was added. After merge, pushing the tag python-sdk-v0.3.0 will trigger the existing CI TestPyPI → PyPI OIDC publish pipeline.
  • CI: updated .github/workflows/Python_SDK.yml--cov= flag and the post-build wheel import smoke-test to reference csm_tcp_router_client. Also fixed stale SDK/python-package/** path filters, defaults.run.working-directory, and the artifact upload path so the publish jobs are actually triggered by changes under the real SDK/python/ tree. Updated the matching Documentation and Changelog URLs in pyproject.toml from SDK/python-package/SDK/python/.

Migration

# beforefromcsm_tcp_routerimportTcpRouterClient, AsyncTcpRouterClientfromcsm_tcp_router.exceptionsimportServerErrorfromcsm_tcp_router.modelsimportStatusNotification# afterfromcsm_tcp_router_clientimport (
TcpRouterClient,
AsyncTcpRouterClient,
ServerError,
StatusNotification,
)

Notes

  • Protocol helpers (HEADER_SIZE, PROTOCOL_VERSION, encode_packet, decode_header, parse_packet) and _parse_server_error remain importable but are intentionally not in __all__, matching their previous private-submodule status.

@nevstop

Copy link
Copy Markdown
Contributor

@copilot 是否考虑过发布

CopilotAI commented Apr 27, 2026

Copy link
Copy Markdown
ContributorAuthor

@copilot 是否考虑过发布

考虑过了。由于改动是破坏性的(导入名从 csm_tcp_router 改为 csm_tcp_router_client),在 872c95d 中:

  • 版本从 0.2.0 提升到 0.3.0pyproject.toml + 模块 __version__),CHANGELOG 中 [Unreleased] 已固化为 [0.3.0] – 2026-04-27
  • 修复了 Python_SDK.yml 里残留的 SDK/python-package/** 路径过滤、working-directory 和 artifact 路径——之前这些路径错误会导致 publish 任务根本不会被触发;同时把 pyproject.toml 中 Documentation/Changelog 的 URL 一并改到 SDK/python/

PR 合并后,推送 tag python-sdk-v0.3.0 即可触发 CI 现有的 TestPyPI → PyPI OIDC trusted publishing 流水线。

CopilotAI changed the title Consolidate Python SDK into single-file csm_tcp_router_client moduleConsolidate Python SDK into single-file csm_tcp_router_client module and release as v0.3.0Apr 27, 2026
CopilotAI requested a review from nevstopApril 27, 2026 11:38
@nevstop
nevstop marked this pull request as ready for review April 27, 2026 11:44
@nevstop
nevstop merged commit 279071b into Dev_2026Q2Apr 27, 2026
@nevstop
nevstop deleted the copilot/change-csm-tcp-router-to-client branch April 27, 2026 11:44
nevstop added a commit that referenced this pull request Jul 14, 2026
* Refactor bilingual README for clarity and replace Mermaid diagrams with Excalidraw-based PNG images (#29)
* docs: rewrite bilingual README with mermaid diagrams
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/457dc57e-fd6d-4087-a604-3a7a4dd68b7b
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: replace mermaid diagrams with static PNG images
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: replace mermaid with png diagrams and add excalidraw sources
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: align client diagram alt text with sequence content
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: normalize client diagram naming and alt text
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: unify client diagram alt text naming
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: improve diagram alt text accessibility in both READMEs
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a92684df-d1ef-4e7f-801e-473ee3d2911d
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Convert `.doc/CSM-TCP-Router.drawio` to Excalidraw source and synced PNG export (#30)
* docs: add excalidraw and png converted from drawio
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/8747d072-0055-4877-a383-891476e8e333
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: fix application spelling in converted diagram
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/8747d072-0055-4877-a383-891476e8e333
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* 17 python sdk (#32)
* feat: add Python pip-publishable SDK for CSM-TCP-Router (#31)
* feat: add Python pip-publishable SDK for CSM-TCP-Router
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/4a1ee665-7464-4bd0-8898-0725daef43d5
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* fix: add least-privilege permissions to CI workflow jobs
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/4a1ee665-7464-4bd0-8898-0725daef43d5
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* feat: add asyncio client, Chinese README, and TestPyPI CI stage (v0.2.0)
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/93afe5c4-c917-4b9b-a347-189efb3bf4db
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* fix: address all PR review comments (shared _errors, socket leak, locks, disconnect sentinels, isawaitable, changelog)
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/b0917f8e-c50c-4a63-ae30-a1c245a6d3d7
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Add bilingual VI API reference docs for CSM-TCP-Router (Server + Client) (#35)
* Initial plan
* docs: add bilingual VI API documentation for CSM-TCP-Router
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/cacb955d-6c38-4fc7-b30d-9381fbbd06e1
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: move VI API docs under src and align reference format
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/117da425-df26-4ecc-a8c4-ab0e98412e50
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* docs: restore compatibility notes in status API sections
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/117da425-df26-4ecc-a8c4-ab0e98412e50
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* update PythonClientAPI/*
* Consolidate Python SDK into single-file `csm_tcp_router_client` module and release as v0.3.0 (#37)
* Consolidate Python SDK into single-file csm_tcp_router_client module
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/ffc74aa4-b55d-45b4-b066-749d1db8c176
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Bump SDK to 0.3.0 and fix workflow paths so publish jobs trigger
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/f2eec384-ae45-4817-bcb3-1f990db4954b
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Add C# csm-tcp-router-client SDK (#38)
* Initial plan
* Add C# csm-tcp-router-client SDK (single-file), VS solution, xUnit tests, example, NuGet packaging, and GitHub Actions workflow
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/1c9d260f-6983-4c60-9d7a-f07538723b70
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Address review: deterministic closed-port helper, ManualResetEventSlim in unsubscribe test, observe WaitForServerAsync connect task, force disconnect on RESP/CMD_RESP timeout
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/a52165ab-7829-42b0-91f9-e4ba84e0b6b9
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Add C csm-tcp-router-client SDK (multi-platform, VS2026, CMake, tests) (#40)
* Add C csm-tcp-router-client SDK with VS2026 + CMake + tests
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/ea6c42b2-b6f8-4ebe-8438-786601832ef5
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Address PR review comments on the C SDK
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/de04612d-484c-4905-9c04-06c451a01e15
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Drop redundant g_wsa_lock_inited; route cleanup through InitOnceExecuteOnce
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/de04612d-484c-4905-9c04-06c451a01e15
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Fix INADDR_LOOPBACK undeclared on macOS in mock_server.c (#41)
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/eab9769d-1260-4715-8d72-1e3241719ef1
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* 将 SDK/ 下所有代码注释翻译为中文 (#42)
* translate: convert all C SDK comments from English to Chinese
Translated all code comments in 11 C SDK files from English to Chinese,
preserving all code logic, variable names, function names, string literals,
Doxygen tags (@PARAM, @return, etc.) and technical proper names (TCP, CSM,
WSA, POSIX, BSD, Win32, Winsock2, pthreads, CMake, NUL, DLL, etc.).
Files translated:
- SDK/c/include/csm_tcp_router_client.h
- SDK/c/src/csm_tcp_router_client.c
- SDK/c/examples/basic_usage.c
- SDK/c/examples/subscribe_status.c
- SDK/c/tests/test_harness.h
- SDK/c/tests/mock_server.h
- SDK/c/tests/mock_server.c
- SDK/c/tests/test_main.c
- SDK/c/tests/test_client.c
- SDK/c/tests/test_protocol.c
- SDK/c/tests/test_integration.c
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* translate: convert all C# SDK comments from English to Chinese
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* translate: convert all Python SDK comments from English to Chinese
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* translate: convert all Python SDK comments from English to Chinese (partial)
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/097602f2-f319-49ea-84a2-3c8a30aa0915
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Add interactive ClientConsole example to Python, C# and C SDKs (#43)
* Add interactive ClientConsole example to Python, C# and C SDKs
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/ca3628f9-8283-448f-8789-d860c873c1dc
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* Validate port argument in Python and C# ClientConsole examples
Agent-Logs-Url: https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App/sessions/1a565ac6-daf6-4291-8c0c-b3444c37d8ba
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <8196752+nevstop@users.noreply.github.com>
* update deps
* 重命名example
* backup code
* mass compile to trigger build
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nevstop <nevstop@NEVSTOP-LAB>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@nevstop