增加个人开发者参与指南

This commit is contained in:
jiangwei1 2022-07-23 19:20:59 +08:00
parent 5d854e2e96
commit 7fe5b3577f
14 changed files with 271 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

View File

@ -0,0 +1,271 @@
## openKylin社区参与指北
2022年6月24日以“创开源之势 享无境未来”为主题的中国首个桌面操作系统根社区openKylin发布会在线上成功举行openKylin开源社区正式发布。各路大咖坐镇发布会吸引了无数的开发者围观同时再一次登录央视新闻多个社交平台热搜霸榜。在openKylin发布后的这段时间内我们也陆续收到了很多小伙伴的提问其中关注最多的就是如何正确的参与到openKylin社区如何正确在社区提交个人贡献本文就上述两个问题介绍参与到openKylin社区的正确姿势。
### 1. 签署CLA
CLA全称是`Contributor License Agreement`翻译过来就是贡献者许可协议为了避免一些不必要的麻烦或纠纷不管是企业、员工或个人开发者在为openKylin社区添砖加瓦之前都需要签署相应身份的CLAopenKylin社区CLA签署地址为https://cla.openkylin.top下面就浅介一下openKylin社区的三种CLA签署形式以及相对应的签署流程。
#### 1.1 企业CLA签署
企业签署的流程较为复杂通过openKylin社区审核的企业CLA签署可以加入到社区会员体系中社区会员的权益如下所示
- 申请参选理事会成员单位,享有指导社区发展方向、发展规划和实施指导意见;
- 申请[创建](https://www.openkylin.top/join/application-cn.html) SIG 组,并可指派 SIG 组 Owner 参选技术委员会;
- 申请[加入](https://www.openkylin.top/join/application-cn.html)已有[ SIG 组](https://www.openkylin.top/join/sig-cn.html),参与技术代码等开发讨论与贡献;
- 申请参选生态委员会,参与社区运营活动、联合品牌宣发、礼品置换等权益。
企业签署CLA的流程如下图所示
![image-20220719113819070](./assets/个人开发者贡献指南/企业CLA签署流程.png)
1. 首先在[企业签署](https://cla.openkylin.top/cla/sign/corporation_cla/openKylin-f46f289e01bc11edb8990242ac110005)页面提交企业签署的基本信息,其中`企业`、`联系人`、`职位`、`邮箱`以及`验证码`为必填项,其他信息可以不填;
2. 点击签署按钮后,在上一步中所填写的邮箱中会接收到一份邮件,邮件里面包括了上一步所填写的基本信息以及三个附件文件,依照邮件内容中的提示去完成后续步骤;
3. openKylin社区管理员在接收到邮寄物品后会审核所填写的信息审核通过后会在CLA平台上上传附件并自动添加您所在企业的企业管理员账号该账号会发送到第一步中所填写的邮箱中
4. 在CLA平台登录企业管理员账号并修改密码到此就完成了企业CLA的签署流程了这一步非必须但是为了防止忘记或者错误删除了企业管理员邮件建议还是完成这一步骤
> **TIPS!**
>
> 完成企业签署后企业邮箱中所接收到的账号是企业管理员账号该账号是用来审核关联企业员工签署信息的。如果企业管理员也需要在gitee上提交贡献也需要使用与企业匹配的邮箱后缀绑定gitee id签署员工CLA这样才能通过CI的CLA签署检查
#### 1.2 员工CLA签署
当您所在的企业签署完成企业CLA后您就可以使用与`您企业邮箱后缀相匹配的邮箱`进行员工CLA签署了员工签署的流程如下图所示。
![image-20220719134148656](./assets/个人开发者贡献指南/员工CLA签署流程.png)
1. 打开[员工签署](https://cla.openkylin.top/cla/sign/employee_cla/openKylin-f46f289e01bc11edb8990242ac110005)页面,填写基本信息后,点击发送验证码按钮,将邮箱中的验证码输入到验证码框中,勾选**我已阅读协议并同意签署**,点击签署按钮,弹出提示员工签署已提交;
2. 联系企业管理员,企业管理员在员工管理页面,激活您提交的员工签署请求;
3. 企业管理员激活您的签署请求后您申请的邮箱将会收到CLA签署完成的提示邮件支持员工CLA签署全部完成
#### 1.3 个人CLA签署
如果您是个人开发者或者您所在的企业没有签署企业CLA那么您可以通过签署个人CLA提交自己在openKylin社区的贡献个人CLA签署流程与员工CLA签署的流程类似如下图所示。
![image-20220719134322666](./assets/个人开发者贡献指南/个人签署CLA流程.png)
1. 打开[个人签署](https://cla.openkylin.top/cla/sign/person_cla/openKylin-f46f289e01bc11edb8990242ac110005)页面,填写个人基本信息,点击发送验证码按钮,将邮箱中的验证码输入到验证码框中,勾选**我已阅读协议并同意签署**,点击签署按钮,弹出提示签署成功;
2. 打开个人签署邮箱可以收到一份个人CLA签署审核通过邮件
> **TIPS!**
>
> - 每个邮箱仅能签署一次CLA
> - 员工签署与个人签署中的`gitee id`需要填写正确如果填写错误那么在gitee上提交PR时也不能通过CI的CLA检查您提交的PR将会被打上`openkylin-cla/no`的标签
#### 1.4 三种签署形式的区别
说到这里可能就会有小伙伴提问了都是CLA签署为什么要搞出这三种形式来呢不要急让我看下面这幅图片
![image-20220719113249904](./assets/个人开发者贡献指南/三种CLA签署形式区别.png)
员工签署是必须已企业为载体如果开发者所在的企业签署了企业CLA那么该企业的所有员工可以签署属于该企业的员工CLA因此**员工在openKylin社区所提交贡献包括但不限于PR、ISSUE等都归结于该企业对openKylin社区的贡献**。
如果是个人开发者或者开发者所在的企业未签署企业CLA那么就可以通过个人签署的形式签署CLA因此通过个人CLA签署形式的开发者**在openKylin社区所提交的贡献都属于开发者个人**。
### 2. 提交贡献
在完成了第一步的CLA签署后就可以开始在openKylin社区提交您的贡献了下面通过一个简单的仓库来演示如何提交自己的`PR贡献`。
openKylin采用的业界流行的`git工作流`,因此在贡献之前,我们需要对`git`有一点点基础的了解。
#### 2.1 git环境配置
俗话说,工欲善其事,必先利其器。在正式介绍如何提交自己的贡献之前,我们需要现在本地配置好`git环境`首先需要在我们的本地安装好git环境可以通过下面的命令安装。
```bash
# debian
apt install git
# arch Linux
pacman -S git
```
在安装完成后,在终端中输入`git version`如果对应(类似下图)的输出这说明安装成功。
![image-20220718104036962](./assets/个人开发者贡献指南/git版本.png)
确认git安装完成后就可以在终端输入命令来配置我们的个人的信息了我们只需要配置最最最最简单的用户信息即可。
```bash
git config --global user.email "zhangsan@gmail.com" # 配置提交邮箱
git config --global user.name "zhangsan" # 配置提交者用户名
```
> **TIPS!**
>
> 建议`email、name`的配置信息与您gitee账号`绑定邮箱`以及`用户ID`相匹配,这样您就可以在您的个人主页中看到您的贡献记录热力图了!
#### 2.2 提交PR
在上一小节中,我们在本地完成了`git`环境,接下来就是代码贡献流程了,在此之前我们需要先到`gitee`上创建一个账号,如果没有`gitee`账号的小伙伴可以点击这个链接进行创建https://gitee.com/signup创建好gitee账号后就可以在gitee上向openKylin社区提交个人的贡献了提交贡献流程如下图所示下面通过`openKylin/ukui-menu`仓库来作为示例如何在gitee上向openKylin社区提交PR
![image-20220722094610738](./assets/个人开发者贡献指南/PR流程.png)
1. 在gitee上fork一份您感兴趣的仓库到个人账号的仓库本文使用ukui-menu作为示例如下图点击fork按钮即可将仓库复制到个人账号
![image-20220718174332874](./assets/个人开发者贡献指南/fork示例.png)
2. 将仓库fork到个人账号下后就可以在我们本地环境进行代码修改了通过下面的命令将代码clone到本地
```bash
cd /home/test/data/work/openkylin/code # 找一个中意的路径
git clone https://gitee.com/jiangwei124/ukui-menu # 克隆ukui-menu的代码到本地
```
3. 通过第二步,将我们自己账号下`ukui-menu`仓库代码克隆到了本地接下来找一个您比较顺手的IDE打开`ukui-menu`项目或者直接命令行操作(如果您觉得比较熟悉的话),这里做一个最简单的演示,新增`README-zh.md`说明文档,如果您不是技术大佬的话,一般建议从`文档`开始提交自己的社区贡献,因为这是最简单的也是最容易通过社区审核的一种方式。
```bash
cd /home/test/data/work/openkylin/code/ukui-menu
touch README-zh.md # 新建
vim README-zh.md # 输入内容
```
在翻译完`README.md`文件并将翻译内容保存到`README-zh.md`文件后,就可以通过`git`将我们新建的内容提交到我们个人的`gitee仓库`中在gitee上可以看到如下图片则说明推送成功了。
```bash
cd /home/test/data/work/openkylin/code/ukui-menu
git add README-zh.md # 将文件添加到暂存区
git commit -m "add README-zh.md file" # 提交修改
git push # 推送修改到远程仓库
```
![image-20220718174332874](./assets/个人开发者贡献指南/成功推送修改到个人仓库.png)
4. 推送完我们的修改后就可以在gitee上进行提交PR的操作了点击上图中的`Pull Requests`选项,然后点击右侧的`新建Pull Request`,即可创建新的`Pull Request`在页面中填入对应的信息后点击创建Pull Request就成功提交了您的第一个PR了。
![image-20220718174332874](./assets/个人开发者贡献指南/gitee提交PR.png)
> **TIPS!**
>
> 1. 在选择分支的时候需要注意不要选错了个人仓库的分支同时openKylin社区目标仓库的的分支需要选择`openkylin/yangtze`分支;
> 2. 如果有关联的issue可以将此Pull Request关联到issue这样当PR接受并合并后会自动将关联的issue设置为已完成状态
5. 到此您的第一个openKylin社区的贡献就基本完成啦之后就等着CI自动编译您所提交的代码如果CI流程执行成功会自动合并您所提交的PR如果失败则仓库管理员会介入审核您的PR
#### 2.3 查看PR状态
PR提交完成后会在个人主页有提交信息记录通过点击即可跳转到PR详情页面在详情页面可以看到如下图所示的信息
![image-20220718174332874](./assets/个人开发者贡献指南/查看PR状态.png)
点击上图中绿色框中的连接既可以跳转到编译日志查看详细的编译信息总之你所关心PR的一切信息都可以在你提交PR的详情页面看到。
如果想查看自己提交的PR是否已经应用到最新的ISO发行版中可以到[openKylin ISO下载页面](https://www.openkylin.top/downloads/)下载最新的ISO查看。
#### 2.4 提交issue
除了PR的贡献方式issue也是一种贡献方式比如您在使用`openKylin系统`的时候偶然间发现了一个bug就可以在`openKylin`组织提交缺陷issue。
- 如果是系统级bug则可以在[openKylin/community](https://gitee.com/openkylin/community/issues)仓库下提交`缺陷issue`;
- 如果是应用级bug则可以在openKylin社区对应的仓库下提交`缺陷issue`比如在使用麒麟影音的过程中发现有时候会出现播放视频闪退的bug就可以在[openKylin/kylin-video](https://gitee.com/openkylin/kylin-video/issues)仓库提交缺陷issue
![image-20220718174332874](./assets/个人开发者贡献指南/提交issue.png)
> **TIPS!**
>
> 提交缺陷issue时尽可能的将缺陷描述清楚如果有日志文件也点击上传附件按钮将日志文件上传到issue中
### 3. 加入SIG
SIG全称为Special Interest Group特别兴趣小组如果您想深入参与到openKylin社区可以申请加入您较为感兴趣的方向的SIG目前`openKylin`社区SIG列表可以前往https://www.openkylin.top/join/sig-cn.html查看开发者加入SIG的流程如下。
![image-20220718174332874](./assets/个人开发者贡献指南/加入sig流程.desktop)
接下来通过一个栗子来演示如何加入SIG假如我想加入`HTML5` SIG
1. fork `openKylin/community`仓库到个人gitee账号下参照2.2节;
2. clone个人账号下的community仓库到本地并修改`community/sig/html5/sig.yaml`和`community/sig/html5/README.md`两个文件,文件修改内容如下
**sig.yaml**
```yaml
name: html5
description: html5 team
owner:
- pierre4long
- insomnia_kylin
maintainers:
- name: oatoam
- name: tylwj
- name: wonschange
- name: jiangwei124 # 新增
packages:
- gecko_b2g
- gaia_homescreen
- manifests
- gaia_system
- gaia-buildinkeyborad
```
**README.md**
```mariadb
### Maintainers
- Tao Mao(maotao@kylinos.cn)
- Wenjie Li(liwenjie@yhkylin.cn)
- Changqi Wang(wanghcangqi@kylinos.cn)
- Jiang Wei(jiangwei1@kylinos.cn) # 新增
```
3. 修改完成后将修改的内容提交到个人gitee仓库下然后依照2.2部分向`openKylin/community`仓库提交PR即可接下来就是耐心等待SIG owner审核审核通过后CI流程会自动将您的申请合并到主仓库中
> **TIPS!**
>
> - 在sig.yaml文件中name字段中新增的信息为您个人`gitee id`,必须`确保该gitee id是真是存在的`否则就算SIG owner审核通过CI流程执行也会失败从而导致无法正确的将您的申请合并到`openKylin/community`仓库中。
> - 签署CLA是申请SIG的先验条件必须签署CLA后才能申请加入SIG
### 4. 申请单包维护者
由于社区的SIG成员权限过高在openKylin社区中如果想要加入SIG需要在社区有一定的贡献之后技术委员会才可能会通过您的SIG加入申请因此对于一般的开发者来说建议最开始申请为单包维护者单包维护者的流程如下图所示单包维护者具体说明可以查看[此链接文档](https://gitee.com/openkylin/community/blob/master/packages/README.md)
![image-20220719152436970](./assets/个人开发者贡献指南/申请单包维护者流程.png)
#### 4.1 申请成为新的单包维护者
假设您想成为`ukui-menu`的单包维护者,但是在`community/packages`目录下没有该包的信息,您可以通过下面的流程来申请成为新的单包维护者
1. 首先将community仓库fork到自己个人的gitee账号下然后将其克隆到本地
```bash
cd /home/test/openkylin/community # 找一个您中意的路径
git clone https://gitee.com/jiangwei124/community.git
```
2. 在`community/packages`路径下新增`ukui-menu.yaml`文件,并按照实际情况输入如下内容
```yaml
name: ukui-menu
path: ukui-menu
maintainers:
- name: zhangsan # gitee id
openkylinid:
displayname: 张三
email: zhangsan@gmail.com
```
> **TIPS!**
>
> 需要注意的是,如果仓库路径名称与软件包的名称一致,`path`字段的内容是可以省略的考虑到软件包的名称不一定符合gitee仓库命名规范为避免创建仓库失败可以另外指定路径
3. 将上述修改的内容提交到个人的gitee仓库中去然后向openKylin社区的community仓库提交PR既可以等待管理员审核通过后您就拥有了`ukui-menu`仓库的权限了,申请为新的单包维护者就已完成了!
#### 4.2 申请已有的单包维护者
与上一节成为新的单包维护者类似,申请成为已有的单包维护者更加简单,首先还需要将`openKylin/community`仓库fork到自己的gitee账号下然后只需要修改对应的包的yaml文件即可假设您项成为`ukui-menu`的包维护者,在`packages/ukui-menu.yaml`文件中新增如下内容即可
```yaml
name: ukui-menu
path: ukui-menu
maintainers:
- name: zhangsan
openkylinid:
displayname: 张三
email: zhangsan@gmail.com
# 新增你的个人信息
- name: lisi # gitee id
openkylinid:
displayname: 李四
email: lisi@gmail.com
```
到此openKylin社区参与指北就完结了如果还有其他疑问欢迎各位小伙盘提交issue或者加入开发者交流微信群