About Contribution - Raibows/NCEPU-CS-COURSES GitHub Wiki
如何贡献您的项目?
首先非常欢迎您贡献的代码,欢迎您为此项目添砖加瓦!为了项目的可维护性,请您务必阅读及悉知以下建议
了解项目结构与文件组织
|-- Compiler
| |-- CS
| | |-- CLangCompiler
| | `-- LLangCompiler
|-- ComputerOrganization
| |-- ALUexp
| |-- CUexp-1
| |-- CUexp-2
| `-- RAMexp
|-- Cryptography
|-- CyberSecurityExp
| `-- ChatViaOneTimePad
|-- DataStructure
| |-- CS
| `-- IS
|-- DatabaseExp
| |-- CS
| `-- IS
|-- HardwareDesign&Practice
| `-- MIPS16-CPU
如上树形例子所示,项目结构是由课程/实验名称作为1级单元组成的,如ComputerOrganization
, Cryptography
等。在1级单元下,可以有2种组织形式(2级单元)
- 此课程/实验是通用的,或是当前只有一个代码示例,因此无需创建
CS
等专业命名的专业归类文件夹,形如ComputerOrganization
目录下的组织 - 此课程各个专业要求不一样,差别较大,同时有多个不同专业的项目贡献,因此创建专业名称的文件夹进行归类。
CS
为计算机科学与技术,SE
为软件工程,IS
为信息安全,NE
为网络工程
在2级单元下,通常用项目名称来作为具体项目的文件夹(3级单元),如Compiler/CS/CLangCompiler
当您尝试添加1级单元时(即首次贡献一个课程/实验),请您同时更新首页的./README.md
以及./README_en.md
确定项目命名以及编码
为了避免编码造成的奇奇怪怪的问题,建议您将所有项目文件命名为英文,且文件内容编码为UTF-8,注意不要加bom。此操作大多数编辑器(如VS Code)或IDE都可完成。
添加一个README
在您的项目(3级单元)下,除了必需的代码外,您最好再附加一个README.md
文件,该文件通常需涵盖以下内容
- 介绍您的项目
- 介绍项目作者
- 使用的方法/步骤
- 该项目使用条款/LICENSE
注意,若您未直接声明LICENSE,将会遵守Apache 2.0 LICENSE.
去除一切非必要文件
为了我们的项目保持较小的体积,强烈建议您了解一下.gitignore
,一些图片、bin二进制文件、虚拟环境等,都不应该出现在您提交的项目中(因为这些都可以从您的代码/说明文件中运行/配置得到,因此这些不是必需的最基本文件),您可以在此处发现常见语言/IDE的.gitignore
模板
不建议贡献的条目
我们非常欢迎您贡献您的项目,但迫于此项目的可维护性,因此我们不建议您贡献以下条目
- 重复的/不规范/低质量/有明显错误的项目
- 资料类项目,如ppt/word文档,这些资料大多是非允许传播的,且不宜在GitHub进行存储
现在,开始贡献
您需要熟悉GitHub的协作方式,建议您了解pull requests相关的知识,以下资料仅作参考