版本与分支
Mower 同时维护两个分支:测试版与稳定版。新功能的开发以及 bug 修复在测试分支上进行。然而,对代码的改动可能引入新的 bug,功能的变动也需要用户不断地学习和适应,使用测试版可能不时遇到新的 bug。对于没有精力跟踪 mower 开发进度,或希望获得稳定体验的用户,稳定版也是必不可少的。
版本号
版本号由 arknights_mower/__init__.py
文件中的 __version__
变量表示。
from arknights_mower import __version__
print(__version__)
Mower 使用 GitHub Actions 自动为 Windows 平台打包。打包过程中,修改版本号的步骤如下:
- name: change version number
if: github.event.head_commit.message != '发版'
shell: bash
run: |
sed -i "s/__version__ = \"\(.*\)\"/__version__ = \"\1+${GITHUB_SHA::7}\"/g" ./arknights_mower/__init__.py
当提交信息是"发版"时,CI 不会修改版本号;反之,CI 会把 commit id 的前 7 位附加到版本号后面,使用加号分隔。
- 测试版使用滚动更新,版本号格式为
YYYY.MM+<commit id>
,其中YYYY
为四位年份,MM
为两位月份,<commit id>
为 commit id 的前 7 位。测试版代码的__version__
中只写YYYY.MM
的部分。如果从源码运行 mower,在启动时利用arknights_mower/utils/git_rev
获得 commit id;在打包时,由 CI 自动添加 commit id。 - 稳定版使用定点更新,版本号格式为
YYYY.MM.X
,其中X
为小版本号。创建分支时X
为 1,以后每次发版时,需手动增加X
,并将提交信息设为"发版"。
日志页背景
Mower 每年发布 4 个大版本,以新版发布前 3 个月内对基建影响最大的干员立绘作为日志页背景。
- 2024.02:在版本发布前,mower 实装了新的肥鸭充能策略,所以选择菲亚梅塔。
- 2024.05:从春节活动开始到周年活动前,对基建影响最大的干员是阿罗玛。
- 2024.08:预计为乌尔比安。
如何开发测试版
测试版的开发一直在 dev_shawn 分支进行。在发布新版本时,只需要对版本号做出修改。例如 2024 年夏活更新后,将 dev_shawn 分支的版本号从 2024.05
改为 2024.08
即可。
如何维护稳定版
为保证稳定版的特性相对稳定,稳定版只接受添加新干员和 bug 修复。除非修复 bug 需要,否则不要添加新的功能。
稳定版的代码与测试版有所不同,所以在发布新版本时,需要基于当前的测试版新建稳定版分支,然后修改测试分支的版本号。例如 2024 年夏活更新时,稳定分支 2024.02 停止维护,基于 dev_shawn 分支新建 2024.05 分支,并把 2024.05 分支的版本号从 2024.05
改为 2024.05.1
,作为新的稳定版发版。后续在稳定分支上进行若干改动后,将版本号由 2024.05.1
改为 2024.05.2
并发版,以此类推。
虽然稳定版的代码在单独的分支,但除修改版本号外,出于以下原因,应尽量避免直接向稳定分支提交代码:
- 直接向稳定分支提交的代码,没有经过测试,可能引入新的 bug;
- Mower 的开发力量有限,同时维护两个分支耗费的精力太多,在当前阶段是不现实的;
- 稳定分支是基于测试分支创建的,在绝大部分情况下,对于同一个 bug,两个分支可以使用相同的方式进行修复。
因此,更恰当的做法是,将提交推送到测试分支,经过用户的充分测试后,以 cherry-pick 的方式,将修改反向移植到稳定分支。
为避免打扰用户,若无特殊情况,稳定版每星期最多发版一次。