贡献指南
本指南将帮助你了解 ElenixOS 的贡献流程、编码规范和贡献方式,为参与 ElenixOS 开发提供完整的指导。
编码规范
C 语言编码规范
命名约定
- 文件名:使用小写字母和下划线,例如
eos_app.c - 函数名:使用小写字母和下划线,例如
eos_app_install - 变量名:使用小写字母和下划线,例如
app_id - 常量名与宏定义:使用大写字母和下划线,例如
EOS_APP_DIR - 类型名:使用驼峰命名法,例如
script_pkg_t - 静态变量名:使用前下划线+小写字母与下划线,例如
static int _app_count = 0;
代码风格
- 缩进:使用 4 个空格进行缩进
- 括号:左括号与右括号单独一行
- 行长度:每行代码尽量不要过长
- 注释:使用 Doxygen 风格的注释
示例
/**
* @brief 安装应用
* @param eapk_path eapk 安装包路径
* @return eos_result_t 安装结果
*/
eos_result_t eos_app_install(const char *eapk_path)
{
// 函数实现
return EOS_OK;
}
JavaScript 编码规范
命名约定
- 变量名:使用驼峰命名法,例如
appId - 函数名:使用驼峰命名法,例如
installApp - 常量名:使用大写字母和下划线,例如
MAX_APP_COUNT - 对象属性:使用驼峰命名法,例如
appName
代码风格
- 缩进:使用 2 个空格进行缩进
- 括号:左括号和右括号单独一行
- 行长度:每行代码不超过 80 个字符
- 注释:使用 JSDoc 风格的注释
示例
/**
* 安装应用
* @param {string} eapkPath - 应用包路径
* @returns {number} 安装结果
*/
function installApp(eapkPath)
{
// 函数实现
return 0;
}
开发流程
分支管理
ElenixOS 使用 Git 进行版本控制,采用以下分支管理策略:
- main:主分支,包含稳定版本
- dev:开发分支,包含最新开发代码
开发步骤
-
Fork 项目:在 GitHub 上 Fork 项目到你的仓库
-
克隆项目:将 Fork 后的项目克隆到本地仓库
git clone https://github.com/你的用户名/ElenixOS.git
- 切换分支:切换到 dev 分支
git checkout dev
-
编写代码:实现功能或修复 bug
-
测试代码:确保代码能够正常编译和运行
-
提交代码:提交代码到本地仓库
git add .
git commit -m "feat: New feature"
- 推送分支:将分支推送到远程仓库
git push origin dev
- 创建 Pull Request:在 GitHub 上创建 Pull Request,描述功能或修复的内容
贡献流程
贡献方式
- 报告问题:在 GitHub Issues 中报告 bug 或提出功能请求
- 提交代码:通过 Pull Request 提交代码
- 改进文档:改进项目文档
- 测试:测试代码并提供反馈
代码审查
所有提交的代码都需要经过代码审查,确保代码质量和一致性。代码审查的重点包括:
- 代码风格是否符合规范
- 功能是否正确实现
- 代码是否安全
- 性能是否合理
- 文档是否完整
提交规范
提交消息应遵循以下格式:
type(module): subject
body (optional)
其中,type 可以是以下之一:
- feat:新功能
- fix:bug 修复
- docs:文档改进
- style:代码风格调整
- refactor:代码重构
- test:测试代码
- chore:构建或依赖更新
module 是可选的,用于指定提交的模块或组件。
示例:
feat: Add app install feature
Implemented app install feature.
refactor(sni): Refactor sni module
为了国际化,提交消息应使用英文描述。
测试
TODO
文档编写
文档结构
ElenixOS 的文档位于 docs 目录,采用 Markdown 格式编写。
每个文档只应有一个“主语言版本”(例如英文),其他语言的内容作为该文档的翻译版本,以避免多语言之间独立修改而导致内容不一致。
不同语言的文档应尽量保持一致的目录结构。我们建议为对应语言创建匹配的文件,但这并不是强制要求。如果暂时缺少翻译,可以在后续补充(我们后续会继续完善),贡献者无需在提交时同时提供多语言版本。
文档规范
- 使用 Markdown 格式
- 使用清晰的标题层级
- 代码块使用 ``` 标记,并指定语言
- 图表使用 mermaid 语法
- 文档应保持与代码的一致性
社区交流
- GitHub Issues:用于报告问题和提出功能请求
后续步骤
欢迎加入 ElenixOS 开发社区,为项目贡献你的力量!