How to make a release

Update files

更新NEWS.txt并移动HISTORY.txt文件中的旧东西。要更新NEWS.txt文件,请检查此版本的所有票证已关闭以及所有提交日志消息。更新index.txt 新闻部分。

更新文件Theano/doc/introduction.txt中的“Vision”/“Vision State”。

更新文件.mailmap以清理撰稿人列表。

Get a fresh copy of the repository

克隆代码:

git clone git@github.com:Theano/Theano.git Theano-0.X

它不必在你的PYTHONPATH。

Update the version number

编辑setup.py以包含最新的版本号

cd Theano-0.X
vi setup.py     # Edit the MAJOR, MINOR, MICRO and SUFFIX

doc/目录中的conf.py应以以下方式更新:

  • versionrelease变量更改为新版本号。
  • 如有必要,将版权年份的上限更改为当前年份。

如有必要,还可以更新Theano/LICENSE.txt文件中的年份。

NEWS.txt通常包含发布的名称和日期,也可以更改。

更新theano标志warn.ignore_bug_before的代码和文档以接受新版本。您必须修改文件theano/configdefaults.pydoc/library/config.txt

Tag the release

你将需要提交以前的更改,标记生成的版本,并推送到原始存储库。语法如下:

git commit -m "Modifications for 0.X.Y release" setup.py doc/conf.py NEWS.txt HISTORY.txt theano/configdefaults.py doc/library/config.txt
git tag -a rel-0.X.Y
git push
git push --tags

该文档将在接下来的几个小时内自动重新生成。

Generate and upload the package

对于发布候选人,只能在PyPI上上传。

On PyPI

现在将setup.py中的ISRELEASED更改为True

最后,使用setuptools注册和上传发行版:

python setup.py register sdist --formats=gztar,zip upload

此命令注册并上载pypi.python.org上的包。为了能够做到这一点,你必须在PyPI上注册(你可以创建一个新的帐户,或使用OpenID),并列入Theano的“包索引所有者”。

在一些版本的distutils中有一个错误,如果在NEWS.txt中有非ASCII字符,则会产生一个UnicodeDecodeError。你需要更改NEWS.txt,使其只包含ASCII字符(问题通常来自于人们姓名中的变音符号)。

On mloss.org

项目页面位于http://mloss.org/software/view/241/帐户jaberg被列为提交者。

  1. 以jaberg登录为mloss
  2. 搜索theano并点击标志
  3. 按左侧的“更新此项目”并更改
  • 版本号
  • 下载链接
  • 什么改变的描述
  1. 按保存

确保“已更改的内容”文本不会太长,因为它将显示在mloss的首页上。你必须缩进4个空格的子弹行我认为在描述。

你可以“更新这个项目”并保存很多次,以获得修订版本文本。只是不要更改版本号。

Finally

ISRELEASED更改回False

Update documentation server scripts

文档服务器定期运行自动生成脚本。它编译最新的开发版本并将其放在$webroot/theano_versions/dev/中。然后它检查发布分支是否已更新,如果发布分支已更新,发布文档将更新并放入$webroot/theano/最后,它检查$webroot/theano_versions/中的存档版本,并在用于填充版本切换器的服务器上生成versions.json文件。

如果发布分支已更改,您必须更新Web服务器脚本。以负责文档生成的用户身份登录到deeplearning.net服务器。在shell脚本~/bin/updatedocs中,将变量release更新为当前版本的分支名称。

您还可以将以前的版本添加到版本文档归档中。在脚本~/bin/updatedocs_versions中,将变量Versions更改为要生成的文档版本的git标记,然后运行脚本。

Announce the release

EMAIL.txt中的模板生成电子邮件,包括NEWS.txt的内容,然后将其发送到以下邮寄名单:

对于发布候选人,只有电子邮件:

  • theano宣布
  • theano-dev
  • theano用户