FAQ 长期更新,有好的问题欢迎及时提交 PR。
- 通过 issue 或者观察 OBS 确认构建失败的软件包,当前重点在
openEuler:Mainline:RISC-V
- 初步分析错误原因,并在工作群进行确认
- 使用 osc 工具在本地修复构建,由于构建资源的问题,不用分支
home
仓库,直接拉取主线仓库。 - 判断是否需要提交 PR,如遇到了类似超时需要重新构建的问题,直接向 mentor 反馈,也可以得到少量薪资评价。
- 将修复内容形成一个 PR ,向
src-openEuler
仓库提交。 - 在工作群汇报 PR 链接,等待 mentor 帮助审核。
公开可见交付一般作为薪资评定的重要依据。一般而言,oerv 的大部分公开可见交付是指向 src-openEuler
仓库提交的有效 PR。以下两种方式作为补充,也判定为有效:
- 在进行某个项目或者修复某个比较困难的软件包的过程中,撰写的公开博客、发布的公开视频教程,可以算作公开可见交付。我们鼓励这种行为,但是请注意,相关内容必须与 openEuler RISC-V 工作内容有关。
- 在修包或者进行项目时,发现软件包上游可以直接提交 PR,那么在给
src-openEuler
提交 patch 的同时,可以直接向上游提交 PR。这样,一个问题的两个 PR 可以分别独立算作不同的交付。
OBS,全称 Open Build Service,是一个开源的软件构建和发布系统,主要用于构建和分发软件包,支持多种操作系统和硬件架构。 openEuler 的 OBS 系统分支于 openSUSE,承载了 openEuler 社区所有公开发布的软件包的构建和管理。 osc 是 OBS 的命令行客户端,可以帮助开发者在本地拉取 OBS 软件环境进行构建。有关于 OBS 使用的问题建议及时在工作群提问。
openEuler OBS,网址为 https://build.openeuler.openatom.cn/, 是作为 openEuler 官方正式贡献的 OBS 网站,也是我们建议的贡献平台。tasier OBS 是软件所独立构建的 OBS,主要承载软件包的早期验证和后期独立的第三方项目。
如果在 PR 修改的过程中没有其他人的 PR 产生冲突,并且需要保持干净的提交历史,可以在修改并提交(commit)之后使用 git commit --amend
或者 git rebase
来合并提交记录,然后使用 git push -f
进行强制推送。以下是具体步骤:
-
提交更改:
- 在完成代码修改后,使用
git commit
进行提交。
- 在完成代码修改后,使用
-
使你的提交满足 a simple commit 原则
-
使用
git rebase
合并提交:- 如果想合并最近的几个提交,可以使用
git rebase -i
命令。例如,git rebase -i HEAD~2
会开启一个交互式的 rebase 会话,允许操作最近的两个提交。 - 在 rebase 界面中,会看到一系列的提交,每个提交前都有一个
pick
命令。 - 将除了第一个提交之外的所有提交前的
pick
命令改为s
(代表squash
),这会将这些提交合并到第一个提交中。 - 保存并退出编辑器,Git 要求编辑一个新的提交信息,这个信息会包含被合并的所有提交的信息。
- 如果想合并最近的几个提交,可以使用
-
使用
git commit --amend
修改提交:- 如果只是需要修改最近一次的提交信息,可以使用
git commit --amend
。 - 这会打开一个编辑器,修改最近一次提交的信息。
- 如果只是需要修改最近一次的提交信息,可以使用
-
-
强制推送到远程仓库:
- 使用
git push -f
将更改强制推送到远程仓库
- 使用
如果执行以上步骤出现 PR 混乱,可能是 PR 修改的时候有其他人提交了会产生冲突的修改,可以思考如何完成正确的 PR 提交,但是并不强求。另一种解决方案是关闭错误的 PR 重新整理提交一个正确的 PR。