Update Syllabus, Lab 2, and Project
This commit is contained in:
parent
49e27eb4d1
commit
1a2af63d49
|
@ -1 +1,53 @@
|
|||
敬请期待
|
||||
# Lab 2: 了解开源项目的开发方式和贡献流程(7分)
|
||||
|
||||
**截止日期:2022.10.12 11:59am**
|
||||
|
||||
## 实践目的
|
||||
|
||||
初步确立一个有贡献意愿的开源项目;这个开源项目的贡献指南、开发环境、质量管理方式、issue管理方式等基本情况,熟悉贡献一个开源项目前需要做的准备工作,为开始做贡献做准备。
|
||||
|
||||
## 实践流程
|
||||
|
||||
> 请列出一个你想要贡献的开源项目,提供项目的链接,用一句话简要介绍一下这是个什么开源项目,并简要回答如下问题:
|
||||
> - 这个项目是一个活跃的开源项目么?为什么?
|
||||
> - 这个项目是一个成熟的开源项目么?为什么?
|
||||
> - 你为什么想要对这个开源项目做贡献?
|
||||
|
||||
(在这里写下你的回答)
|
||||
|
||||
> 请找到并阅读这个项目的贡献指南,提供贡献指南的链接,并简要回答如下问题:
|
||||
> - 这个项目的贡献指南包含了哪些内容?
|
||||
> - 如果你要为这个开源项目提出改进建议,应当怎么做?
|
||||
> - 如果你要为这个开源项目做出贡献(例如贡献代码),应当怎么做?
|
||||
|
||||
(在这里写下你的回答)
|
||||
|
||||
> 请尝试搜索这个项目的贡献指南、issue tracker、和其他项目文档,并简要回答如下问题:
|
||||
> - 这个项目采用何种方式管理待解决的issue?
|
||||
> - 是否会标记出难度较低的,适合新人解决的issue?
|
||||
> - 如果有标记适合新人解决的issue,这些issue被解决的情况如何?
|
||||
|
||||
(在这里写下你的回答)
|
||||
|
||||
> 请尝试找到这个项目的开发文档,提供开发文档的链接,按照开发文档的描述在你的机器上配置开发环境,并简要回答如下问题:
|
||||
> - 这个项目是否规定了统一代码风格?采用了什么自动化工具来执行规定的代码风格?
|
||||
> - 这个项目有哪些测试?采用了什么测试框架来运行测试?
|
||||
> - 这个项目是否配置了CI/CD流水线(例如,[GitHub Actions](https://docs.github.com/en/actions),注意GitHub上commit边上的小绿勾)?流水线中包含了哪些检查?
|
||||
> - 你能否在你的机器上成功构建并运行测试?如果是,请提供一些输出结果;如果否,请试图解释原因
|
||||
|
||||
(在这里写下你的回答)
|
||||
|
||||
## 提交方式
|
||||
|
||||
请在截止日期之前,将此markdown文件(请检查前面的问题是不是已经都回答了)发送到助教邮箱,文件命名统一为`学号-姓名-Lab2.md`(例如`2001111320-何昊-Lab2.md`)。
|
||||
|
||||
## 评分标准
|
||||
|
||||
对实践流程中提出的所有问题,均有合理的回答即得满分,否则酌情扣分。
|
||||
|
||||
提交超出截止日期24小时内,最多获得80%的分数;提交超出截止日期72小时内,最多获得50%的分数;出截止日期72小时的提交不得分。
|
||||
|
||||
## 备注
|
||||
|
||||
1. 如果一些问题不适用于你选择的开源项目,解释一下为什么不适用,并跳过此问题即可
|
||||
|
||||
|
|
|
@ -4,21 +4,21 @@
|
|||
|
||||
## 目标
|
||||
|
||||
课程项目的首要目标是希望同学能够通过一学期的课程学习,最终**能够向开源项目做出自己的贡献**。
|
||||
课程项目的首要目标是希望同学能够通过一学期的课程学习和实践,能够初步理解开源项目的运转、开发和组织模式,以便将来在需要的时候,能够加入开源项目,对开源项目做出自己的贡献,或者开始自己的开源项目。
|
||||
|
||||
* 需要是具有一定质量水准的开源项目
|
||||
* 有证据能证明高质量、被很多人使用、贡献者多,等等
|
||||
* 自己建一个GitHub仓库,但是不满足上述质量水准,是不可以的
|
||||
## 主要任务
|
||||
|
||||
课程项目的主要任务是**对一个或多个具有一定质量水准的开源项目,做出自己的贡献**。于此同时,我们安排了三次presentation和一次期末报告,作为我们考核**开源贡献的质量**的重要参考。
|
||||
|
||||
需要注意的是,贡献的项目必须是具有一定质量水准的开源项目(有证据能证明高质量、被很多人使用、贡献者多,等等);自己建一个GitHub仓库,但是不满足上述质量水准,是不可以的。
|
||||
|
||||
由于开源贡献过程的挑战性和不确定性,我们强烈建议在课程学习的过程中,尽早开始,并且对多个开源项目尝试做贡献。不管贡献最终是否被接收,都会纳入最终的考核标准中,还请多多尝试。
|
||||
|
||||
## 检查清单
|
||||
|
||||
本节列出一些完成此课程项目的注意点:
|
||||
|
||||
### 项目选择
|
||||
|
||||
* 是否选择了成熟、活跃的开源项目?
|
||||
* 是否选择了活跃、有关注度的开源项目?
|
||||
* 是否能够配置好项目需要的开发环境?
|
||||
* 是否对这个项目有强烈的兴趣?
|
||||
* 是否对这个项目的相关领域、编程语言、技术栈比较熟悉?
|
||||
|
@ -44,7 +44,7 @@
|
|||
|
||||
### 开题/中期/期末Presentation(每个5分,共15分)
|
||||
|
||||
为了让我们能够跟踪进展和提供反馈,课程会安排三次presentation(开题/中期/期末),每次presentation的内容要求如下(对PPT模板和形式不做要求):
|
||||
为了跟踪进展和提供反馈,课程会安排三次presentation(开题/中期/期末,时间参见[课程大纲](../Syllabus.md)),每次presentation的内容要求如下(对PPT模板和形式不做要求):
|
||||
|
||||
#### 开题Presentation
|
||||
|
||||
|
@ -72,7 +72,7 @@
|
|||
|
||||
### 期末报告(10分)
|
||||
|
||||
在期末presentation结束后,还要求提交一个期末报告,作为整个开源参与过程和思考的一个正式记录,也是我们评分的重要参考之一。
|
||||
在期末presentation结束后,要求提交一个期末报告,作为整个开源参与过程和思考的一个正式记录,也是我们评分的重要参考之一。
|
||||
|
||||
报告要求使用LaTeX撰写,模板参见[Report/](Report/)文件夹,以PDF格式提交,详细要求参见报告模板。
|
||||
|
||||
|
@ -85,6 +85,8 @@
|
|||
|
||||
余下3分将根据报告的表达清晰度、思考深度、认真程度等因素综合评判,会根据优秀率的情况进行适当调整。需要特别注意的是,**报告的长度不会成为评分的标准**,希望大家把功课主要放在做开源贡献本身,及对整个过程的总结和思考上,报告简明扼要,能够表达清楚意思即可。
|
||||
|
||||
请在截止日期之前(具体时间参见今年的[课程大纲](../Syllabus.md)),将期末报告的PDF以邮件形式发送给助教(heh@pku.edu.cn),文件命名统一为`学号-姓名-期末报告.pdf`(例如`2001111320-何昊-期末报告.pdf`)。
|
||||
|
||||
### 贡献质量(15分)
|
||||
|
||||
评分分配:基本分(5分) + 工作量加分(5分) + 难度加分(5分)
|
||||
|
@ -97,9 +99,9 @@
|
|||
- 如果在做出贡献的过程中出现明显违背[GitHub Code of Conduct](https://docs.github.com/en/site-policy/github-terms/github-community-code-of-conduct)的行为,视情况扣分
|
||||
2. 工作量加分(5分)采用积分制,5分封顶:
|
||||
- (代码工作量加分)以下项目中,选择最高的加分项目:
|
||||
* 如果有一个贡献的代码变更行数大于20行,加1分;
|
||||
* 如果有一个贡献的代码变更行数大于100行,加2分;
|
||||
* 如果有一个贡献的代码变更行数大于500行,加3分。
|
||||
* 如果有一个被接收的贡献,代码变更行数大于20行,加1分;
|
||||
* 如果有一个被接收的贡献,代码变更行数大于100行,加2分;
|
||||
* 如果有一个被接收的贡献,代码变更行数大于500行,加3分。
|
||||
* **备注:** 代码变更行数为添加行数和删除行数之和;如果代码变更都是高度重复或没有技术含量的变更(例如,重新格式化代码),助教保留取消这部分加分的权力。
|
||||
- (沟通工作量加分)如果存在一个贡献,经过反复沟通,或者被社区多轮打回修改才最终被接收,加1分;至多有三个贡献可以通过此条规则获得加分(亦即沟通工作量加分最多为3分)
|
||||
- (贡献数量/类型加分)以下项目中,选择最高的加分项目:
|
||||
|
@ -107,5 +109,5 @@
|
|||
* 如果被接收的贡献覆盖了N种不同的贡献类型,加N分(最多通过此条规则加3分)。
|
||||
* **备注:** 贡献类型包括修复Bug、实现新功能、优化性能、重构代码、编写文档、编写测试、协助构建/部署,等等;一般以开源项目的Issue Label为判定标准,对于模糊的情况,助教保留最终判定的权力。
|
||||
- 对于没有最终被社区接收的贡献,在表现出合理的交互、沟通、和努力的前提下,可以按上述标准的60%获得加分。
|
||||
3. 难度加分(5分)将由助教考虑所有学生的情况进行综合评判,如果工作量加分的标准难以衡量实际的工作量和难度(例如向知名、复杂、开发难度高的项目进行贡献等),会适当在给分上予以倾斜,同时整体根据优秀率的情况进行适当调整
|
||||
3. 难度加分(5分)将由助教考虑所有学生的情况进行综合评判,如果工作量加分的标准难以衡量实际的工作量和难度(例如向知名、复杂、开发难度高的项目进行贡献等),会适当在给分上予以倾斜,同时整体根据优秀率的情况进行适当调整。
|
||||
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
* 202:GitHub实践入门 **lecture202**
|
||||
- 了解如何用开源协作工具,熟悉Github/Gitee/GitLink--建立账号和代码仓库,浏览和fork项目
|
||||
|
||||
|
||||
> **Lab 1扩展:练习使用issue、fork和PR**
|
||||
> - 提交一个issue,描述自己的想法(相比较于第一次提交)做出了哪些变化
|
||||
> - 将仓库fork到自己的账号下,对README.md做出相应修改并提出一个PR
|
||||
|
|
Loading…
Reference in New Issue