Compare commits

...

15 Commits

Author SHA1 Message Date
minghuizhou 40223d8eb8
Merge pull request #12 from jzhang533/course_offering_by_paddlepaddle
added link to course offered by paddlepaddle community
2023-11-23 11:25:53 +08:00
minghuizhou c66b1cd3ad
Add files via upload 2023-11-23 11:24:05 +08:00
Zhang Jun f6e5414d84 added link to course offered by paddlepaddle community 2023-11-22 16:32:03 +08:00
ufh1tx4asd dd03730af1 update lab 2023-11-20 21:29:42 +08:00
ghq17 c9231013df
Update Syllabus.md 2023-11-20 21:18:33 +08:00
minghuizhou d4449f9515
Update Syllabus.md 2023-11-16 18:34:19 +08:00
minghuizhou e650bcb36c
Add files via upload 2023-11-15 16:12:16 +08:00
minghuizhou fbb62de8b8
Add files via upload 2023-11-15 16:11:03 +08:00
minghuizhou 1b1351e45d
Add files via upload 2023-11-15 16:09:36 +08:00
minghuizhou ddd9063c01
Add files via upload 2023-11-15 16:08:14 +08:00
minghuizhou 06aa4b28d2
Add files via upload 2023-11-15 16:01:19 +08:00
minghuizhou d0cced1298
Delete Slides/lecture101-intro2OSS.pdf (uploaded the wrong file) 2023-11-15 15:59:40 +08:00
minghuizhou 38349b8ea9
Add files via upload 2023-11-15 15:57:09 +08:00
minghuizhou 32d714eb17
Create readme.txt 2023-11-15 15:55:54 +08:00
minghuizhou ba1c71cedc
Delete Slides directory from last year 2023-11-15 15:51:59 +08:00
23 changed files with 57 additions and 234 deletions

View File

@ -1,6 +1,6 @@
# Lab 3在开源项目中选择开发任务8分 # Lab 3在开源项目中选择开发任务8分
**截止日期2022.10.19 11:59am** **截止日期2023.11.02 11:59am**
## 实践目的 ## 实践目的
@ -30,7 +30,7 @@
## 提交方式 ## 提交方式
请在截止日期之前将此markdown文件请检查前面的问题是不是已经都回答了发送到助教邮箱heh@pku.edu.cn文件命名统一为`学号-姓名-Lab3.md`(例如`2001111320-何昊-Lab3.md`)。 请在截止日期之前将此markdown文件请检查前面的问题是不是已经都回答了发送到助教邮箱ghq@stu.pku.edu.cn文件命名统一为`学号(十六进制)-姓名-Lab3.md`(例如`7735c439-张三-Lab3.md`)。
## 评分标准 ## 评分标准

View File

