From 1e7dde95c3e603cfbbe8cd897bf0bb43c4847460 Mon Sep 17 00:00:00 2001 From: lss410313 <1091987178@qq.com> Date: Fri, 17 Jul 2020 10:08:10 +0800 Subject: [PATCH] add new docs --- .../zh/docs/userguide/images/Maintainer.jpg | Bin 0 -> 46243 bytes .../docs/userguide/images/PatchTracking.jpg | Bin 0 -> 40635 bytes .../userguide/\346\246\202\350\277\260.md" | 2 + ...45\344\270\201\345\267\245\345\205\267.md" | 125 ++++++++++++++++++ content/zh/menu/index.md | 8 +- 5 files changed, 133 insertions(+), 2 deletions(-) create mode 100644 content/zh/docs/userguide/images/Maintainer.jpg create mode 100644 content/zh/docs/userguide/images/PatchTracking.jpg create mode 100644 "content/zh/docs/userguide/\346\246\202\350\277\260.md" create mode 100644 "content/zh/docs/userguide/\350\241\245\344\270\201\345\267\245\345\205\267.md" diff --git a/content/zh/docs/userguide/images/Maintainer.jpg b/content/zh/docs/userguide/images/Maintainer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..da0d5f1b5d928eca3a0d63795f59c55331136065 GIT binary patch literal 46243 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 X_jtE`!pkaQ>1FNXUktP#e4qF~gjd|( literal 0 HcmV?d00001 diff --git a/content/zh/docs/userguide/images/PatchTracking.jpg b/content/zh/docs/userguide/images/PatchTracking.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e12afd6227c18c333f289b9aa71abf608d8058a0 GIT binary patch literal 40635 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 literal 0 HcmV?d00001 diff --git "a/content/zh/docs/userguide/\346\246\202\350\277\260.md" "b/content/zh/docs/userguide/\346\246\202\350\277\260.md" new file mode 100644 index 0000000..74490c6 --- /dev/null +++ "b/content/zh/docs/userguide/\346\246\202\350\277\260.md" @@ -0,0 +1,2 @@ +本文主要介绍在openEuler 发行版本过程中使用到的工具集,主要包含工具的介绍,安装以及使用等方面内容。 + diff --git "a/content/zh/docs/userguide/\350\241\245\344\270\201\345\267\245\345\205\267.md" "b/content/zh/docs/userguide/\350\241\245\344\270\201\345\267\245\345\205\267.md" new file mode 100644 index 0000000..5b48e8a --- /dev/null +++ "b/content/zh/docs/userguide/\350\241\245\344\270\201\345\267\245\345\205\267.md" @@ -0,0 +1,125 @@ +补丁跟踪 +=== + + +# 简介 + +在 openEuler 发行版开发过程,需要及时更新上游社区各个软件包的最新代码,修改功能 bug 及安全问题,确保发布的 openEuler 发行版尽可能避免缺陷和漏洞。 + +本工具对软件包进行补丁管理,主动监控上游社区提交,自动生成补丁,并自动提交 issue 给对应的 maintainer,同时自动验证补丁基础功能,减少验证工作量支持 maintainer 快速决策。 + +# 架构 + +## CS架构 + +补丁跟踪工具采用 C/S 架构。 + +* 服务端(patch-tracking) :负责执行补丁跟踪任务,包括维护跟踪项,识别上游仓库分支代码变更并形成补丁文件,向 Gitee 提交 issue 及 PR,同时 patch-tracking 提供 RESTful 接口,用于对跟踪项进行增删改查操作。 + +* 客户端:即命令行工具(patch-tracking-cli),通过调用 patch-tracking 的 RESTful 接口,实现对跟踪项的增删改查操作。 + +## 核心流程 + +* 补丁跟踪服务流程 + +**主要步骤:** + +1. 命令行工具写入跟踪项。 +2. 自动从跟踪项配置的上游仓库(例如Github)获取补丁文件。 +3. 创建临时分支,将获取到的补丁文件提交到临时分支。 +4. 自动提交issue到对应项目,并生成关联 issue 的 PR。 + +PatchTracking + +* Maintainer对提交的补丁处理流程 + +**主要步骤:** +1. Maintainer分析临时分支中的补丁文件,判断是否合入。 +2. 执行构建,构建成功后判断是否合入PR。 + +![Maintainer](images/Maintainer.jpg) + +## 数据结构 + +* Tracking表 + +| 序号 | 名称 | 说明 | 类型 | 键 | 允许空 | +|:----:| ----| ----| ----| ----| ----| +| 1 | id | 自增补丁跟踪项序号 | int | - | NO | +| 2 | version_control | 上游SCM的版本控制系统类型 | String | - | NO | +| 3 | scm_repo | 上游SCM仓库地址 | String | - | NO | +| 4 | scm_branch | 上游SCM跟踪分支 | String | - | NO | +| 5 | scm_commit | 上游代码最新处理过的Commit ID | String | - | YES | +| 6 | repo | 包源码在Gitee的仓库地址 | String | Primary | NO | +| 7 | branch | 包源码在Gitee的仓库分支 | String | Primary | NO | +| 8 | enabled | 是否启动跟踪 | Boolean | -| NO | + +* Issue表 + +| 序号 | 名称 | 说明 | 类型 | 键 | 允许空 | +|:----:| ----| ----| ----| ----| ----| +| 1 | issue | issue编号 | String | Primary | NO | +| 2 | repo | 包源码在Gitee的仓库地址 | String | - | NO | +| 3 | branch | 包源码在Gitee的仓库分支 | String | - | NO | + +# 工具安装 + +## 环境要求 + +>* 已安装 Python 3.7及以上版本 +>* 已安装 pip3。 + + +## 安装依赖 + +执行如下指令安装依赖包。 + +```shell script +yum install -y gcc python3-devel openssl-devel +pip3 install flask flask-sqlalchemy flask-apscheduler requests flask_httpauth +pip3 install -I uwsgi +``` + +## 安装工具 + +执行如下指令安装工具(其中”xxx”表示版本号,请用实际情况代替)。 + +```shell script +rpm -ivh patch-tracking-xxx.rpm +``` + +## 配置参数 + +在配置文件中对相应参数进行配置,配置文件路径为 `/etc/patch-tracking/settings.conf`。 + +1. 配置服务监听地址。 + + ``` + LISTEN = "127.0.0.1:5001" + ``` + +2. GitHub Token,用于访问托管在GitHub上游开源软件仓的仓库信息。生成GitHub Token的方法请参考 [Creating a personal access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) 。 + + ``` + GITHUB_ACCESS_TOKEN = "" + ``` + +3. 对于托管在gitee上的需要跟踪的仓库,配置一个有该仓库权限的gitee的token,用于提交patch文件,提交issue,提交PR等操作。 + + ``` + GITEE_ACCESS_TOKEN = "" + ``` + +4. 定时扫描数据库中是否有新增或修改的跟踪项,对扫描到的跟踪项执行获取上游补丁任务,在这里配置扫描的时间间隔,数字单位是秒。 + + ``` + SCAN_DB_INTERVAL = 3600 + ``` + +5. 命令行工具运行过程中,POST接口需要填写进行认证的用户名和口令哈希值。 + + ``` + USER = "admin" + + PASSWORD = "" + ``` diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md index d678044..c315218 100644 --- a/content/zh/menu/index.md +++ b/content/zh/menu/index.md @@ -128,9 +128,13 @@ headless: true - [附录]({{< relref "./docs/A-Tune/附录.md" >}}) -- [应用开发指南]({{< relref "./docs/ApplicationDev/application-development.md" >}}) +- [应用开发指南]({{< relref "./docs/ApplicationDev/application-development.md" >}})userguide - [开发环境准备]({{< relref "./docs/ApplicationDev/开发环境准备.md" >}}) - [使用GCC编译]({{< relref "./docs/ApplicationDev/使用GCC编译.md" >}}) - [使用make编译]({{< relref "./docs/ApplicationDev/使用make编译.md" >}}) - [使用JDK编译]({{< relref "./docs/ApplicationDev/使用JDK编译.md" >}}) - - [构建RPM包]({{< relref "./docs/ApplicationDev/构建RPM包.md" >}}) \ No newline at end of file + - [构建RPM包]({{< relref "./docs/ApplicationDev/构建RPM包.md" >}}) + +- [openEuler工具集用户指南]({{< relref "./docs/userguide/概述.md" >}}) + - [补丁工具]({{< relref "./docs/userguide/补丁工具.md" >}}) + - [包管理工具]({{< relref "./docs/userguide/包管理工具.md" >}}) \ No newline at end of file -- GitLab