菜单

如何贡献

相关源文件

本文档为OSSU计算机科学课程的贡献提供了一份全面指南。它涵盖了不同类型的贡献、所需流程以及对课程进行更改的技术实现细节。

有关课程的常规问题,请参阅FAQ。有关社区支持渠道,请参阅Getting Help。有关课程更改的历史背景,请参阅Version History

贡献框架概述

OSSU贡献系统通过结构化的工作流程运行,区分不同类型的更改,并将其通过适当的审查流程进行处理。

贡献类型分类

来源:CONTRIBUTING.md1-20

GitHub集成工作流程

来源:CONTRIBUTING.md4-6 FAQ.md4-7

非实质性更改

非实质性更改包括不影响课程内容或学习进度的微小更正。这些更改可以直接通过拉取请求提交,无需事先讨论。

合格的更改

更改类型示例审查流程
URL更新课程平台迁移、链接失效直接PR
拼写/语法错别字、格式不一致直接PR
语法错误Markdown格式、链接语法直接PR
微小澄清课程描述、先修课程直接PR

实施流程

  1. 识别问题:定位需要更改的具体文件和行号
  2. 创建拉取请求:使用GitHub的拉取请求系统,如CONTRIBUTING.md4
  3. 定位相关文件:大多数更改会影响README.md 和课程特定的指南文件。
  4. 遵循格式标准:保持现有的markdown结构和链接模式

技术要求

  • 更改不得修改课程进度逻辑
  • 链接必须遵循已建立的课程引用模式
  • Markdown语法必须没有错误地验证

来源:CONTRIBUTING.md3-4

实质性更改

实质性更改会影响课程内容、课程选择或学习进度。这些需要通过GitHub问题进行社区讨论,然后才能实施。

更改类别

来源:CONTRIBUTING.md5-12

验证标准

所有实质性更改都必须证明与课程指南一致

CURRICULAR_GUIDELINES.md合规性

  • 必须涵盖CS2013标准中的必修主题
  • 选修主题不应列为强制性
  • 课程质量必须达到既定标准
  • 应尽量减少重复覆盖

问题模板要求

  1. 问题陈述:课程指南的具体违规之处
  2. 建议解决方案:具体的实施计划
  3. 影响评估:对现有学生和进度的影响
  4. 替代评估:为何建议的解决方案是最佳的

来源:CONTRIBUTING.md7-12 FAQ.md99-100

社区互动

社区参与的贡献可以提升当前和未来学生的学习体验,而无需修改课程内容。

参与类型

活动平台影响技术实现
问题响应GitHub问题帮助解决学生的问题评论线程、表情符号反应
学生指导Discord频道同伴学习支持直接消息、频道参与
队列形成Discord/社区学习小组协调频道创建、活动组织
FAQ贡献FAQ.md知识库扩展向文档提交拉取请求

实施指南

问题响应流程

  • 监控GitHub问题通知
  • 对提案提供建设性反馈
  • 使用表情符号反应进行高效社区信号传递
  • 引用相关文档部分

Discord参与

  • 用入门问题欢迎新学生
  • 分享学习经验和资源
  • 协调队列形成的时间
  • 维护一个受欢迎、支持性的社区文化

来源:CONTRIBUTING.md14-17 FAQ.md4-7

个人定制

学生可以通过fork仓库来为个人学习需求定制课程,从而实现个性化修改而不影响主课程。

Fork实施

自定义选项

  • 等效内容的课程替换
  • 个人时间表的进度调整
  • 集成来自extras/courses.md的附加资源
  • 个人进度跟踪实现

同步策略

  • 定期拉取上游存储库的更新
  • 在单独的分支中维护自定义更改
  • 将有价值的修改贡献回主存储库

来源:CONTRIBUTING.md18-20

技术实现细节

文件结构和修改模式

贡献系统主要运行在这些关键文件上

文件路径更改类型审查流程
README.md主要课程更新需要问题讨论
CONTRIBUTING.md流程修改社区共识
CURRICULAR_GUIDELINES.md学术标准更新广泛审查
CHANGELOG.md版本历史合并后自动更新
FAQ.md知识库更新接受直接PR
extras/courses.md补充资源适度审查

质量保证集成

自动验证

  • Markdown语法验证
  • 内部链接验证
  • 外部课程链接可访问性
  • 存储库结构完整性

手动审查标准

  • 课程指南合规性
  • 教学内容质量
  • 社区共识达成
  • 文档完整性

来源:CONTRIBUTING.md1-20 FAQ.md99-100

版本控制集成

更改通过CHANGELOG.md中记录的语义版本控制进行跟踪。

  • MAJOR:重大的课程结构调整或主题更改
  • MINOR:课程替换或新增
  • PATCH:微小的更正和澄清

每个合并的贡献都会自动使用贡献者署名和更改描述更新更改日志,从而维护课程演变的历程。

来源:CONTRIBUTING.md FAQ.md7