Skip to main content

svnpypi

基于 SVN 的轻量 Python 内部包分发 CLI。复用现有 SVN 认证和权限,完成 wheel / sdist 的上传、查询、下载、SHA256 校验和 pip 安装,无需新增包服务器。

当前版本:0.2.1。本次为文档维护发布,不改变 CLI 或 SVN 行为。

安装与升级

要求 Python >=3.9、pip 和 PATH 中可用的原生 svn。生产请选择仍受官方维护的 Python。推荐在新的虚拟环境安装,避免影响其他项目。

Windows PowerShell:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install "svnpypi==0.2.1"
.\.venv\Scripts\svnpypi.exe --help

Linux / macOS:

python3 -m venv .venv
.venv/bin/python -m pip install "svnpypi==0.2.1"
.venv/bin/svnpypi --help

svnpypi<=0.1.7 不要直接普通升级。 旧包捆绑的 pysvnlite/ 文件会与独立包冲突,pip 卸载旧包时可能删除新库。已发生导入失败、或需要原地迁移时,按安装与升级指南先卸载再安装。仅 pip check 不能证明文件完整。

svnpypi 从 0.2.0 起仅包含 CLI,通过 pysvnlite>=0.2.0,<0.3 使用独立 SVN API。仅需 Python SVN API 时直接安装 pysvnlite。离线部署须携带完整依赖 wheel,不能只复制 svnpypi wheel。

最小工作流

先激活上面的环境。将示例 URL 替换为团队测试通道;上传和写探针会修改远端 SVN,只对授权目录操作。

svnpypi doctor --repo-url svn+ssh://svn.company.com/python-packages/test
svnpypi upload dist/* --repo-url svn+ssh://svn.company.com/python-packages/test
svnpypi list --repo-url svn+ssh://svn.company.com/python-packages/test
svnpypi install my-internal-tool --version 1.2.3 --repo-url svn+ssh://svn.company.com/python-packages/test --require-hash --record .svnpypi/install.json

dist/ 应只保留本次要上传的制品,或显式传入文件名。业务验证通过后,将同一批构建产物上传至 release。不要重新构建或覆盖同名不同内容的制品。

命令 用途
doctor 检查 SVN、pip 和仓库访问;--check-write 会创建并删除远端临时目录
upload 上传标准 wheel / sdist,维护 SHA256SUMS
list 列出包与版本
install 选择兼容制品,下载校验后调用当前 Python 的 pip
sync 读取 [tool.svnpypi] 并调用 install,不实现依赖解析器

--json 供自动化读取,--pip-args 后的参数原样交给 pip,须放在命令末尾。默认仓库地址可用 SVNPYPI_REPO_URL 设置。完整选项与错误边界见命令参考

使用边界

  • 只管理 Python wheel / sdist,不提供 Web 服务、通用文件镜像或完整 PyPI 协议。
  • SVN 负责认证、ACL、审计与备份。不要将密码写入 URL、命令行或日志。
  • 同名制品仅在 SHA256 相同时跳过;不同内容拒绝覆盖。多包上传不是跨包原子事务。
  • SHA256SUMS 证明内容一致性,不是签名;--record 是单次安装证据,不是完整依赖锁文件。
  • install 只从 SVN 获取所选制品,其依赖仍由 pip 解析;离线时须准备全部依赖。
  • 临时文件使用操作系统临时目录。部分 Windows / TortoiseSVN 构建无法正确处理中文绝对路径;检出后检查能识别虚假成功,但不会修复原生编码。详见平台验证与限制
  • SVN、pip 和远端认证组合需在部署环境验收;发布成功不代表所有平台已验证。当前 CLI 没有统一超时参数,CI 应设置作业总时限。

文档入口

开发验证

在仓库根目录、已激活的开发虚拟环境执行:

python -m pip install -e ".[dev,release]"
python -m ruff check src tests scripts
python -m mypy src scripts
python -m pytest -q
python scripts/release_pypi.py

发布脚本默认只检查和构建,不上传;生产上传需要干净工作区、完整检查和已原样推送的 annotated tag。wheel / sdist 不包含 AI 文件、测试、CI、发布脚本或 pysvnlite 源码。测试仅向临时 file:// SVN 仓库写入。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

svnpypi-0.2.1.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

svnpypi-0.2.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file svnpypi-0.2.1.tar.gz.

File metadata

  • Download URL: svnpypi-0.2.1.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for svnpypi-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e7575de282a5c5b8f1bf5973cbb8be4eeea8d26a1c04f6da16a96c4a06443b11
MD5 a60c20c88271b2f95c063598ed9ad3ae
BLAKE2b-256 8fa5b975e38313a92e824e528a41afc025e09f3552fee0a40abfa0f4d79320e2

See more details on using hashes here.

File details

Details for the file svnpypi-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: svnpypi-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for svnpypi-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a861b250aa111c8242feb084d3f359ed5550ebcd1fb5adc141b381504cfe4013
MD5 053da7aeddd64e60711fab3f404239f2
BLAKE2b-256 1bec4a47df65c850c4c75e007b5a6d101f31ade5314328992905cb4364952e65

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.2

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page