通过许多小步骤构建 Biopython!
以下说明要求您能够访问几个服务器和代码库。开始之前,请确保您有以下内容的写入权限:
如果您没有以上任何内容,请询问。
我们假设您已将这些库克隆到 ~/repositories/
下,并且 git origin
是存储库的官方 Biopython 副本。
我们假设您正在运行 Linux(但 macOS 也应该可以),并且已经安装了以下工具(以及尽可能多的用于本地测试的 Biopython 可选依赖项):
使用 git 确保我拥有最新的代码
$ cd ~/repositories/biopython
$ git checkout master
$ git pull origin master
确保 README.rst
文件仍然是最新的
将任何重要信息添加到 NEWS.rst
或 DEPRECATED.rst
中 - 您 可以像这样获取最近 git 更改的日志(根据需要调整日期)
$ git log --since="2020/05/25" --reverse --pretty="medium"
确保 CONTRIB.rst
仍然是最新的
确保 setup.py
和 MANIFEST.in
仍然是最新的
提升版本号并设置发布日期
Bio/__init__.py
NEWS.rst
- 填写发布日期$ git commit Bio/__init__.py NEWS.rst -m "Call this Biopython 1.78"
进行最终检查以确保已签入
$ rm -r build
$ rm Tests/*.pyc
$ make clean -C Doc
$ git status
构建 Biopython 并运行最终回归测试
drevil:~biopython> python setup.py build
drevil:~biopython> python setup.py test
同时运行测试(例如,使用不同版本的 Python)是有风险的,因为两个线程可能会尝试同时读写同一个临时文件。
将此推送到 gitub,一切顺利的话,此提交将被标记为发布(除非在构建文档或在测试 tar 包时发现问题)
$ git push origin master
在其他地方检出一个干净的版本
drevil:~tmp1/> git clone https://github.com/biopython/biopython.git
drevil:~tmp1/> cd biopython
在 Doc 中制作文档 PDF(我们已经自动在线生成了 HTML 版本;需要安装 latexmk
等)
drevil:~tmp1/biopython/> pip install -r .circleci/requirements-sphinx.txt
drevil:~tmp1/biopython/> make -C Doc latexpdf
drevil:~tmp1/biopython/> cp Doc/_build/latex/Biopython_doc.pdf Doc/
drevil:~tmp1/biopython/> make clean -C Doc
制作源代码发行版
drevil:~tmp1/biopython> python setup.py sdist --formats=gztar,zip
在其他地方解压缩文件
drevil:~tmp1/biopython/> cd ..
drevil:~tmp1/> tar -xzvf biopython/dist/biopython-1.78.tar.gz
drevil:~tmp1/> cd biopython-1.78
检查以确保它包含 Doc 下的文档 PDF 文件
确保我可以构建(不会安装和使用它)并测试它(使用 tar 包测试文件)
drevil:~tmp1/biopython-1.78/> python -m pip install . --prefix /tmp/test-install
drevil:~tmp1/biopython-1.78/> cd Tests && python run_tests.py
这里(在测试中)常见的失败原因是缺少示例文件添加到源代码发行版中:将它们添加到 MANIFEST.in
中
从 Biopython 1.74 开始,Sphinx 通过持续集成处理 API 文档,但您仍然需要更新“latest”符号链接。
$ cd ~/repositories/docs/
$ git fetch origin
$ git checkout gh-pages # should only be this one branch
$ git rebase origin/gh-pages # get any changes
$ rm latest
$ ln -s 1.78 latest
$ git commit latest -m "Update 'latest' symlink to point at 1.78"
$ git push origin gh-pages
手动更新网站上的教程和 PDB 常见问题解答。
$ cd ~/repositories/DIST/docs/tutorial/
$ git fetch origin
$ git checkout gh-pages # should only be this one branch
$ git rebase origin/gh-pages # get any changes
$ cp ../../../biopython/Doc/biopdb_faq.pdf .
$ cp ../../../biopython/Doc/Tutorial.html Tutorial-1.80.html
$ cp ../../../biopython/Doc/Tutorial.pdf Tutorial-1.80.pdf
$ rm Tutorial.html Tutorial.pdf
$ ln -s Tutorial-1.80.html Tutorial.html
$ ln -s Tutorial-1.80.pdf Tutorial.pdf
$ git add Tutorial-1.80.html Tutorial-1.80.pdf
$ git commit Tutorial-1.80.html Tutorial-1.80.pdf Tutorial.html Tutorial.pdf biopdb_faq.pdf -m "Tutorial and FAQ for Biopython 1.80"
$ git push origin gh-pages
现在我们使用 https://github.com/biopython/biopython-wheels 来构建轮子,方法是将 .github/workflows/cibuildwheel.yml
中的 git checkout
行更新为新版本的提交哈希值(一切顺利的话,它将获得一个 git 标签)。
$ cd ~/repositories
$ git clone [email protected]:biopython/biopython-wheels.git
$ cd biopython-wheels/
$ git submodule update --init
$ emacs .github/workflows/cibuildwheel.yml # update git checkout line
$ git commit .github/workflows/cibuildwheel.yml -m "Build Biopython 1.xx"
$ git push origin master
检查轮子是否在 GitHub Actions 运行 上构建。
您似乎不需要更新 biopython
git 子模块,但如果您需要,这似乎有效。
$ git submodule foreach git pull origin master
$ git commit -a -m "Update submodules"
$ git push origin master
成功的轮子将位于 GitHub Actions 运行 页脚中可用的 artifact.zip
文件中。下载它并解压缩到您的 ~/repository/biopython/DIST/
文件夹中。稍后我们将使用 Twine 将它们上传到 PyPI。
如果您有 Windows 计算机,请删除所有之前的 Biopython 安装,并确认 Windows 轮子文件可以正常工作。
回到主存储库,标记版本
$ cd .../tmp1/biopython/
$ git tag biopython-178
$ git push origin master --tags
通过 GitHub Pages DIST
存储库将新的发布 tar 包和 zip 上传到网站。
$ cp dist/biopython-1.78.* ~/repositories/DIST/
$ cd ~/repositories/DIST/
$ git add biopython-1.78.*
$ git commit biopython-1.78.* -m "Downloads for Biopython 1.78"
$ shasum -a 256 biopython-1.78.*
$ md5sum biopython-1.78.*
$ git commit --amend # paste checksums into comment
$ git push origin gh-pages
上传到 Python 包索引(除了 beta/alpha 级别的发布)
$ cd ~/repositories/biopython/
$ pip install twine
$ twine upload dist/biopython-1.78.tar.gz
$ twine upload dist/biopython-1.78-*.whl
您需要在 pypi 上拥有一个登录帐户,并向 Biopython 注册才能上传新版本
检查是否在 https://pypi.python.org/pypi/biopython/ 上上线
更新网站
biopython.github.io
存储库(否则请确保您的副本是最新的)$ cd ~/repositories
$ git clone [email protected]:biopython/biopython.github.io.git
$ cd ~/repositories/biopython.github.io
$ emacs _config.yml
$ emacs wiki/Biopython.md
$ emacs wiki/Download.md
$ git commit _config.yml wiki/Biopython.md wiki/Download.md -m "Biopython 1.78 released"
公告
Conda-Forge 应该在它出现在 PyPI 上后自动打开一个拉取请求以更新包。检查 github.com/conda-forge/biopython-feedstock 上是否有新的拉取请求,一旦合并,它将把新版本上传到 anaconda.org/conda-forge/biopython
再次提升版本号
Bio/__init__.py
版本NEWS.rst
中为下一个版本开始条目包含后缀 .dev0
以指示这是一个开发版本,例如,如果您有 __version__ = "1.78"
,请将其更改为 1.79.dev0