7.8 发布清单
这些用法说明是帮助 Deis 维护者创建一个新的 Deis 产品发布。在请保持此文档向上最新与在此过程中的任何变化。
deis repo
如果这个发行版在 GitHub 是作为一个里程碑管理:
- 创建下一个 deis milestone
- 从当前发行版移动 deis open issues 到下一个里程碑
- 关闭当前的 deis milestone
从当前的发行版 PR 创建一个分支:git checkout -b release-X.Y.Z
使用 changelog script 更新 CHANGELOG.md
- ./contrib/util/generate-changelog.sh vU.V.W | cat - CHANGELOG.md > tmp && mv tmp CHANGELOG.md 取代 vU.V.W 前面的发行版。
- 校对新的 CHANGELOG.md 以确保它是正确生成,并在 vX.Y.Z(当前发行版) 顶端编辑 HEAD
使用 bumpver tool 更新版本字符:
$ ./contrib/bumpver/bumpver X.Y.Z \
version/version.go \
README.md \
client/deis.py \
client/setup.py \
contrib/coreos/user-data.example \
controller/deis/__init__.py \
deisctl/deis-version \
deisctl/deisctl.go \
docs/contributing/test_plan.rst \
docs/installing_deis/install-deisctl.rst \
docs/installing_deis/install-platform.rst \
docs/managing_deis/upgrading-deis.rst
编辑 deisctl/cmd/cmd.go 和改变 RefreshUnits 的 用法字符串(在该文件的底部附近)的默认值 [master] 为 [vX.Y.Z]。
检查 git grep vU.V.W 的输出以确保没有老版本的字符串。
提交并推送 deis/deis 版本以及打 tag
- git commit -a -m ‘chore(release): update version to vX.Y.Z’
- git push origin release-X.Y.Z
**当 PR 被认可和合并后,在 master tag:
- git checkout master && git pull
- git tag vX.Y.Z
- git push —tags origin vX.Y.Z
触发所有的 deis-cli 和 deisctl 在 ci.deis.io 构建任务。当他们完成,验证当前的二进制安装包是从 opdemand S3 bucket 公开下载的。
- 触发 test-master 任务,提供 vX.Y.Z 作为版本
- 当 test-master 完成,在 Docker Hub 复合镜像来校验 tags 被发布。
发布 CLI 到 pypi.python.org
- cd client && python setup.py sdist upload
- 首先使用 testpypi.python.org 来确保它们没有任何问题
deis.io repo
更新 deis.io 安装脚本来指向默认的新版本
文档
- (CHANGELOG.md 文件是被重复生成和提交)
- 文档会被自动发布到 http://docs.deis.io (首选的别名 deis.readthedocs.org)
登陆到 http://deis.readthedocs.org admin
- 添加当前版本到发布构建列表
- 从发布构建列表移除老版本
- 重新构建所有的发布版本,因此“Versions” 索引连接会被更新
发布文档到 pythonhosted.org/deis
- 从项目的根目录,运行 make -C docs 清理 zipfile
- zipfile 将在 docs/docs.zip
- 登陆 http://pypi.python.org/ 并使用在 Deis Pypi 页的 web 表单来上传 zipfile
为 deis/* 项目在 Docker Hub 检查文档
- 为每个项目点击 “Settings”(deis/controller,deis/cache 等等)
- 粘贴每个 README.md 的内容到 “long description” 字段,如果它们是分散的
对于一个里程碑发行版,创建发行版说明文档
- 遵循前面发行说明的格式
- 总结从上一个发行版到现在完成的所有工作
- 访问所有的 deis/* 问题来确保我们没有丢失任何 “Community Shout-Outs” 章节的贡献者
- 包含“下一步干什么”和“未来方向”章节
- 添加发行说明的 Markdown 版本到 deis/deis.io 网站项目
- 对于一个补丁发行版,粘贴新的 CHANGELOG.md 章节作为 GitHub 发行说明
Post-Release
- 更新 #deis IRC 频道话题以引用最新发行版本
- 对于一个里程碑发行版,更新 HipChat 频道话题以引用下一个计划版本
- 为 post-release PR 创建一个分支:git checkout -b release-X.Y.Z+git
使用 bumpver 工具更新版本字符串到 vX.Y.Z+git:
$ ./contrib/bumpver/bumpver X.Y.Z+git \
version/version.go \
client/deis.py \
deisctl/deis-version \
deisctl/deisctl.go \
controller/deis/__init__.py \
README.md
- 编辑 deisctl/cmd/cmd.go 和改变 RefreshUnits 用法字符串(文件的底部附近)的默认值 [vX.Y.Z] 为 [master]。
为 vX.Y.Z+git 创建一个 pull request
- git commit -a -m ‘chore(release): update version in master to vX.Y.Z+git’
在其他被允许合并之前确保该 PR 被合并!