sco*_*rvt 6 python git github pypi
我想知道在pypi和github上发布新的python软件包版本的最佳过程或最佳实践是什么。
例如,这是主要的python软件包遵循的典型工作流程吗?
master分支上,递增version编号
version='1.5.0'在setup.py__version__ = '1.5.0'包装__init__.pyCHANGELOG.md用新版本更新tox本地运行以验证软件包git push origin mastergit tag v1.5.0 -m "Release v1.5.0"git push origin v1.5.0Travis CI构建完成。python setup.py sdist bdist_wheeltest-sdist/bin/pip install dist/<package>-1.5.0.tar.gztest-wheel/bin/pip install dist/<package>-1.5.0-py2.py3-none-any.whlPyPI Staging
twine upload -r testpypi dist/<package>-1.5.0*pip install --user --no-cache-dir --extra-index-url https://testpypi.python.org/pypi <package>PyPI Production
twine upload dist/<package>-1.5.0>*pip install <package>==1.5.0小智 1
工作流程的想法是好的。我会尝试将其变得更清晰并使其更通用:
在 master 分支上,增加版本号:
version='1.5.0'于setup.py__version__ = '1.5.0'在包装内__init__.py更新CHANGELOG.md新版本详细信息。
在本地运行测试以验证包(使用tox或其他测试工具)。
提交并推送更改:
git commit -am "Bump version to 1.5.0"
git push origin master
Run Code Online (Sandbox Code Playgroud)
为新版本创建并推送标签:
git tag v1.5.0 -m "Release v1.5.0"
git push origin v1.5.0
Run Code Online (Sandbox Code Playgroud)
等待持续集成 (CI) 构建完成(例如 Travis CI、GitHub Actions)。
构建包:
python setup.py sdist bdist_wheel
Run Code Online (Sandbox Code Playgroud)
验证创建的包:
test-sdist/bin/pip install dist/<package>-1.5.0.tar.gz
test-wheel/bin/pip install dist/<package>-1.5.0-py2.py3-none-any.whl
Run Code Online (Sandbox Code Playgroud)
上传到 PyPI Staging (TestPyPI):
twine upload --repository-url https://test.pypi.org/legacy/ dist/<package>-1.5.0*
pip install --user --no-cache-dir --index-url https://test.pypi.org/simple/ <package>
Run Code Online (Sandbox Code Playgroud)
从 TestPyPI 验证该包是否安装并正常工作。
上传到 PyPI 生产环境:
twine upload dist/<package>-1.5.0*
Run Code Online (Sandbox Code Playgroud)
从 PyPI Production 测试安装:
pip install <package>==1.5.0
Run Code Online (Sandbox Code Playgroud)