感谢你对 Lunaris 项目的关注!本指南介绍如何为项目贡献代码。
- 访问 Lunaris GitHub 仓库
- 点击右上角的 "Fork" 按钮
- 克隆你的 Fork 到本地
git clone https://github.com/YOUR-USERNAME/Lunaris.git
cd Lunaris# 创建功能分支
git checkout -b feature/my-feature
# 创建修复分支
git checkout -b fix/my-fix- 遵循项目的代码规范
- 编写测试(如适用)
- 更新文档(如适用)
# 添加文件
git add .
# 提交(使用 Conventional Commits 格式)
git commit -m "feat(master): add task cancellation support"
# 推送
git push origin feature/my-feature- 访问你的 Fork 页面
- 点击 "Compare & pull request"
- 填写 PR 描述
- 提交 PR
- 类型注解:公共 API 必须提供类型注解
- 命名:snake_case(函数/变量),PascalCase(类)
- 导入:优先使用绝对路径
# 好的示例
from lunaris.client import LunarisClient
from lunaris.runtime import ExecutionLimits
def submit_task(
wasm_module: bytes,
args: List[Any],
entry: str = "wmain",
priority: int = 0,
) -> str:
"""提交 WASM 任务"""
...- 格式化:提交前运行
cargo fmt - 版本:Cargo.toml 中
edition = "2021" - 内存:使用
mimalloc全局分配器
// 好的示例
#[global_allocator]
static ALLOC: mimalloc::MiMalloc = mimalloc::MiMalloc;
pub async fn run(&self, task: Task) -> Result<TaskResult> {
// 获取信号量许可
let _permit = self.semaphore.acquire().await?;
// 执行任务
tokio::task::spawn_blocking(move || {
run_wasm(&task.wasm_module, ...)
}).await?
}使用 Conventional Commits 格式:
<type>(<scope>): <description>
[optional body]
[optional footer]
类型:
feat: 新功能fix: 修复docs: 文档style: 格式refactor: 重构test: 测试chore: 构建/工具
范围:
master: 主节点worker: Python 工作节点rust-worker: Rust 工作节点client: SDKcli: CLIproto: 协议
示例:
feat(master): add task cancellation API
fix(worker): handle WebSocket disconnection
docs(sdk): update quickstart guide
refactor(runtime): simplify ExecutionLimits
## 变更描述
简要描述你的变更。
## 变更类型
- [ ] 新功能
- [ ] Bug 修复
- [ ] 文档更新
- [ ] 重构
- [ ] 性能优化
## 测试
描述你如何测试这些变更。
## 相关 Issue
关联的 Issue 编号。
## 截图(如适用)
如果有 UI 变更,提供截图。- 所有 PR 需要至少一个审查者批准
- 确保代码符合项目规范
- 确保所有测试通过
- 确保文档已更新
- 硬编码令牌
- 编辑生成的 protobuf
- 随意修改 ExecutionLimits 默认值
- 无服务运行测试
A: 在 lunaris/master/api.py 中添加新的路由。
A: 修改 lunaris/master/manager.py 中的 TaskManager 类。
A: 编辑 proto/*.proto 文件,然后运行 ./proto/build.sh。
A: 使用以下命令:
cd rust-worker
cargo build --release