@ -1,6 +1,6 @@
# Lab 4CI/CD流水线搭建10分 # Lab 4CI/CD流水线搭建10分
**截止日期2022.11.02 11:59am** **截止日期2023.11.16 11:59am**
## 实践目的 ## 实践目的
@ -14,13 +14,13 @@
* `pygraph.py`实现图数据结构,包含一个类和一些简单函数,均未实现,且结构混乱。 * `pygraph.py`实现图数据结构,包含一个类和一些简单函数,均未实现,且结构混乱。
* `pyproject.toml`是Poetry使用的依赖配置文件文件中声明了本项目支持的Python版本**仅支持Python 3.10**)以及本Lab中需要的各种开发依赖。 * `pyproject.toml`是Poetry使用的依赖配置文件文件中声明了本项目支持的Python版本**仅支持Python 3.10**)以及本Lab中需要的各种开发依赖。
* `tests/`文件夹包含若干测试。 * `tests/`文件夹包含若干测试。
* `pyproject.toml`是`pytest`的配置文件。 * `pytest.ini`是`pytest`的配置文件。
Lab 4需要为这个项目配置开发环境补全未实现的代码并配置一个包含所有常见阶段的CI/CD流水线。 Lab 4需要为这个项目配置开发环境补全未实现的代码并配置一个包含所有常见阶段的CI/CD流水线。
## 实践流程 ## 实践流程
1. 请在[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中创建一个**私有**GitHub仓库名为`2022Fall-{学号}-Lab4`,为老师和助教添加访问权限,并将[Lab4/](Lab4/)文件夹中的所有文件push到仓库内注意不是push文件夹本身 1. 请在[OSS-Dev-Course-PKU](https://github.com/OSS-Dev-Course-PKU)中创建一个**私有**GitHub仓库名为`2023Fall-{学号(十六进制)}-Lab4`,为老师和助教添加访问权限,并将[Lab4/](Lab4/)文件夹中的所有文件push到仓库内注意不是push文件夹本身
> 不要设置为公开仓库或者为其他同学添加访问权限否则此Lab评分作废若误操作请联系助教删除仓库 > 不要设置为公开仓库或者为其他同学添加访问权限否则此Lab评分作废若误操作请联系助教删除仓库

View File

@ -1,6 +1,6 @@
# Lab 5Python开源软件包安装/管理/打包/上载10分 # Lab 5Python开源软件包安装/管理/打包/上载10分
**截止日期2022.11.23 11:59am** **截止日期2023.11.30 11:59am**
## 实践目的 ## 实践目的
@ -12,7 +12,7 @@
## 实践流程 ## 实践流程
1. 在`pyproject.toml`中修改`tool.poetry.name`为`pygraph-{姓名拼音}`(例如,`pygraph-hehao`这将是上传到TestPyPI的包名不能与已有包冲突。 1. 在`pyproject.toml`中修改`tool.poetry.name`为`pygraph-{姓名拼音}`(例如,`pygraph-zhangsan`这将是上传到TestPyPI的包名不能与已有包冲突。
2. 在`pyproject.toml`中配置需要打包的文件为`pygraph.py`,这需要用到[tool.poetry.packages](https://python-poetry.org/docs/pyproject/#packages)选项。 2. 在`pyproject.toml`中配置需要打包的文件为`pygraph.py`,这需要用到[tool.poetry.packages](https://python-poetry.org/docs/pyproject/#packages)选项。
@ -28,7 +28,7 @@
5. 在[TestPyPI](https://test.pypi.org/)注册一个账号,请注意不要在[PyPI](https://pypi.org)上直接注册。 5. 在[TestPyPI](https://test.pypi.org/)注册一个账号,请注意不要在[PyPI](https://pypi.org)上直接注册。
> [TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台主要用于学习和测试不影响真正的Python生态。 > [TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台主要用于学习和测试不影响真正的Python生态。TestPyPI要求[Two factor authentication (2FA)验证](https://test.pypi.org/help/#twofa),可以使用[Gauth](https://chromewebstore.google.com/detail/gauth-authenticator/ilgcnhelpchnceeipipijaljkblbcobl?hl=zh-CN&utm_source=ext_sidebar)完成验证。
6. 在`pyproject.toml`中添加[Twine](https://twine.readthedocs.io/en/stable/)作为开发依赖,并使用`poetry install`安装Twine。 6. 在`pyproject.toml`中添加[Twine](https://twine.readthedocs.io/en/stable/)作为开发依赖,并使用`poetry install`安装Twine。
@ -39,13 +39,14 @@
```shell script ```shell script
twine upload --repository testpypi dist/* twine upload --repository testpypi dist/*
``` ```
> 注意PyPi 调整了安全策略,不再允许启用两步验证的账号使用用户名密码来上传项目了,必须使用 API 令牌来进行身份验证。登录 PyPi ,进入账户设置页,点击「添加 API 令牌」按钮创建 API 令牌。然后修改 ~/.pypirc 配置文件, 用户名字段改为__token__ ,密码字段改为刚才创建的令牌,运行上述命令即可完成上传。也可通过-u以及-p传入用户名及密码。
此时就可以在TestPyPI上查看你的软件包了例如[pygraph-hehao](https://test.pypi.org/project/pygraph-hehao/0.1.0/))。
此时就可以在TestPyPI上查看你的软件包了例如[pygraph-zhangsan](https://test.pypi.org/project/pygraph-zhangsan/0.1.0/))。
可以尝试退出poetry shell在一个新的Python环境中运行类似如下命令以安装你的软件包 可以尝试退出poetry shell在一个新的Python环境中运行类似如下命令以安装你的软件包
```shell script ```shell script
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pygraph-hehao pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pygraph-zhangsan
``` ```
这里`--extra-index-url`是为了确保pygraph可以安装从PyPI上来的间接依赖。 这里`--extra-index-url`是为了确保pygraph可以安装从PyPI上来的间接依赖。
@ -53,12 +54,13 @@
然后在Python解释器中可以尝试导入pygraph包类似如下 然后在Python解释器中可以尝试导入pygraph包类似如下
``` ```
PS D:\GitHub\OSSDevelopment> pip install --index-url https://test.pypi.org/simple/ -extra-index-url https://pypi.org/simple/ pygraph-hehao PS D:\GitHub\OSSDevelopment> pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ pygraph-zhangsan
Looking in indexes: https://test.pypi.org/simple/, https://pypi.org/simple/ Looking in indexes: https://test.pypi.org/simple/, https://pypi.org/simple/
Collecting pygraph-hehao Collecting pygraph-zhangsan
Downloading https://test-files.pythonhosted.org/packages/f5/98/4ee92fd154f44ec9c3093b82240a21689893c3227a0965b4784c701f6214/pygraph_hehao-0.1.0-py3-none-any.whl (1.7 kB) Downloading https://test-files.pythonhosted.org/packages/97/fe/0818386b03b062e7d217acbdfc20c5f1bd6cc455c06e07463f5a86da8fc1/pygraph_zhangsan-0.1.0-py3-none-any.whl.metadata (276 bytes)
Installing collected packages: pygraph-hehao Downloading https://test-files.pythonhosted.org/packages/97/fe/0818386b03b062e7d217acbdfc20c5f1bd6cc455c06e07463f5a86da8fc1/pygraph_zhangsan-0.1.0-py3-none-any.whl (1.8 kB)
Successfully installed pygraph-hehao-0.1.0 Installing collected packages: pygraph-zhangsan
Successfully installed pygraph-zhangsan-0.1.0
PS D:\GitHub\OSSDevelopment> python PS D:\GitHub\OSSDevelopment> python
Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32 Python 3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information. Type "help", "copyright", "credits" or "license" for more information.
@ -70,11 +72,11 @@
但是像这样在本地手动发布Python包对于团队协作开发的开源项目而言不是最佳实践。比较好的做法是在GitHub上配置CD流水线在master分支上达成特定条件例如使用tag标记的版本自动发布到PyPI。接下来的操作将会达成这一点。 但是像这样在本地手动发布Python包对于团队协作开发的开源项目而言不是最佳实践。比较好的做法是在GitHub上配置CD流水线在master分支上达成特定条件例如使用tag标记的版本自动发布到PyPI。接下来的操作将会达成这一点。
8. 借助[networkx](https://networkx.org/documentation/stable/index.html)(可以使用[`poetry add`](https://python-poetry.org/docs/cli/#add)命令添加新依赖为pygraph实现计算最短路径的功能添加测试样例确保功能正确。在开发完成后,将`pyproject.toml`中的版本号修改为`0.2.0`。 8. 借助[networkx](https://networkx.org/documentation/stable/index.html)(可以使用[`poetry add`](https://python-poetry.org/docs/cli/#add)命令添加新依赖为pygraph实现计算最短路径的功能通过测试。在开发完成后,将`pyproject.toml`中的版本号修改为`0.2.0`。
> 也许这里封装networkx显得很蠢不过在实际编程中由于图数据结构无处不在常常蕴含在其他复杂结构化数据里经常会有将当前的数据转换格式并应用已有图算法的情况。 > 也许这里封装networkx显得很蠢不过在实际编程中由于图数据结构无处不在常常蕴含在其他复杂结构化数据里经常会有将当前的数据转换格式并应用已有图算法的情况。
9. 你的GitHub仓库内[配置PyPI账户名和密码为Secret](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)。 9. 你的GitHub仓库内[配置TestPyPI的TOKEN为Secret](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)。
10. 添加一个新的GitHub Action流水线使得若你的仓库[在GitHub上创建了一个新release](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release)流水线将会构建、测试、打包pygraph并发布到TestPyPI。 10. 添加一个新的GitHub Action流水线使得若你的仓库[在GitHub上创建了一个新release](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release)流水线将会构建、测试、打包pygraph并发布到TestPyPI。
@ -87,7 +89,7 @@
## 评分标准 ## 评分标准
- 3分TestPyPI上有通过步骤1-7发布的Python包。 - 3分TestPyPI上有通过步骤1-7发布的Python包。
- 3分pygraoh实现了计算最短路径的功能并包含可通过的测试样例。 - 3分pygraph实现了计算最短路径的功能并包含可通过的测试样例。
- 4分配置了能够自动发布Python包的GitHub Action流水线。 - 4分配置了能够自动发布Python包的GitHub Action流水线。
## 提交方式 ## 提交方式

View File

@ -1,3 +0,0 @@
# Slides // 课程课件
本文件夹将随着课程进展发布相应课件,往届课件请参考[GitHub Releases](https://github.com/osslab-pku/OSSDevelopment/releases)

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.

1
Slides/readme.txt Normal file
View File

@ -0,0 +1 @@
This directory provides slides related to this course (2023).

View File

@ -1,161 +0,0 @@
# 2022年秋冬学期——课程大纲 (subject to change)
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
授课教师:周明辉 zhmh@pku.edu.cn
助教: 何昊 heh@pku.edu.cn
## 第1次课开源软件及其开发概述课堂lecture
* 100课程简介课程的目的和内容以及课程的考核形式。 **lecture100**
* 101开源软件概述开源的定义、历史和现状、社区结构和治理以及开源研究。 **lecture101**
课堂练习:
* 课堂上访问github/gitee/gitlink设立平台账号了解一个开源项目。
* 阅读并了解Lab1。
> **Lab 1练习使用git和GitHub7分**
> - 注册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
* 201Git实践入门 **lecture201**
- 了解版本控制了解使用Githttps://missing.csail.mit.edu/2020/version-control/
* 202GitHub实践入门 **lecture202**
- 了解如何用开源协作工具熟悉Github/Gitee/GitLink--建立账号和代码仓库浏览和fork项目
> **Lab 1扩展练习使用issue、fork和PR**
> - 提交一个issue描述自己的想法相比较于第一次提交做出了哪些变化
> - 将仓库fork到自己的账号下对README.md做出相应修改并提出一个PR
>
> Lab 1详细要求参见[WriteUp](Assignments/Lab1.md)**截止日期2022.09.28 11:59am**
## 第3次课开源贡献指南课堂lecture 09/21
* 301开源参与概述怎么参与开源项目和社区。 **lecture301**
* 301开源贡献指南 **lecture302**
- learn how the open source community works;
- criteria to select open source project and task to participate in.
* 303: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感) **lecture303**
> **Lab 2了解开源项目的开发方式和贡献流程7分**
>
> 任意选择一个活跃、成熟的开源项目:
> - 了解并报告CONTRIBUTING.md的形式和内容
> - 回答有关其贡献流程、质量管理方式等若干问题
>
> Lab 2详细要求参见[WriteUp](Assignments/Lab2.md)**截止日期2022.10.05 11:59am**
## 第4次课开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 09/28
* 开源项目的分享:项目介绍、技术介绍、项目常用规则、如何参与。 (三位讲者,不同背景)
## 第5次课开源开发的思想和原则开源任务的实践和经验。课堂lecture 10/05
* 501从经典软工到开源开发 **lecture501**
* 502如何选择开源任务参与GitHub Good First Issue **lecture502**
> **Lab 3在开源项目中选择开发任务8分**
>
> - 选择一个或者多个感兴趣的开源项目,探索并报告:
> * 是否具有Good First Issue机制
> * 如果你需要在其中选择开发任务,你会如何做
>
> Lab 3详细要求参见[WriteUp](Assignments/Lab3.md)**截止日期2022.10.19 11:59am**
## 第6次课课程项目开题报告选择开源项目和开源任务 10/12
* 学生报告,
1初始选择了什么开源项目和任务
2对此开源项目及其指南的认识
3贡献计划。
## 第7次课CI/CD上机实习 10/19
> **Lab 4CI/CD流水线搭建10分**
>
> 了解CI/CD流程管理工具GitHub Action知道如何编写简单的CI/CD流水线并且在实践项目上完成符合要求的成功构建
>
> Lab 4详细要求参见[WriteUp](Assignments/Lab4.md)**截止日期2022.11.02 11:59am**
>
> 4Fun: 2021课程实习过程中关于gitee go的建议https://toscode.gitee.com/pitcher/gitee-go-exercise/issues
## 第8次课开源社区及开源文化与开源布道师面对面 (三位讲者,不同背景:企业、自由职业者、开源基金会)
## 第9次课PyPI/NPM等包生态系统/包管理工具,使用/打包/上载软件包(上机实习) 11/2
> **Lab 5Python开源软件包安装/管理/打包/上载10分**
>
> - 使用Poetry进行Python包的安装、管理与打包
> - 利用依赖对Python包实现新功能
> - 将自己的Python包手动发布到TestPyPI
> - 配置自动化的CI/CD流水线实现从GitHub直接发布Python包到TestPyPI注意不是PyPI平台。[TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台使练习时发布的Python包不会影响到真正的生态
>
> Lab 5详细要求参见[WriteUp](Assignments/Lab5.md)**截止日期2022.11.23 11:59am**
## 第10次课课程项目进度报告任务选择/合作反馈/工具使用等 PRJ-2 11/9
## 第11次课开源开发中的沟通实践课堂lecture
* 协作和沟通的重要性如何沟通分布式沟通中的要点如何提交PR等。
> (实际发生在10/26)
> **Lab 6开源项目中的沟通实践8分**
>
> 阅读Linux Kernel沟通实践相关资料体会总结开源沟通的最佳实践。
> or, 选择任何一个开源项目,阅读体会其沟通实践,总结最佳实践。
> 8分
>
> - 提交issue时如何参与讨论如何沟通
> - 提交pr时如何沟通
>
> Lab 6详细要求参见[WriteUp](Assignments/Lab6.md)**截止日期2022.12.07 11:59am**
## 第12次课开源的几个关键问题课堂lecture 11/23
* 开源为什么能成功?
* 开源模式会主宰未来吗?
* 什么是“卡脖子”问题?
## 第13次课开源开发和生态相关的挑战和研究课堂lecture 11/30
* 开源数字社会学(数据驱动的开源研究,研究对象:软件~开发者,软件供应链~个体效率/群体协作/生态持续性)
* 发现型和发明型研究案例
* 第三方库推荐,从三方库迁移的现象理解到智能推荐工具
* 新手任务推荐,从理解新手任务的性质到智能推荐工具
## 第14次课开源商业模式课堂lecture 12/7
* 公司为什么参与开源?
* 开源商业模式有哪些?
* 学生选择案例(特定公司和特定开源项目),说明其开源商业模式。
## 第15次课课程项目结题报告 PRJ-3 12/14
> 最后一次课之后需要提交课程项目最终报告LaTeX格式**截止日期2022.12.28 11:59am**
>
> 课程项目的详细要求参见[WriteUp](Assignments/Project.md)
## 评分标准
* 课堂表现10分
- 上课参与讨论、提问若点名未到且未事先请假一次扣2分最多10分
- 课堂表现优秀者,视情况酌情加分
* 上机实习Lab6个共50分
- Git/贡献指南/GFI/沟通7~8分一个共30分
- CI/CD和包管理10分一个共20分
* 课程项目PRJ40分
- 3次presentation开题/中期/结题每次5分
- 期末报告10分
- 最后的贡献结果15分

View File

@ -1,4 +1,4 @@
Copyright (c) 2022 [minghuizhou@osslab-pku] Copyright (c) 2023 [minghuizhou@osslab-pku]
[OSSDevelopment-course/开源软件开发&技术课程] is licensed under Mulan PSL v2. [OSSDevelopment-course/开源软件开发&技术课程] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2. You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at: You may obtain a copy of Mulan PSL v2 at:
@ -12,17 +12,17 @@ See the Mulan PSL v2 for more details.
**主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ** **主要内容: 开源开发方法、技术和实践OSP + 开源文化OSC + 上机实习lab + 课程项目PRJ**
授课教师:周明辉 zhmh@pku.edu.cn 授课教师:周明辉
助教: 谷海桥 ghq@stu.pku.edu.cn 助教: 谷海桥
## 第1次课开源软件及其开发概述课堂lecture 09/13 ## 第1次课开源软件及其开发概述课堂lecture 09/13
* 100课程简介课程的目的和内容以及课程的考核形式。 **lecture100** * 100课程简介课程的目的和内容以及课程的考核形式。 **lecture100**
* 101开源软件概述开源的定义、历史和现状、社区结构和治理以及开源研究。 **lecture101** * 101开源软件概述开源的定义、历史和现状、社区结构和治理以及开源研究。 **lecture101**
* 102往年贡献: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感) * 102往年贡献: 以特定GitHub项目/任务为例,展示如何做贡献;以及讲述往年同学的贡献历程和体会。(消除畏惧感)
## 第2次课开源开发的支持平台和关键技术熟悉开源平台和Git操作课堂lecture 09/14 ## 第2次课开源开发的支持平台和关键技术熟悉开源平台和Git操作课堂lecture 09/20
* 201Git实践入门 **lecture201** * 201Git实践入门 **lecture201**
- 了解版本控制了解使用Githttps://missing.csail.mit.edu/2020/version-control/ - 了解版本控制了解使用Githttps://missing.csail.mit.edu/2020/version-control/
@ -30,7 +30,6 @@ See the Mulan PSL v2 for more details.
- 了解如何用开源协作工具熟悉Github/Gitee/GitLink--建立账号和代码仓库浏览和fork项目 - 了解如何用开源协作工具熟悉Github/Gitee/GitLink--建立账号和代码仓库浏览和fork项目
课堂练习: 课堂练习:
* 课堂上访问github设立平台账号了解一个开源项目。
* 阅读并了解Lab1。 * 阅读并了解Lab1。
> **Lab 1练习使用git和GitHub7分两周** > **Lab 1练习使用git和GitHub7分两周**
@ -38,23 +37,19 @@ See the Mulan PSL v2 for more details.
> - 加入课程的[Organization](https://github.com/OSS-Dev-Course-PKU) > - 加入课程的[Organization](https://github.com/OSS-Dev-Course-PKU)
> - 创建GitHub仓库并添加commit于README.md写下目前的开源项目贡献想法 > - 创建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)**截止日期2023.10.05 11:59am** > Lab 1详细要求参见[WriteUp](Assignments/Lab1.md)**截止日期2023.10.05 11:59am**
## 第3次课开源贡献指南课堂lecture 09/27 ## 第3次课开源贡献指南课堂lecture 09/27
* 301开源参与概述怎么参与开源项目和社区。 **lecture301** * 301开源贡献指南 **lecture301**
* 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开源课程评分依据 **lecture303** * 302开源课程评分依据 **lecture302**
> **Lab 2了解开源项目的开发方式和贡献流程7分两周** > **Lab 2了解开源项目的开发方式和贡献流程7分两周**
> >
@ -64,51 +59,43 @@ See the Mulan PSL v2 for more details.
> >
> Lab 2详细要求参见[WriteUp](Assignments/Lab2.md)**截止日期2023.10.12 11:59am** > Lab 2详细要求参见[WriteUp](Assignments/Lab2.md)**截止日期2023.10.12 11:59am**
## 第4次课开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 09/28 ## 第4次课开源项目maintainer分享其维护/开发的经验。(多个项目,开拓视野&为开源任务选择做准备) 10/11
* 开源项目的分享:项目介绍、技术介绍、项目常用规则、如何参与。 * 开源项目的分享:项目介绍、技术介绍、项目常用规则、如何参与。
* 飞桨开源社区分享的介绍请看这里内含课程的ppt在线浏览[飞桨开源社区走进北京大学课堂](https://pfcc.blog/posts/pku-course)。
* 张军(百度飞桨):飞桨开源社区及开源贡献介绍
* 林俊旸(阿里巴巴达摩院智能计算实验室):多模态大模型开源介绍,以及达摩院一站式开源模型服务平台介绍
* 齐宝玮(华为鸿蒙):开源鸿蒙开发者社区运营经验分享
## 第5次课开源开发的思想和原则开源任务的实践和经验。课堂lecture 10/05
* 501从经典软工到开源开发 **lecture501**
* 502如何选择开源任务参与GitHub Good First Issue **lecture502**
## 第5次课开源任务的选择。课堂lecture 10/18
* 501如何选择开源任务参与GitHub Good First Issue **lecture501**
> **Lab 3在开源项目中选择开发任务8分两周** > **Lab 3在开源项目中选择开发任务8分两周**
> >
> - 选择一个或者多个感兴趣的开源项目,探索并报告: > - 选择一个或者多个感兴趣的开源项目,探索并报告:
> * 是否具有Good First Issue机制 > * 是否具有Good First Issue机制
> * 如果你需要在其中选择开发任务,你会如何做 > * 如果你需要在其中选择开发任务,你会如何做
> >
> Lab 3详细要求参见[WriteUp](Assignments/Lab3.md)**截止日期2022.10.19 11:59am** > Lab 3详细要求参见[WriteUp](Assignments/Lab3.md)**截止日期2022.11.02 11:59am**
## 第6次课课程项目开题报告选择开源项目和开源任务 10/12
## 第6次课课程项目开题报告选择开源项目和开源任务 10/25
* 学生报告, * 学生报告,
1初始选择了什么开源项目和任务 1初始选择了什么开源项目和任务
2对此开源项目及其指南的认识 2对此开源项目及其指南的认识
3贡献计划。 3贡献计划。
## 第7次课CI/CD上机实习 10/19 ## 第7次课CI/CD上机实习 11/01
> **Lab 4CI/CD流水线搭建10分两周** > **Lab 4CI/CD流水线搭建10分两周**
> >
> 了解CI/CD流程管理工具GitHub Action知道如何编写简单的CI/CD流水线并且在实践项目上完成符合要求的成功构建 > 了解CI/CD流程管理工具GitHub Action知道如何编写简单的CI/CD流水线并且在实践项目上完成符合要求的成功构建
> >
> Lab 4详细要求参见[WriteUp](Assignments/Lab4.md)**截止日期2022.11.02 11:59am** > Lab 4详细要求参见[WriteUp](Assignments/Lab4.md)**截止日期2023.11.16 11:59am**
> >
> 4Fun: 2021课程实习过程中关于gitee go的建议https://toscode.gitee.com/pitcher/gitee-go-exercise/issues > 4Fun: 2021课程实习过程中关于gitee go的建议https://toscode.gitee.com/pitcher/gitee-go-exercise/issues
## 第8次课开源社区及开源文化与开源布道师面对面
* 陈绪:漫谈云计算和开源社区
* 李建盛:多重维度下的开源之史
* 朱其罡:开放原子基金会及其开源项目简介
> (实际发生在11/16)
## 第9次课PyPI/NPM等包生态系统/包管理工具,使用/打包/上载软件包(上机实习) 11/2 ## 第8次课从经典软工到开源开发。课堂lecture 11/08
* 501从经典软工到开源开发 **lecture501**
## 第9次课PyPI/NPM等包生态系统/包管理工具,使用/打包/上载软件包(上机实习) 11/15
> **Lab 5Python开源软件包安装/管理/打包/上载10分三周** > **Lab 5Python开源软件包安装/管理/打包/上载10分三周**
> >
@ -117,15 +104,10 @@ See the Mulan PSL v2 for more details.
> - 将自己的Python包手动发布到TestPyPI > - 将自己的Python包手动发布到TestPyPI
> - 配置自动化的CI/CD流水线实现从GitHub直接发布Python包到TestPyPI注意不是PyPI平台。[TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台使练习时发布的Python包不会影响到真正的生态 > - 配置自动化的CI/CD流水线实现从GitHub直接发布Python包到TestPyPI注意不是PyPI平台。[TestPyPI](https://test.pypi.org)是与PyPI分离的Python包发布平台使练习时发布的Python包不会影响到真正的生态
> >
> Lab 5详细要求参见[WriteUp](Assignments/Lab5.md)**截止日期2022.11.23 11:59am** > Lab 5详细要求参见[WriteUp](Assignments/Lab5.md)**截止日期2023.11.30 11:59am**
## 第10次课课程项目进度报告任务选择/合作反馈/工具使用等 PRJ-2 11/9 ## 第10次课开源开发中的沟通实践课堂lecture 11/22
* 601: 协作和沟通的重要性如何沟通分布式沟通中的要点如何提交PR等。**lecture601**
## 第11次课开源开发中的沟通实践课堂lecture
* 协作和沟通的重要性如何沟通分布式沟通中的要点如何提交PR等。
> (实际发生在10/26)
> **Lab 6开源项目中的沟通实践8分两周** > **Lab 6开源项目中的沟通实践8分两周**
> >
@ -136,31 +118,33 @@ See the Mulan PSL v2 for more details.
> - 提交issue时如何参与讨论如何沟通 > - 提交issue时如何参与讨论如何沟通
> - 提交pr时如何沟通 > - 提交pr时如何沟通
> >
> Lab 6详细要求参见[WriteUp](Assignments/Lab6.md)**截止日期2022.12.07 11:59am** > Lab 6详细要求参见[WriteUp](Assignments/Lab6.md)**截止日期2023.12.07 11:59am**
## 第12次课开源的几个关键问题课堂lecture 11/23 ## 第11次课课程项目进度报告任务选择/合作反馈/工具使用等 PRJ-2 11/29
## 第12次课开源的几个关键问题课堂lecture 12/06
* 开源为什么能成功? * 开源为什么能成功?
* 开源模式会主宰未来吗? * 开源模式会主宰未来吗?
* 什么是“卡脖子”问题? * 什么是“卡脖子”问题?
## 第13次课开源开发和生态相关的挑战和研究课堂lecture 11/30 ## 第13次课开源开发和生态相关的挑战和研究课堂lecture 12/13
* 开源数字社会学(数据驱动的开源研究,研究对象:软件~开发者,软件供应链~个体效率/群体协作/生态持续性) * 开源数字社会学(数据驱动的开源研究,研究对象:软件~开发者,软件供应链~个体效率/群体协作/生态持续性)
* 发现型和发明型研究案例 * 发现型和发明型研究案例
* 何昊:第三方库推荐,从三方库迁移的现象理解到智能推荐工具 * 第三方库推荐,从三方库迁移的现象理解到智能推荐工具
* 肖文鑫:新手任务推荐,从理解新手任务的性质到智能推荐工具 * 新手任务推荐,从理解新手任务的性质到智能推荐工具
## 第14次课开源商业模式课堂lecture 12/7 ## 第14次课开源商业模式课堂lecture 12/20
* 公司为什么参与开源? * 公司为什么参与开源?
* 开源商业模式有哪些? * 开源商业模式有哪些?
* 学生选择案例(特定公司和特定开源项目),说明其开源商业模式。 * 学生选择案例(特定公司和特定开源项目),说明其开源商业模式。
## 第15次课课程项目结题报告 PRJ-3 12/14 ## 第15次课课程项目结题报告 PRJ-3 12/27
> 最后一次课之后需要提交课程项目最终报告LaTeX格式**截止日期2022.12.28 11:59am** > 最后一次课之后需要提交课程项目最终报告LaTeX格式**截止日期2023.12.xxx 11:59am**
> >
> 课程项目的详细要求参见[WriteUp](Assignments/Project.md) > 课程项目的详细要求参见[WriteUp](Assignments/Project.md)