跳转到主要内容

为Toolforge基础设施组件共享Python代码

项目描述

python3-toolforge-weld

为Toolforge基础设施组件共享Python代码。

本地开发环境(指南)

在debian上使用tox进行测试

克隆仓库(说明见此处 https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-weld)。

安装tox(这是唯一的debian特定部分)

~:$ apt install tox

移动到您克隆的仓库目录,并运行tox

/path/to/repo/toolforge-weld:$ tox

这将运行测试并创建一个虚拟环境,您可以使用它手动调试您需要的任何内容,进入它

/path/to/repo/toolforge-weld:$ source .tox/py3-tests/bin/activate

构建Debian软件包

过程将是

  • 创建新分支
  • 增加版本号
  • 构建和部署软件包
  • 将软件包上传到toolforge仓库
  • 合并PR和创建版本

让我们开始吧!

创建新分支

要开始,从main创建一个新分支

~:$ git checkout -b <new-branch-name>

增加版本号

更新变更日志和setup.py

  1. 为此,您可以运行脚本

    ~:$ utils/bump_version.sh
    

    这将

    • 从上一个标签的git日志中在debian/changelog中创建一个条目
    • setup.py中增加版本号
    • 创建所需的提交和标签。
  2. 一旦完成,您应该推送新的提交和标签以供审查

    git push -u origin <new-branch-name>
    git push origin <new_version>
    

    您可以通过查看终端输出或运行git tags --list来查找新创建的标签的值

创建补丁并获取审查

在gitlab上,您应该基于上述PR创建一个补丁,然后审查changelogsetup.py的更改,确保这是您想要的(它使用您的姓名、电子邮件等),并请求审查。

构建和部署软件包

使用cookbook构建和部署(推荐)

注意:当前创建的PR必须处于打开状态,您才能使用此cookbook。如果您选择使用下面的更复杂的方法,则无需保持PR打开。

  1. 使用cookbook构建和部署已经大大简化。要这样做,只需运行

    ~:$ cookbook wmcs.toolforge.component.deploy --cluster-name toolsbeta --component toolforge-weld --git-branch bump_version
    

    上面的命令将构建软件包,将其上传到toolsbeta软件包仓库,并在所有toolsbeta堡垒上安装它。要为tools做同样的事情,请使用--cluster-name tools

    有关cookbook的详细信息,请参阅https://wikitech.wikimedia.org/wiki/Spicerack/Cookbooks

使用容器构建和部署

注意:这将不允许您签名您的软件包,因此如果您需要这样做,请尝试使用手动过程。

  1. 您可以使用以下命令构建软件包

    path/to/repo/toolforge-weld:$ utils/build_deb.sh
    

    第一次可能需要更多时间,因为它将构建核心镜像以构建软件包,并下载许多依赖项。下一次运行时,它不需要下载所有这些依赖项,因此会更快。

    注意:如果安装软件包失败,请尝试传递--no-cache以强制重建缓存的层。

  2. 构建后,您还需要将构建的软件包上传到toolforge软件包仓库。有关详细信息,请参阅上传到toolforge仓库

  3. 上传完成后,您还需要登录到工具和toolsbeta上的各种堡垒,手动安装该软件包。例如,要在toolsbeta堡垒6上安装

    ~:$ ssh toolsbeta-bastion-6.toolsbeta.eqiad1.wikimedia.cloud
    ~:$ sudo apt-get update && sudo apt-get install python3-toolforge-weld
    

    检查我们为工具和toolsbeta有多少个堡垒非常重要,并且要对所有这些进行此操作。如果您没有这些信息,可以询问toolforge团队。

使用wmcs-package-build脚本的构建和部署

  1. 另一种选择是使用在operations/puppet仓库的modules/toolforge/files中找到的wmcs-package-build.py脚本。

    $ ./wmcs-package-build.py --git-repo https://gitlab.wikimedia.org/repos/cloud/toolforge/toolforge-weld -a buster-toolsbeta -a bullseye-toolsbeta --git-branch main --build-dist=bullseye --backports --toolforge-repo=tools
    

    该脚本将SSH到构建服务器,在那里构建软件包,并将其发布到两个仓库:buster-toolsbetabullseye-tooslbeta

    额外的参数--backports, --toolforge-repo=tools --build-dist=bullseye是必要的,因为构建需要Poetry和其他构建工具,这些工具在buster仓库中不可用。

  2. 如果该命令成功,然后您应该从“toolsbeta”复制软件包到“tools”发行版。有关详细信息,请参阅上传到toolforge仓库

  3. 上传完成后,您还需要登录到工具和toolsbeta上的各种堡垒,手动安装该软件包。例如,要在toolsbeta堡垒6上安装

    ~:$ ssh toolsbeta-bastion-6.toolsbeta.eqiad1.wikimedia.cloud
    ~:$ sudo apt-get update && sudo apt-get install python3-toolforge-weld
    

    检查我们为工具和toolsbeta有多少个堡垒非常重要,并且要对所有这些进行此操作。如果您没有这些信息,可以询问toolforge团队。

有关wmcs-package-build脚本的附加文档可在以下链接找到:https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#wmcs-package-build

上传到toolforge仓库

如果您使用任何手动方法构建了软件包,您可以按照以下步骤上传:https://wikitech.wikimedia.org/wiki/Portal:Toolforge/Admin/Packaging#Uploading_a_package

合并PR和创建版本

根据您选择的部署方法,PR可能仍然开放。如果是这种情况,请记住合并PR并创建新的Gitlab版本。

项目详情


下载文件

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

源分布

toolforge_weld-1.6.3.tar.gz (30.3 kB 查看散列值)

上传时间

构建分布

toolforge_weld-1.6.3-py3-none-any.whl (28.2 kB 查看散列值)

上传时间 Python 3

由以下机构支持

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