Compare commits
15 Commits
2973d37bfb
...
36fd2ea6ca
Author | SHA1 | Date |
---|---|---|
ghq17 | 36fd2ea6ca | |
ghq17 | d02fb53c2b | |
ufh1tx4asd | 20936b5b2a | |
ufh1tx4asd | bf360b340e | |
ufh1tx4asd | 345c3d7c69 | |
ufh1tx4asd | f045bb88a3 | |
ghq17 | d17164408f | |
ghq17 | ecd8a249ab | |
ghq17 | c4a27e4b33 | |
ufh1tx4asd | cace3bdb8e | |
ghq17 | 8886519399 | |
ghq17 | 0864f6c805 | |
ghq17 | 49476e8489 | |
ghq17 | 9dc5713294 | |
ufh1tx4asd | a6f29e1b97 |
|
@ -1,6 +1,6 @@
|
||||||
# Lab 1:熟悉git和GitHub(7分)
|
# Lab 1:熟悉git和GitHub(7分)
|
||||||
|
|
||||||
**截止日期:2023.09.27 11:59am**
|
**截止日期:2023.10.05 11:59am**
|
||||||
|
|
||||||
## 实践目的
|
## 实践目的
|
||||||
|
|
||||||
|
@ -10,27 +10,33 @@
|
||||||
|
|
||||||
1. 如果你还没有GitHub账号,请注册一个GitHub账号。
|
1. 如果你还没有GitHub账号,请注册一个GitHub账号。
|
||||||
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-2000012345-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进行自动化管理。
|
||||||
8. 将这个repository上传到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中你创建的GitHub仓库。
|
|
||||||
9. (建议上过一周课程后再继续这一步)相比较于上一次,你的贡献想法和计划发生了什么变化?请在你创建的GitHub仓库中开启一个issue,用一句话描述贡献想法和计划的变化。
|
7. 将这个repository上传到[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中你创建的GitHub仓库。
|
||||||
|
|
||||||
|
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中涉及到对成熟开源项目的贡献指南的观察和分析。
|
||||||
10. 将你创建的GitHub仓库fork到你自己的账号下,添加一个或者多个新commit,将想法的变化更新在README.md中,并对你创建的GitHub仓库开启一个PR,设置reviewer为助教,等待助教合并PR。
|
|
||||||
> 在Lab 1中,你有直接合并PR的权限;在真实的开源项目中,通常只有核心维护者具有PR合并权限,需要通过一轮或多轮[Code Review](https://en.wikipedia.org/wiki/Code_review),才能合并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),才能合并以获取分支中的最新更改。
|
||||||
|
|
||||||
## 评分标准
|
## 评分标准
|
||||||
|
|
||||||
- (1分)按要求创建了repository。
|
- (1分)按要求创建了repository。
|
||||||
- (1分)Repository中有README.md。
|
- (1分)Repository中有README.md,按要求书写了commit message。
|
||||||
- (1分)按要求书写了commit message。
|
|
||||||
- (1分)README.md有开源项目的贡献想法和计划。
|
- (1分)README.md有开源项目的贡献想法和计划。
|
||||||
- (1分)按要求open issue。
|
- (1分)按要求open issue。
|
||||||
- (1分)按要求fork repository、提交commit修改、和提交PR。
|
- (1分)按要求fork repository、新建分支并在fork仓库的新分支与原仓库的主分支中同时提交commit修改。
|
||||||
|
- (1分)按要求提交PR合并分支并解决产生的conflicts。
|
||||||
- (1分)贡献想法体现出了对开源项目的了解和自己的认真思考。
|
- (1分)贡献想法体现出了对开源项目的了解和自己的认真思考。
|
||||||
|
|
||||||
对于每一项评分标准,超过DDL的提交统一不得分。
|
对于每一项评分标准,超过DDL的提交统一不得分。
|
||||||
|
@ -41,7 +47,7 @@ Lab 1无需特意提交任何内容,助教会在DDL后检查[OSS-Dev-Course-PK
|
||||||
|
|
||||||
## 备注
|
## 备注
|
||||||
|
|
||||||
1. Lab 1中所涉及的git操作相对比较简单,在真实的开源项目中可能会涉及到比较复杂的git操作(例如branch/rebase/squash/submodule等);因此,虽然Lab 1不对此作强制的评分要求,但是我们强烈建议,如果你对git仍不熟悉,可以自己过一遍[MIT的Git教程](https://missing.csail.mit.edu/2020/version-control/)并做一做附带的练习,以免在之后的课程项目中遭遇困难。
|
1. Lab 1中所涉及的git操作相对基础,在真实的开源项目中可能会涉及到比较复杂的git操作(例如rebase/squash/submodule等);因此,虽然Lab 1不对此作强制的评分要求,但是我们强烈建议,如果你对git仍不熟悉,可以自己过一遍[MIT的Git教程](https://missing.csail.mit.edu/2020/version-control/)并做一做附带的练习,以免在之后的课程项目中遭遇困难。
|
||||||
2. 若上述操作流程中存在误操作,或者需要修改贡献想法,自行重新提交即可,只要仓库历史上存在一个符合要求的commit、issue、fork、PR,即符合得分要求。
|
2. 若上述操作流程中存在误操作,或者需要修改贡献想法,自行重新提交即可,只要仓库历史上存在一个符合要求的commit、issue、fork、PR,即符合得分要求。
|
||||||
3. 在评分标准中,贡献想法的长度**不会**作为评分的参考,简明扼要即可;评分的最终解释权归助教所有。
|
3. 在评分标准中,贡献想法的长度**不会**作为评分的参考,简明扼要即可;评分的最终解释权归助教所有。
|
||||||
4. 结课后,(大概率在明年开课前)助教可能会删除[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)创建的所有repository,如果有需要,请本地保存您提交的相关内容的备份
|
4. 结课后,(大概率在明年开课前)助教可能会删除[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)创建的所有repository,如果有需要,请本地保存您提交的相关内容的备份
|
||||||
|
|
|
@ -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`)。
|
||||||
|
|
||||||
## 评分标准
|
## 评分标准
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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