7.8 发布清单

这些用法说明是帮助 Deis 维护者创建一个新的 Deis 产品发布。在请保持此文档向上最新与在此过程中的任何变化。

deis repo

  • 如果这个发行版在 GitHub 是作为一个里程碑管理

  • 从当前的发行版 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 更新版本字符:

    1. $ ./contrib/bumpver/bumpver X.Y.Z \
    2. version/version.go \
    3. README.md \
    4. client/deis.py \
    5. client/setup.py \
    6. contrib/coreos/user-data.example \
    7. controller/deis/__init__.py \
    8. deisctl/deis-version \
    9. deisctl/deisctl.go \
    10. docs/contributing/test_plan.rst \
    11. docs/installing_deis/install-deisctl.rst \
    12. docs/installing_deis/install-platform.rst \
    13. 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

文档

  • (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:

    1. $ ./contrib/bumpver/bumpver X.Y.Z+git \
    2. version/version.go \
    3. client/deis.py \
    4. deisctl/deis-version \
    5. deisctl/deisctl.go \
    6. controller/deis/__init__.py \
    7. 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 被合并!