# 贡献指南（中文版）

## OpenSCA项目贡献指南 v1.0

OpenSCA项目是由悬镜安全团队首发的开源的软件成分分析工具。身处紧锣密鼓的研发节奏及开源代码和软件广泛应用的大环境中，面对日益严峻的软件供应链安全问题，我们的愿景是用开源的方式做开源风险治理。欢迎朋友们成为OpenSCA社区的一份子，与我们共同建设OpenSCA项目的未来，探索充满无限可能的开源解决方案。

我们珍视一切形式的贡献，包括但不限于：

- 对已有代码的检查
- 说明文档及部署案例
- 通过社群渠道及Issue板块参与社区讨论
- 提升OpenSCA项目功能的切实努力
- 有益项目长远发展的经验分享、使用指导、专题交流等

为了帮助大家更有效地参与到各个方面的贡献中来，我们拟定了一份贡献指南，并会参照项目的发展情况定期更新完善。这份指南包括以下几个部分：

- 社区行为守则及贡献体系
- 如何提出BUG
- BUG类型划分
- 贡献代码
- 代码规范

### 社区行为守则及贡献体系

OpenSCA社区旨在营造贡献者友好的氛围，开放、包容、尊重他人的环境需要大家共同努力去创造和维持。不恰当的行为将会受到警告甚至惩罚。

#### **行为守则**

OpenSCA社区关心每位社区成员的体验；为了共同营造良好的社区氛围，请您提前阅读我们的[行为守则](https://www.contributor-covenant.org/zh-cn/version/2/0/code_of_conduct/)，并在参与时多多留意。

#### 社区贡献体系

OpenSCA社区尚处于起步阶段，由悬镜安全OpenSCA项目团队管理。随着社区的发展，我们欢迎并期待更多的朋友们为社区做出贡献，成为项目团队的一员，和我们一起维护社区系统的运转。

暂行的贡献体系初步分代码和积分两个部分；**代码方面**，通过PR向我们提交代码并被采纳后即可成为我们的Contributor，将可作为OpenSCA项目的成员参与到进一步的项目功能规划和落实、BUG判定、PR审核和Contributor认证中来。

**积分方面**，除贡献代码之外，积极参与社区的BUG报告、技术讨论、使用分享也可获得积分，积攒的积分可以定期兑换奖品。积分评定和奖品兑换的详细规则可能会随不同的活动时段发生变化。目前的详细规则请参考“播种计划”第一期的设置。

### 如何提出BUG

如果您在部署或使用OpenSCA时发现了BUG，可以在Issue板块提出；如果您对我们已经上传的公开文档中的内容有疑惑，可以直接发送邮件到 [Opensca@anpro-tech.com](mailto:Opensca@anpro-tech.com)，也可通过OpenSCA社区微信公众号、微信群、QQ群等渠道联系我们。

在提出BUG之前，您需要先确认您部署的是OpenSCA的最新版本，然后浏览Issue板块，确认该BUG没有被其他人提出过。以上步骤确认无误后，您可以在Issue板块提出您发现的BUG，等待项目成员或其他社区成员参与讨论或进行处理；也可以提一个PR对它进行修复，然后等待项目成员的审核。

*漏洞问题不适合公开提出或进行讨论，如果您发现了OpenSCA的安全漏洞，请发送相关信息到[Opensca@anpro-tech.com](mailto:Opensca@anpro-tech.com)与我们取得联系。

### BUG类型划分

不同的BUG对用户使用OpenSCA的影响是不同的。根据这种差别，我们暂时把BUG分为以下三类：

**主要BUG**：影响主要功能（Java、PHP等语言的组件解析、漏洞识别）

**一般BUG**：不影响功能，只影响使用体验

**伪BUG**：由于操作或使用非最新版本导致的使用问题

主要BUG需要优先修复，项目成员会积极跟进；如果您有修复方案，也欢迎您提出PR，等待项目成员审核确认。项目成员会通过对某些部分的代码进行微调来处理一般BUG，对于伪BUG，我们也会及时进行回复，帮助您找出您操作中的疏漏，以便您更好地使用OpenSCA。

### 贡献代码

OpenSCA项目需要通过您的代码贡献实现维护、完善和功能拓展；贡献代码的主要形式是提交PR。

您可以为BUG修复和功能提升提出PR，项目成员会对您的PR进行审核。为了提高审核的效率，我们希望您参照项目的代码规范来组织您的PR，每个PR专注一个问题，并尽量提升您代码的可读性，如果能附上一些说明更佳。

**如果是关于BUG修复的PR**，在满足规范的基础上，审核标准将主要关注代码质量；

**如果是关于功能提升的PR**，在满足规范的基础上，审核标准将围绕代码质量、功能创新性、功能实现度和算法潜力这几个方面。

项目成员审核完毕并决定采纳您的代码之后，我们会与您取得联系，并邀请您签署贡献者许可协议（CLA），将您的代码所有权授予OpenSCA项目。

协议签署完毕后，您的代码贡献会成为OpenSCA项目的一部分，您也会成为我们的Contributor，将可以作为项目成员参与进一步的项目功能规划和落实、BUG判定、PR审核和Contributor认证等过程。


---


我们感激每位贡献者对OpenSCA做出的贡献。

再次感谢您对OpenSCA的关注和对我们理念的认可。

贡献指南的英文版本请见 [Contributing Guideline-en v.1.0](./Contributing_Guideline-v1.0.md)。
