Skip to content

Commit

Permalink
chore: add rfc for exit packages
Browse files Browse the repository at this point in the history
Log:
  • Loading branch information
xzl01 committed Jun 14, 2023
1 parent 28993a3 commit 2e13c99
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions rfcs/0003-exit-packages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# 标题

- 提案发起时间:2023-06-14
- 提案拉取请求:https://github.com/deepin-community/rfcs/pull/4

## 概要

完善软件源中包退出的流程

## 动机

在维护 deepin 软件源的过程中,我们发现了一些软件包已经不再维护,但是仍然存在于软件源中,这些软件包可能会造成一些问题,例如:

1. 可能会造成用户的误用,导致用户的系统出现问题
2. 出现 CVE 漏洞,但是由于软件包已经不再维护,无法及时修复
3. 有新的软件包可以替代,但是由于软件包已经不再维护,无法及时替换

我们需要完善软件源中包退出的流程,以便及时发现软件包的退出,并及时通知用户。现有流程:https://wiki.deepin.org/zh/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E7%AE%A1%E7%90%86

## 详细设计/制度正文

在 deepin-community/SIG 仓库下新建一个新的配置文件 removed-packages.yaml,用于记录软件包退出的信息,格式如下:

```yaml
- name: package_name # 软件包名称
version: package_version # 软件包版本
reason: package_exit_reason # 软件包退出原因(例如:不再维护、存在安全漏洞等)
replacement: package_replacement # 软件包的替代方案
remove_time: package_exit_time # 软件包退出时间(指的是节点时间,例如:2023-06-14)
remove_type: package_exit_type # 软件包退出类型(指的是软件包的类型,例如:main、dde、community 等)
remove_by: package_exit_by # 软件包退出人(指的是软件包退出的发起人,例如:SIG 组成员、社区成员等)
remove_repo: package_exit_repo # 软件包退出仓库(指的是软件包退出的仓库,例如:ci、testing、stable 等)
```

并配置 CI,当软件包移除 pr 被提出时,CI 会检查软件包是否被依赖,列出依赖软件包的列表。


情况 1:如果仅仅移除软件包,在通知软件包维护人员后,相关 pr 需要保留至少 7 天(从维护人员确认收到相关反馈开始计算,如果维护人员未响应,则 pr 保留 14 天),以便社区成员进行讨论。如果没有反对意见,则可以合并 pr,将软件包退出的信息添加到 removed-packages.yaml 中,在节点时间后将软件包移除,关闭 pr。

情况 2:如果软件包存在同名替换方案,在 pr 被提出且无反对意见后,将软件包替换为同名替换方案(CI 源),并交由测试人员进行测试。(将测试流程 pr 关联至此 pr)
在节点时间后将软件包更换为同名替换方案(软件源)并将软件包退出的信息添加到 removed-packages.yaml 中,关闭 pr。

情况 3:如果软件包出现严重 CVE 漏洞,需要立即移除软件包,需要在 pr 标题中引用 CVE 漏洞编号,由 deepin-sysdev 组和 deepin-security 组成员进行投票处理,投票通过后,将软件包移除,并将软件包退出的信息添加到 removed-packages.yaml 中。

## 提案弊端

暂无

## 遗留问题

在情况 3 时无法同时用户卸载软件包,我们应该有一个页面告知用户风险

## 替代方案

暂无。

0 comments on commit 2e13c99

Please sign in to comment.