symbol-tool
用于管理符号文件仓库的命令行工具。
1.3.0.0
- 命令语法参考 Conan:文件模式作为位置参数,使用
-r/--remote选择仓库。 transfer使用-r <源> --remote-to <目标>,remote add使用名称及 URL 位置参数。- 不再兼容旧上传
-p/--pattern、-t/--target、迁移-s/--source、 名称筛选-n/--name、-nn/--nname、时间筛选-cb/-ub及remote add --url;查询仍保留-p/--path。 --help、--version和参数解析不读取或下载配置。
1.2.0.1
- 移除安装包内置凭据;本地 JSON 不存在时从内网 tool 仓库下载默认配置,已有配置保持不变。
1.2.0.0
- 新增
upload --dry-run:检查并列出待上传符号文件,不执行实际上传。
快速开始
pip install -e .
symbol-tool --version
打包
pyinstaller symbol_tool.spec --clean
命令示例
symbol-tool upload ".\**\*.pdb" -r local --dry-run
symbol-tool upload ".\**\*.pdb" --remote denture
symbol-tool query "*.pdb" -r local --exclude "UP*" --created-before 180d
symbol-tool query -r local --path "*/release/*" --limit 20
symbol-tool fix -r local
symbol-tool transfer "*.pdb" -r local --remote-to denture
symbol-tool clean -r local
symbol-tool remote list
symbol-tool remote add office http://repo/artifactory --repo symbol-office
symbol-tool remote disable office
symbol-tool remote enable office
symbol-tool remote remove office
upload 必须提供本地文件模式。query 和 transfer 的符号名称模式可省略,
省略时不过滤名称;--exclude 排除匹配的名称。模式应加引号,避免 shell 展开。
transfer --delete-old 仍保持原语义:目标已存在时删除源文件。
remote add 必须提供名称和 URL;仓库、用户名和密码未通过选项提供时交互输入。
密码输入隐藏,不建议通过 --password 将真实密码写入命令历史。
upload --dry-run 使用与实际上传相同的 glob 匹配和符号文件解析,
计算符号索引并通过只读 HEAD 请求检查远端是否已存在。
未存在的有效文件输出 Would upload: <本地文件> -> <目标地址>,
已存在或无效文件仍输出跳过原因。检查失败(例如 HTTP 401、403、500)
会输出 Check failed,不会误报为待上传文件。
此模式需要网络和目标访问权限,但不会发送 PUT 上传请求,也不会修改本地符号文件。
不指定 --dry-run 时保持原有上传行为。
target 是别名。每个别名对应“某个服务器 + 某个路径”,配置保存在
~\.symbol-tool\remote.json,凭据仍以 JSON 字段存储。
本地 JSON 不存在时,首次运行自动从以下内网地址下载默认配置并保存; 已有本地 JSON 不会被下载内容覆盖,也不会自动合并或刷新:
http://artifactory:8082/artifactory/tool/symbol-tool/remote.json
安装包不再内置默认用户名和密码。下载设置连接与读取超时,HTTP 错误、
网络错误及无效 JSON 均明确报错,不回退到内置凭据,也不保存无效下载内容。
离线使用前须预先准备本地 JSON。可通过 symbol-tool remote 子命令管理配置。
此地址使用明文 HTTP,配置包含密码;能访问该文件的用户可获得其中的凭据, 网络监听也可能暴露凭据。内网地址不构成加密或身份验证,请限制仓库访问和 本地 JSON 的读取权限,勿将配置或其内容纳入源码、安装包及日志。
测试
pytest tests
发布到 PyPI
python -m pip install --upgrade build twine
python -m build .
python -m twine upload --repository-url ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi dist/*
CI 中请配置:
TWINE_USERNAME=gitlab-ci-tokenTWINE_PASSWORD=$CI_JOB_TOKEN
Metadata
Release files for symbol-tool 1.3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| symbol_tool-1.3.0.0.tar.gz | 20.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| symbol_tool-1.3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / symbol_tool-1.3.0.0.tar.gz
| Download URL | symbol_tool-1.3.0.0.tar.gz |
|---|---|
| Size | 20.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0dad08bc57132ea77a9cf75ab00dc092cd0265e6da494388cdfc9754888c6f5d
|
|
BLAKE2b-256 checksum How to use checksums |
51a286b1bfa69e9614b54cd2d8ebd55e2030550c715d74c722ee555fb6b6dac5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / symbol_tool-1.3.0.0-py3-none-any.whl
| Download URL | symbol_tool-1.3.0.0-py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f2164a6db8d07051f57876ab391ae2c6f0a10885cef198929d9ff78b65db220
|
|
BLAKE2b-256 checksum How to use checksums |
6df0f7a963d2ee0105e1e5d5a5c502ace3fdb6d4da044ae11c9e12cc8811df33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|