commit
36fd2ea6ca
|
@ -12,15 +12,21 @@
|
||||||
2. 将GitHub账号以邮件/微信形式发给助教,助教发送GitHub邀请到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)组织,Lab 1、Lab 4和Lab5中涉及操作GitHub的部分均会在此进行;此外,后续的课程项目也会以此处告知的GitHub账号为准进行评分。
|
2. 将GitHub账号以邮件/微信形式发给助教,助教发送GitHub邀请到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)组织,Lab 1、Lab 4和Lab5中涉及操作GitHub的部分均会在此进行;此外,后续的课程项目也会以此处告知的GitHub账号为准进行评分。
|
||||||
3. 在[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中创建一个GitHub仓库,名为`2023Fall-{学号(十六进制)}-Lab1`。
|
3. 在[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中创建一个GitHub仓库,名为`2023Fall-{学号(十六进制)}-Lab1`。
|
||||||
> 例如,如果学号为2000012345,那么仓库名应当为`2023Fall-7735c439-Lab1`。
|
> 例如,如果学号为2000012345,那么仓库名应当为`2023Fall-7735c439-Lab1`。
|
||||||
|
|
||||||
4. 在自己的个人电脑上安装git,初始化一个git repository。
|
4. 在自己的个人电脑上安装git,初始化一个git repository。
|
||||||
> 网上存在大量关于如何在Windows/Mac OS/Linux安装git、初始化git repository、和添加commit的教程,我们在此推荐[MIT的Git教程](https://missing.csail.mit.edu/2020/version-control/)和[Pro Git前五章](https://git-scm.com/book/en/v2),也可自行搜索参考其他教程,在此不再赘述;除命令行外,VS Code等IDE也提供非常便捷的git操作GUI。
|
> 网上存在大量关于如何在Windows/Mac OS/Linux安装git、初始化git repository、和添加commit的教程,我们在此推荐[MIT的Git教程](https://missing.csail.mit.edu/2020/version-control/)和[Pro Git前五章](https://git-scm.com/book/en/v2),也可自行搜索参考其他教程,在此不再赘述;除命令行外,VS Code等IDE也提供非常便捷的git操作GUI。
|
||||||
|
|
||||||
5. 在repository中创建README.md文件,在文件中描述自己目前对开源项目的贡献想法,为本学期的课程学习设定目标。
|
5. 在repository中创建README.md文件,在文件中描述自己目前对开源项目的贡献想法,为本学期的课程学习设定目标。
|
||||||
|
|
||||||
6. 在一个新的commit中添加README.md进入git仓库,这个commit的commit message应当为`Add README.md with my OSS contribution plan`。
|
6. 在一个新的commit中添加README.md进入git仓库,这个commit的commit message应当为`Add README.md with my OSS contribution plan`。
|
||||||
> 为了保证软件项目的可维护性,特别是为了方便他人查看和理解一个项目的开发历史,commit message的最低要求通常是**能够简明扼要地总结这个commit所包含的变更**。对于大型项目而言,往往还会对commit message格式做出更加严格的要求,例如[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/),方便对commit进行自动化管理。
|
> 为了保证软件项目的可维护性,特别是为了方便他人查看和理解一个项目的开发历史,commit message的最低要求通常是**能够简明扼要地总结这个commit所包含的变更**。对于大型项目而言,往往还会对commit message格式做出更加严格的要求,例如[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/),方便对commit进行自动化管理。
|
||||||
|
|
||||||
7. 将这个repository上传到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中你创建的GitHub仓库。
|
7. 将这个repository上传到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中你创建的GitHub仓库。
|
||||||
|
|
||||||
8. (建议上过一周课程后再继续这一步)相比较于上一次,你的贡献想法和计划发生了什么变化?请在你创建的GitHub仓库中开启一个issue,用一句话描述贡献想法和计划的变化。
|
8. (建议上过一周课程后再继续这一步)相比较于上一次,你的贡献想法和计划发生了什么变化?请在你创建的GitHub仓库中开启一个issue,用一句话描述贡献想法和计划的变化。
|
||||||
> 在真实的开源项目中,Issue和PR的内容通常会有规定的[模板](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates),以便于维护者快速地处理新的Issue和PR;在本Lab中,因为相关的issue和PR过于trivial,故不对内容作任何要求;但是需要额外注意,如果在真实的开源项目中提交issue和PR,通常需要严格遵循其规定的贡献指南。之后的Lab中涉及到对成熟开源项目的贡献指南的观察和分析。
|
> 在真实的开源项目中,Issue和PR的内容通常会有规定的[模板](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/about-issue-and-pull-request-templates),以便于维护者快速地处理新的Issue和PR;在本Lab中,因为相关的issue和PR过于trivial,故不对内容作任何要求;但是需要额外注意,如果在真实的开源项目中提交issue和PR,通常需要严格遵循其规定的贡献指南。之后的Lab中涉及到对成熟开源项目的贡献指南的观察和分析。
|
||||||
9. 将你创建的GitHub仓库fork到你自己的账号下,新建一个分支,并在新分支中添加一个或者多个新commit,将想法的变化更新在README.md中,随后切回主分支main删除其中README.md的内容并提交删除commit。此时,在你创建的GitHub仓库中开启一个PR,将新分支合并入主分支main,解决存在的冲突,设置reviewer为助教,等待助教合并PR。
|
|
||||||
|
9. 将你创建的GitHub仓库fork到你自己的账号下,新建一个分支,并在新分支中添加一个或者多个新commit,将想法的变化更新在README.md中,随后回到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中你创建的GitHub仓库,删除其中README.md的内容并提交删除commit。此时,在你创建的GitHub仓库中开启一个PR,将fork仓库中的新分支合并入[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中仓库的主分支main,解决存在的冲突,设置reviewer为助教,等待助教合并PR。
|
||||||
> 在Lab 1中,你有直接合并PR的权限;在真实的开源项目中,通常只有核心维护者具有PR合并权限,需要通过一轮或多轮[Code Review](https://en.wikipedia.org/wiki/Code_review),才能合并PR里的变更;此外,开源项目在开发过程中通常会选择在不同的[分支](https://docs.github.com/zh/desktop/making-changes-in-a-branch/managing-branches-in-github-desktop)中同步完成不同的开发工作从而使得不同的开发互不影响,但在合并分支的过程中,如果仓库内的不同分支同时对相同文件进行了更改,通常会产生conflicts,此时需要人为进行检查[解决合并冲突](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts),才能合并以获取分支中的最新更改。
|
> 在Lab 1中,你有直接合并PR的权限;在真实的开源项目中,通常只有核心维护者具有PR合并权限,需要通过一轮或多轮[Code Review](https://en.wikipedia.org/wiki/Code_review),才能合并PR里的变更;此外,开源项目在开发过程中通常会选择在不同的[分支](https://docs.github.com/zh/desktop/making-changes-in-a-branch/managing-branches-in-github-desktop)中同步完成不同的开发工作从而使得不同的开发互不影响,但在合并分支的过程中,如果仓库内的不同分支同时对相同文件进行了更改,通常会产生conflicts,此时需要人为进行检查[解决合并冲突](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts),才能合并以获取分支中的最新更改。
|
||||||
|
|
||||||
## 评分标准
|
## 评分标准
|
||||||
|
@ -29,7 +35,7 @@
|
||||||
- (1分)Repository中有README.md,按要求书写了commit message。
|
- (1分)Repository中有README.md,按要求书写了commit message。
|
||||||
- (1分)README.md有开源项目的贡献想法和计划。
|
- (1分)README.md有开源项目的贡献想法和计划。
|
||||||
- (1分)按要求open issue。
|
- (1分)按要求open issue。
|
||||||
- (1分)按要求fork repository、新建分支并在新分支与主分支中同时提交commit修改。
|
- (1分)按要求fork repository、新建分支并在fork仓库的新分支与原仓库的主分支中同时提交commit修改。
|
||||||
- (1分)按要求提交PR合并分支并解决产生的conflicts。
|
- (1分)按要求提交PR合并分支并解决产生的conflicts。
|
||||||
- (1分)贡献想法体现出了对开源项目的了解和自己的认真思考。
|
- (1分)贡献想法体现出了对开源项目的了解和自己的认真思考。
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Lab 2: 了解开源项目的开发方式和贡献流程(7分)
|
# Lab 2: 了解开源项目的开发方式和贡献流程(7分)
|
||||||
|
|
||||||
**截止日期:2022.10.05 11:59am**
|
**截止日期:2023.10.11 11:59am**
|
||||||
|
|
||||||
## 实践目的
|
## 实践目的
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
(在这里写下你的回答)
|
(在这里写下你的回答)
|
||||||
|
|
||||||
> (2分)请找到并阅读这个项目的贡献指南,提供贡献指南的链接,并简要回答如下问题:
|
> (2分)请找到并阅读这个项目的贡献指南(如项目内[CONTRIBUTING.md](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors)等),提供贡献指南的链接,并简要回答如下问题:
|
||||||
> - 这个项目的贡献指南包含了哪些内容?
|
> - 这个项目的贡献指南包含了哪些内容?
|
||||||
> - 有哪些为这个开源项目提出改进建议的方式?
|
> - 有哪些为这个开源项目提出改进建议的方式?
|
||||||
> - 有哪些为这个开源项目做出贡献的方式?
|
> - 有哪些为这个开源项目做出贡献的方式?
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
> (3分)请尝试找到这个项目的开发文档,提供开发文档的链接,按照开发文档的描述在你的机器上配置开发环境,并简要回答如下问题:
|
> (3分)请尝试找到这个项目的开发文档,提供开发文档的链接,按照开发文档的描述在你的机器上配置开发环境,并简要回答如下问题:
|
||||||
> - 这个项目是否规定了统一代码风格?采用了什么自动化工具来执行规定的代码风格?
|
> - 这个项目是否规定了统一代码风格?采用了什么自动化工具来执行规定的代码风格?
|
||||||
> - 这个项目有哪些测试?采用了什么测试框架来运行测试?
|
> - 这个项目有哪些测试?采用了什么测试框架(如Python的[pytest](https://docs.pytest.org/en/7.4.x/))来运行测试?
|
||||||
> - 这个项目是否配置了CI/CD流水线(例如,[GitHub Actions](https://docs.github.com/en/actions),注意GitHub上commit边上的小绿勾)?流水线中包含了哪些检查?
|
> - 这个项目是否配置了CI/CD流水线(例如,[GitHub Actions](https://docs.github.com/en/actions),注意GitHub上commit边上的小绿勾)?流水线中包含了哪些检查?
|
||||||
> - 你能否在你的机器上成功构建并运行测试?如果是,请提供一些输出结果(可附截图);如果否,请试图解释原因
|
> - 你能否在你的机器上成功构建并运行测试?如果是,请提供一些输出结果(可附截图);如果否,请试图解释原因
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
## 提交方式
|
## 提交方式
|
||||||
|
|
||||||
请在截止日期之前,将此markdown文件(请检查前面的问题是不是已经都回答了)发送到助教邮箱(heh@pku.edu.cn),文件命名统一为`学号-姓名-Lab2.md`(例如`2001111320-何昊-Lab2.md`)。
|
请在截止日期之前,将此markdown文件(请检查前面的问题是不是已经都回答了)发送到助教邮箱(ghq@stu.pku.edu.cn),文件命名统一为`学号(十六进制)-姓名-Lab2.md`(例如`7735c439-张三-Lab2.md`)。
|
||||||
|
|
||||||
## 评分标准
|
## 评分标准
|
||||||
|
|
||||||
|
|
40
Syllabus.md
40
Syllabus.md
|
@ -8,28 +8,19 @@ EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
See the Mulan PSL v2 for more details.
|
See the Mulan PSL v2 for more details.
|
||||||
|
|
||||||
# 2022年秋冬学期——课程大纲 (subject to change)
|
# 2023年秋冬学期——课程大纲 (subject to change)
|
||||||
|
|
||||||
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
|
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
|
||||||
|
|
||||||
授课教师:周明辉 zhmh@pku.edu.cn
|
授课教师:周明辉 zhmh@pku.edu.cn
|
||||||
助教: 何昊 heh@pku.edu.cn
|
助教: 谷海桥 ghq@stu.pku.edu.cn
|
||||||
|
|
||||||
## 第1次课:开源软件及其开发概述(课堂lecture) 09/07
|
## 第1次课:开源软件及其开发概述(课堂lecture) 09/13
|
||||||
|
|
||||||
* 100课程简介:课程的目的和内容,以及课程的考核形式。 **lecture100**
|
* 100课程简介:课程的目的和内容,以及课程的考核形式。 **lecture100**
|
||||||
* 101开源软件概述:开源的定义、历史和现状、社区结构和治理,以及开源研究。 **lecture101**
|
* 101开源软件概述:开源的定义、历史和现状、社区结构和治理,以及开源研究。 **lecture101**
|
||||||
|
* 102往年贡献: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感)
|
||||||
|
|
||||||
课堂练习:
|
|
||||||
* 课堂上访问github/gitee/gitlink,设立平台账号,了解一个开源项目。
|
|
||||||
* 阅读并了解Lab1。
|
|
||||||
|
|
||||||
> **Lab 1:练习使用git和GitHub(7分,三周)**
|
|
||||||
> - 注册GitHub账号
|
|
||||||
> - 加入课程的[Organization](https://github.com/OSS-Dev-Course-PKU)
|
|
||||||
> - 创建GitHub仓库并添加commit,于README.md写下目前的开源项目贡献想法
|
|
||||||
>
|
|
||||||
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md),**截止日期:2022.09.28 11:59am**
|
|
||||||
|
|
||||||
## 第2次课:开源开发的支持平台和关键技术:熟悉开源平台和Git操作(课堂lecture) 09/14
|
## 第2次课:开源开发的支持平台和关键技术:熟悉开源平台和Git操作(课堂lecture) 09/14
|
||||||
|
|
||||||
|
@ -38,21 +29,32 @@ See the Mulan PSL v2 for more details.
|
||||||
* 202:GitHub实践入门 **lecture202**
|
* 202:GitHub实践入门 **lecture202**
|
||||||
- 了解如何用开源协作工具,熟悉Github/Gitee/GitLink--建立账号和代码仓库,浏览和fork项目
|
- 了解如何用开源协作工具,熟悉Github/Gitee/GitLink--建立账号和代码仓库,浏览和fork项目
|
||||||
|
|
||||||
|
课堂练习:
|
||||||
|
* 课堂上访问github,设立平台账号,了解一个开源项目。
|
||||||
|
* 阅读并了解Lab1。
|
||||||
|
|
||||||
|
> **Lab 1:练习使用git和GitHub(7分,两周)**
|
||||||
|
> - 注册GitHub账号
|
||||||
|
> - 加入课程的[Organization](https://github.com/OSS-Dev-Course-PKU)
|
||||||
|
> - 创建GitHub仓库并添加commit,于README.md写下目前的开源项目贡献想法
|
||||||
|
>
|
||||||
|
<!-- > Lab 1详细要求参见[WriteUp](Assignments/Lab1.md),**截止日期:2022.10.05 11:59am** -->
|
||||||
|
|
||||||
> **Lab 1扩展:练习使用issue、fork和PR**
|
> **Lab 1扩展:练习使用issue、fork和PR**
|
||||||
> - 提交一个issue,描述自己的想法(相比较于第一次提交)做出了哪些变化
|
> - 提交一个issue,描述自己的想法(相比较于第一次提交)做出了哪些变化
|
||||||
> - 将仓库fork到自己的账号下,对README.md做出相应修改并提出一个PR
|
> - 将仓库fork到自己的账号下,对README.md做出相应修改并提出一个PR,并解决产生的冲突
|
||||||
>
|
>
|
||||||
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md),**截止日期:2022.09.28 11:59am**
|
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md),**截止日期:2023.10.05 11:59am**
|
||||||
|
|
||||||
## 第3次课:开源贡献指南(课堂lecture) 09/21
|
## 第3次课:开源贡献指南(课堂lecture) 09/27
|
||||||
|
|
||||||
* 301:开源参与概述:怎么参与开源项目和社区。 **lecture301**
|
* 301:开源参与概述:怎么参与开源项目和社区。 **lecture301**
|
||||||
|
|
||||||
* 301:开源贡献指南: **lecture302**
|
* 302:开源贡献指南: **lecture302**
|
||||||
- learn how the open source community works;
|
- learn how the open source community works;
|
||||||
- criteria to select open source project and task to participate in.
|
- criteria to select open source project and task to participate in.
|
||||||
|
|
||||||
* 303: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感) **lecture303**
|
* 303:开源课程评分依据: **lecture303**
|
||||||
|
|
||||||
> **Lab 2:了解开源项目的开发方式和贡献流程(7分,两周)**
|
> **Lab 2:了解开源项目的开发方式和贡献流程(7分,两周)**
|
||||||
>
|
>
|
||||||
|
@ -60,7 +62,7 @@ See the Mulan PSL v2 for more details.
|
||||||
> - 了解并报告CONTRIBUTING.md的形式和内容
|
> - 了解并报告CONTRIBUTING.md的形式和内容
|
||||||
> - 回答有关其贡献流程、质量管理方式等若干问题
|
> - 回答有关其贡献流程、质量管理方式等若干问题
|
||||||
>
|
>
|
||||||
> Lab 2详细要求参见[WriteUp](Assignments/Lab2.md),**截止日期:2022.10.05 11:59am**
|
> Lab 2详细要求参见[WriteUp](Assignments/Lab2.md),**截止日期:2023.10.12 11:59am**
|
||||||
|
|
||||||
## 第4次课:开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 09/28
|
## 第4次课:开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 09/28
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue