Skip to content

协作工具使用指南

XieJiSS edited this page Dec 7, 2024 · 3 revisions

在我们的工作群里有一个负责管理我们工作流的机器人。领取新的包,给包打标签,都是通过这个群组机器人来完成的。

使用介绍

通常使用的命令有:

  • /mark: 打标签
  • /unmark: 删除标签
  • /add: 领取包
  • /drop: 放弃包

例子:

  • 领取 linux 这个包
/add linux
  • 不会修,想放弃:
/drop linux
  • neovim 包打上依赖缺失的标签
/mark neovim missing_dep [lua]
  • 删除掉 neovim 的依赖缺失标签
/unmark neovim missing_dep

标签的介绍

标签可以帮助其他人在浏览公会页是能一览包的当前状态和出错原因,目前可用的有以下这些标签:

Tag Mean
unknown 在别的标签无法匹配这个包的状态时使用。通常用在那些你搞不清楚错误原因的包上。这个标签需要你附注上包的详细错误信息
upstreamed 当这个包是上游 (Arch Linux x86_64 或 软件包的上游) 的问题时使用
outdated 给过时的包打上这个标签
outdated_dep 当无法出包的原因来自于依赖过时的时候使用
stuck 这个包的移植工作量很大,或移植进程不顺畅时使用
noqemu 这个包在 QEMU user 环境里无法出包,但在 RISCV 板子上能出包的时候使用
ready 标记这个包可以直接出包。这个标签可以把其他失败信息给删除掉。
ignore 标记这个包没有移植到 RISCV 的意义。比如一些闭源 x86 软件。
missing_dep 标记这个包因为缺失某个依赖而无法出包
flaky 标记这个包状态不稳定,有时能出包有时不能,需要多次重试
failing 标记这个包上一次构建失败。这个标签由机器人自动附加,不要人为操作

小技巧

  • 依赖更新提醒

你可以在 missing_dep, outdated_dep 这两个标签后附带依赖的名字,当机器人检测到依赖状态变更时就会提醒你。

例子:

# 单个依赖。在  kimageannotator 这个包状态变更之后,机器人就会通知你
/mark ksnip missing_dep [kimageannotator]

# 多个依赖,在 python-pyppeteer 和 python-ipywidget 中的任意一个状态更新之后机器人都会通知你
/mark jupyter-nbconvert missing_dep [python-pyppeteer] [python-ipywidget]
  • 额外信息附加

所有的标签都支持附加上你自己的话。比如:

/mark step-cli upstreamed https://github.com/golang/go/issues/51547 and maybe no action is needed

附加上额外的信息之后,对于其他的维护人员,他们可以在公会页或聊天记录里阅读信息,并继续跟踪这个包的状态。清晰详细的说明文字有利于整个包组的工作流运行,请尽量在打标签时附加描述。

  • 转移包的所有人

目前没有直接权限转移的命令,你可以先手动 drop,让接手的伙伴自己 add。

公会页的可用查询参数

公会页: https://archrv-status.xctan.workers.dev

公会页有以下这些 URL query[^1] 查询参数:

  • name: 包名
  • user: 用户名,
  • work: 目前工作状态 (merged, working, pull requested),
  • mark: 包的标记 (和 bot 的标记一样),
  • mkby: 打标记的人名 (可以用来追踪 outdated),
  • sort: 可以 sort=name, sort=user, sort=mark, sort=work...。也可以组合使用
  • expandAllComments: 展开所有的标记

多个值使用半角逗号 , 分隔。

例子

比如你要查询谁打过标记:

https://plct-archrv.ax64.workers.dev/?mkby=*-x64,%E7%93%9C

比如你想让工会页以工作状态排序:

https://plct-archrv.ax64.workers.dev/?sort=work

[^1]: url query 是什么: https://mrvirk.com/what-is-url-query-string.html

🔙 返回主页

Clone this wiki locally