跳转到主要内容

Toolforge客户端

项目描述

toolforge-cli

运行与toolforge相关的命令的CLI

本地开发环境(指南)

需求

您需要全局安装 Poetry。虽然您可以使用如 piphomebrew 这样的包管理器来安装它,但强烈建议您使用官方安装程序:[官方安装程序](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/changelogpyproject.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>

合并版本增加提交

审查 changelogpyproject.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-toolsbetabullseye-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

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

toolforge_cli-0.3.4.tar.gz (17.2 kB 查看散列)

上传时间

构建分布

toolforge_cli-0.3.4-py3-none-any.whl (18.0 kB 查看散列)

上传时间 Python 3

由...

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面