Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
docs
提交
1e7dde95
D
docs
项目概览
openeuler
/
docs
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1e7dde95
编写于
7月 17, 2020
作者:
L
lss410313
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add new docs
上级
c733f297
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
133 addition
and
2 deletion
+133
-2
content/zh/docs/userguide/images/Maintainer.jpg
content/zh/docs/userguide/images/Maintainer.jpg
+0
-0
content/zh/docs/userguide/images/PatchTracking.jpg
content/zh/docs/userguide/images/PatchTracking.jpg
+0
-0
content/zh/docs/userguide/概述.md
content/zh/docs/userguide/概述.md
+2
-0
content/zh/docs/userguide/补丁工具.md
content/zh/docs/userguide/补丁工具.md
+125
-0
content/zh/menu/index.md
content/zh/menu/index.md
+6
-2
未找到文件。
content/zh/docs/userguide/images/Maintainer.jpg
0 → 100644
浏览文件 @
1e7dde95
45.2 KB
content/zh/docs/userguide/images/PatchTracking.jpg
0 → 100644
浏览文件 @
1e7dde95
39.7 KB
content/zh/docs/userguide/概述.md
0 → 100644
浏览文件 @
1e7dde95
本文主要介绍在openEuler 发行版本过程中使用到的工具集,主要包含工具的介绍,安装以及使用等方面内容。
content/zh/docs/userguide/补丁工具.md
0 → 100644
浏览文件 @
1e7dde95
补丁跟踪
===
# 简介
在 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。
<img
src=
"images/PatchTracking.jpg"
alt=
"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 = ""
```
content/zh/menu/index.md
浏览文件 @
1e7dde95
...
...
@@ -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
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录