在Github和PyPI发布新的Python包版本的最佳工作流程和实践

15

我在想如何在pypi和github上发布新的python包版本的最佳流程或做法。

例如,以下是否是一个主要Python包遵循的典型工作流程?

  1. master分支上增加version号码
    1. setup.py中设置version='1.5.0'
    2. 在包__init__.py中设置__version__ = '1.5.0'
  2. 使用新版本更新CHANGELOG.md
  3. 在本地运行tox以验证软件包
  4. 推送更改git push origin master
  5. 创建标签git tag v1.5.0 -m "Release v1.5.0"
  6. 推送标签 git push origin v1.5.0
  7. 等待Travis CI构建完成。
  8. 生成软件包 python setup.py sdist bdist_wheel
  9. 验证已创建的软件包
    1. test-sdist/bin/pip install dist/<package>-1.5.0.tar.gz
    2. test-wheel/bin/pip install dist/<package>-1.5.0-py2.py3-none-any.whl
  10. 上传至PyPI Staging
    1. twine upload -r testpypi dist/<package>-1.5.0*
    2. pip install --user --no-cache-dir --extra-index-url https://testpypi.python.org/pypi <package>
  11. 上传至PyPI Production
    1. twine upload dist/<package>-1.5.0>*
  12. pip install <package>==1.5.0
  13. 意思是安装指定版本号为1.5.0的某个Python包,可以使用pip命令进行安装。

1
我认为你指的是PyPI,即软件包索引,而不是PyPy,另一种Python解释器。 - Ronan Lamy
1个回答

1

工作流的想法还不错。我会尝试让它更清晰,更通用一些:

  1. 在主分支上,增加版本号:

    • setup.py中设置version='1.5.0'
    • 在包的__init__.py中设置__version__ = '1.5.0'
  2. 使用新版本详细信息更新CHANGELOG.md

  3. 本地运行测试以验证包(使用tox或其他测试工具)。

  4. 提交并推送更改:

    git commit -am "Bump version to 1.5.0"
    git push origin master
    
  5. 为新版本创建并推送标签:

    git tag v1.5.0 -m "Release v1.5.0"
    git push origin v1.5.0
    
  6. 等待持续集成(CI)构建完成(例如Travis CI、GitHub Actions)。

  7. 构建包:

    python setup.py sdist bdist_wheel
    
  8. 验证已创建的包:

    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
    
  9. 上传到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>
    
  10. 验证包从TestPyPI安装并正常工作。

  11. 上传到PyPI Production:

    twine upload dist/<package>-1.5.0*
    
  12. 从PyPI Production测试安装:

    pip install <package>==1.5.0
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接