Toolforge客户端
项目描述
toolforge-cli
运行与toolforge相关的命令的CLI
本地开发环境(指南)
需求
您需要全局安装 Poetry。虽然您可以使用如 pip
或 homebrew
这样的包管理器来安装它,但强烈建议您使用官方安装程序:[官方安装程序](https://poetry.pythonlang.cn/docs/#installing-with-the-official-installer)
在 Debian 上使用 tox 进行测试
克隆仓库(说明见此处 https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-cli)。
安装 tox(这是 Debian 特有的部分)
~:$ apt install tox
移动到您克隆仓库的目录,并运行 tox
/path/to/repo/toolforge-cli:$ tox
这将运行测试并创建一个虚拟环境,您可以使用它来手动调试任何需要的内容,要进入它
/path/to/repo/toolforge-cli:$ source .tox/py3-tests/bin/activate
构建 Debian 软件包
过程将是
- 创建新分支
- 增加版本号
- 更新
debian/changelog
和pyproject.toml
(由bump_version.sh
完成) - 创建补丁,进行审查并合并
- 更新
- 创建标签(
debian/<新版本>
)并推送 - 构建软件包(由
build_deb.sh
完成) - 将软件包上传到 Toolforge 仓库
让我们开始吧!
创建新分支
要开始,从主分支创建一个新分支
~:$ git checkout -b <new-branch-name>
更新 changelog 和 pyproject.toml
为此,您可以运行脚本
~:$ utils/bump_version.sh
这将
- 在
debian/changelog
中创建一个条目,该条目来自自上次debian/*
标签以来的 git 日志 - 在
pyproject.toml
中增加版本号
在此阶段,您应该创建一个提交并将其发送进行审查,一旦合并,则继续。
~:$ git commit -m "Bumped version to <new_version>" --signoff
~:$ git push origin <new-branch-name>
合并版本增加提交
审查 changelog
和 pyproject.toml
的更改,以确保它是您想要的(它使用您的姓名、电子邮件等),并请求审查。
创建和上传 Debian 标签
一旦合并,您可以在本地创建一个名为 debian/<新版本>
的标签并将其推送到仓库(例如,git push origin debian/<新版本>
)。
构建软件包
使用容器
这是构建软件包的推荐方式,因为它与您使用的操作系统/发行版无关。
但它不会允许您对软件包进行签名,因此如果您需要这样做,请尝试使用手动过程。
现在您可以使用以下方式构建软件包
~:$ utils/build_deb.sh
第一次构建可能需要更多时间,因为它将构建用于构建软件包的核心镜像,下载许多依赖项。下一次运行时,它不需要下载所有这些依赖项,因此速度会快得多。
注意:如果安装软件包失败,请尝试传递 --no-cache
以强制重新构建缓存的层。
wmcs-package-build 脚本
另一种选择是使用位于操作/puppet 仓库中的 modules/toolforge/files 的 wmcs-package-build.py 脚本
$ ./wmcs-package-build.py --git-repo https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-cli -a buster-toolsbeta -a bullseye-toolsbeta --git-branch main --build-dist=bullseye
该脚本将 SSH 到构建服务器,在那里构建软件包,并将其发布到两个仓库:buster-toolsbeta
和 bullseye-tooslbeta
。
额外的参数 --backports, --toolforge-repo=tools --build-dist=bullseye
是必要的,因为构建需要 Poetry 和其他在 buster 仓库中不可用的构建工具。
如果该命令成功,您应将软件包从“toolsbeta”复制到“tools”发行版
ssh tools-services-05.tools.eqiad1.wikimedia.cloud
$ sudo -i
# aptly repo copy buster-toolsbeta buster-tools toolforge-cli_VERSION_all
# aptly repo copy bullseye-toolsbeta bullseye-tools toolforge-cli_VERSION_all
# aptly publish --skip-signing update buster-tools
# aptly publish --skip-signing update bullseye-tools
有关 wmcs-package-build 脚本的更多文档可在 [此处](https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#wmcs-package-build) 获得
手动过程(仅在 Debian 上)
为此您需要安装 debuild
~:$ sudo apt install debuild
安装构建依赖项,这需要 devscripts 和 equivs
~:$ sudo apt install devscripts equivs
...
/path/to/repo/toolforge-cli:$ sudo mk-build-deps --install debian/control
或者只需手动检查 debian/control
文件的 Build-Dependencies
并手动安装它们。
请注意,它将直接在那里构建 Debian 软件包并安装它,您可以在任何时候删除它以清理依赖项。
现在进行实际构建
/path/to/repo/toolforge-cli:$ debuild -uc -us
这将最终在 ../toolforge-cli.*.deb
下创建一个未签名的包。如果您想签名它,您需要做类似以下的事情:
/path/to/repo/toolforge-cli:$ debuild -kmy@key.org
上传到工具 forge 仓库
一旦构建了您想要的包,您可以根据以下步骤上传: https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#Uploading_a_package
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。