diff --git a/doc/design/Load.jpg b/doc/design/Load.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9d4628ded960f28f2e9f1a9586fe85ad8499033 Binary files /dev/null and b/doc/design/Load.jpg differ diff --git a/doc/design/Maintainer.jpg b/doc/design/Maintainer.jpg index b2e5f3a8b1286208c6c305629de3341ba3b6d61a..da0d5f1b5d928eca3a0d63795f59c55331136065 100644 Binary files a/doc/design/Maintainer.jpg and b/doc/design/Maintainer.jpg differ diff --git a/doc/design/PatchTracking.jpg b/doc/design/PatchTracking.jpg index 6af45e72351117db72d2047dccbed42e0717b3c3..e12afd6227c18c333f289b9aa71abf608d8058a0 100644 Binary files a/doc/design/PatchTracking.jpg and b/doc/design/PatchTracking.jpg differ diff --git a/doc/design/PatchTrackingDesigen.md b/doc/design/PatchTrackingDesigen.md index 601257d5b391b4ff9937debf59b1d45d9501b1ea..c091a1a125646f7f93e180f42fc81551f93fc395 100644 --- a/doc/design/PatchTrackingDesigen.md +++ b/doc/design/PatchTrackingDesigen.md @@ -26,75 +26,90 @@ Gitee 的 src-openEuler 组织下存放软件包的包源码,每个软件包 提供接口,允许用户配置所需跟踪的软件及版本,以及对应跟踪的上游社区 SCM 信息(包括仓库、分支、最新处理过的 Commit),当上游源代码有变更时,能够提取这些变更,形成补丁文件,并且在包源码的仓库创建 issue,由 Maintainer 决策是否合并到包源码仓库中,从而能够构建最新的 source RPMs 和 binary RPMs。 - # 六、功能设计 -流程分析 -![avatar](./patchtracing.JPG) - 支持svn/git代码监控 - 自动从svn/git中获取补丁 - 自动提交issue到对应项目 - 自动验证补丁编译和基础测试,并通过讨论的方式回填对应的issue - 自动过滤已经提交issue的清单 *1.如果有社区有lts分支,直接跟踪LTS分支。2.如果没有LTS,主干合入比较少,可以直接跟踪,3.如果主干合入很多的情况下,建议跟踪fedora/centos/suse* -##外部接口清单 -*待补充* -## 6.1 补丁跟踪条目 CRUD 接口 +## 6.1 软件包 Gitee 仓库 xxx.yaml 文件字段 -![](PatchTrackingAPIs.jpg) +``` +version_control: github +src_repo: MirBSD/mksh +src_branch: 1.x +patch_tracking_enabled: true +``` -## 6.2 补丁跟踪核心流程 +## 6.2 补丁跟踪外部接口 -![](PatchTracking.jpg) +- 查询补丁跟踪项 + +![](PatchTrackingQuery.jpg) -软件包跟踪条目 +- 查询补丁跟踪 Issue -Gitee 仓库 +![](PatchTrackingIssue.jpg) +## 6.3 初始化及周期性加载流程 -## 6.3 Maintainer 补丁处理流程 +![](Load.jpg) +## 6.4 补丁跟踪核心流程 + +![](PatchTracking.jpg) + + +## 6.5 Maintainer 补丁处理流程 + ![](Maintainer.jpg) + # 七、数据表设计 - tracking | 序号 | 名称 | 说明 | 类型 | 键 | 允许空 | 默认值 | | - | - | - | - | - | - | - | -| 1 | ID | 补丁跟踪条目序号 | Int | Primary | NO | - | -| 2 | package | 软件名称 | String | Primary | NO | - | -| 3 | version | 软件版本 | String | Primary | NO | - | -| 4 | scmRepo | 软件上游 SCM 仓库地址 | String | | NO | - | -| 5 | scmBranch | 上游 SCM 监听分支 | String | | NO | - | -| 6 | scmCommit | 上游监听的最新 Commit | String | | NO | - | -| 7 | repo | 包源码在 Gitee 的仓库地址 | String | | NO | - | -| 8 | branch | 提交 PR 合入的目标分支 | String | | NO | - | +| 1 | trackingID | 自增补丁跟踪项序号 | Int | Primary | NO | - | +| 4 | scmRepo | 软件包上游 SCM 仓库地址 | String | | NO | - | +| 5 | scmBranch | 上游 SCM 跟踪分支 | String | | NO | - | +| 6 | scmCommit | 上游代码最新处理过的 CommitID | String | | NO | - | +| 7 | repo | 包源码在 Gitee 的仓库地址 | String | Primary | NO | - | +| 8 | branch | 提交 PR 合入的目标分支 | String | Primary | NO | - | | 9 | enabled | 是否启动跟踪 | Bool | | NO | - | -issue +- issue + | 序号 | 名称 | 说明 | 类型 | 键 | 允许空 | 默认值 | | - | - | - | - | - | - | - | -| 1 | issue | -| 2 | tracking ID | +| 1 | issue | - | - | - | - | - | +| 2 | trackingID | - | - | - | - | - | # 八、配置文件 -- src-openEuler 组织账号及认证信息(允许在 src-openEuler 仓库创建 issue) -- 监听变更周期 -- MySQL 数据库信息 +``` +organization: src-openEuler # Gitee 存放软件包的组织名 +token: 349fca66defa55f2605957f7cc3e1234 # 访问 Gitee API 的 token +db_server: 1.2.3.4:5000 # 数据库 URL +db_user: user # 数据库用户名 +db_password: password # 数据库口令 +period: 12h # 加载软件包配置文件 xxx.yaml 并检查上游社区源代码变更的周期 +``` # 九、实现 -- 开发语言:Go 或者 Python +- 开发语言:Python - 数据库:MySQL,优先考虑使用华为云服务 - 运行环境:Docker 方式运行,优先考虑托管在华为云 CCE 或者 CSE - 日志:使用通用日志框架,日志信息打屏,由 Docker 引擎或者日志服务保存日志 @@ -102,7 +117,5 @@ issue # 十、遗留问题 -- 一个 Commit ID 一个 patch 文件 -- 后续补丁分类、补丁推送功能放到 issue 实现,需要跟李中华等讨论 - +- SVN、Git SCM 仓库对应的 API 需要验证 diff --git a/doc/design/PatchTrackingFlow.eap b/doc/design/PatchTrackingFlow.eap index e845a0f5c208b0b9908f83ffc88a635570759e0e..844a3821b233102edbc12cae7ddfa344418fa28f 100644 Binary files a/doc/design/PatchTrackingFlow.eap and b/doc/design/PatchTrackingFlow.eap differ diff --git a/doc/design/PatchTrackingIssue.jpg b/doc/design/PatchTrackingIssue.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f6c9aef19cd2664c041521c93148435cc8a41d55 Binary files /dev/null and b/doc/design/PatchTrackingIssue.jpg differ diff --git a/doc/design/PatchTrackingQuery.jpg b/doc/design/PatchTrackingQuery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd3b69effc666503211173297ebe5d177efbfa51 Binary files /dev/null and b/doc/design/PatchTrackingQuery.jpg differ