跳到主要内容

贡献指南

本指南将帮助你了解 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:开发分支,包含最新开发代码

开发步骤

  1. Fork 项目:在 GitHub 上 Fork 项目到你的仓库

  2. 克隆项目:将 Fork 后的项目克隆到本地仓库

git clone https://github.com/你的用户名/ElenixOS.git
  1. 切换分支:切换到 dev 分支
git checkout dev
  1. 编写代码:实现功能或修复 bug

  2. 测试代码:确保代码能够正常编译和运行

  3. 提交代码:提交代码到本地仓库

git add .
git commit -m "feat: New feature"
  1. 推送分支:将分支推送到远程仓库
git push origin dev
  1. 创建 Pull Request:在 GitHub 上创建 Pull Request,描述功能或修复的内容

贡献流程

贡献方式

  1. 报告问题:在 GitHub Issues 中报告 bug 或提出功能请求
  2. 提交代码:通过 Pull Request 提交代码
  3. 改进文档:改进项目文档
  4. 测试:测试代码并提供反馈

代码审查

所有提交的代码都需要经过代码审查,确保代码质量和一致性。代码审查的重点包括:

  • 代码风格是否符合规范
  • 功能是否正确实现
  • 代码是否安全
  • 性能是否合理
  • 文档是否完整

提交规范

提交消息应遵循以下格式:

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 开发社区,为项目贡献你的力量!