Files
Starlight_Lancher/CONTRIBUTING.md
Ap_Tx 59d15108d6
Some checks failed
Axolotl desktop CI / guardrails (push) Has been cancelled
Axolotl desktop CI / desktop (macos-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (ubuntu-latest) (push) Has been cancelled
Axolotl desktop CI / desktop (windows-latest) (push) Has been cancelled
Axolotl desktop CI / website (push) Has been cancelled
Repository checks / typos (push) Has been cancelled
Repository checks / tombi (push) Has been cancelled
Rust checks / shear (push) Has been cancelled
Sync source to CNB / Sync Git ref (push) Has been cancelled
Deploy telemetry dashboard / deploy (push) Has been cancelled
Sync LobeHub models / sync (push) Has been cancelled
fix:修改了各种md里的描述
2026-09-13 10:51:00 +08:00

94 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 贡献指南 (Contributing)
感谢你对 Starlight Launcher 及其相关内容感兴趣!在提交代码前,请先阅读以下指南。
我们希望所有参与者都能在友善、包容的环境中协作。请先阅读[行为准则 (CODE_OF_CONDUCT.md)](CODE_OF_CONDUCT.md),了解社区期望和问题报告方式。
## 本地开发
### 环境要求
- **Node.js**:以 [`.nvmrc`](.nvmrc) 为准
- **pnpm**:以根目录 [`package.json`](package.json) 的 `packageManager` 为准
- **Rust**:以 [`rust-toolchain.toml`](rust-toolchain.toml) 为准
- [Tauri v2 系统依赖](https://v2.tauri.app/start/prerequisites/)
### 启动开发环境
1. 初始化 Git 子模块cubiomes 是构建期的编译依赖,缺失会导致 Rust 编译失败),启用 Corepack 并安装依赖:
```powershell
git submodule update --init --recursive
corepack enable
pnpm install --frozen-lockfile
```
2. 启动开发服务器:
```powershell
pnpm app:dev
```
### 常用检查命令
在提交代码前,建议运行以下命令确保代码符合规范:
```powershell
# 品牌名和文本合规检查
pnpm axolotl:brand-guard
# 国际化词条检查
pnpm axolotl:i18n-check
# 前端格式化及 lint
pnpm prepr:frontend:app
# Rust 格式化检查
cargo fmt --all --check
# Rust 基础检查
cargo check --package theseus_gui --features updater
```
### 构建缓存与磁盘空间
Rust 编译产物位于 `target` 目录,首次完整构建可能占用数 GB 空间。Turbo 仅缓存前端输出,不会缓存 `target/**`。桌面应用的 Tauri 构建任务已明确关闭 Turbo 缓存。
如需释放本地开发缓存,可以删除以下目录:
```powershell
Remove-Item -Recurse -Force .turbo\cache
Remove-Item -Recurse -Force target\debug
```
此操作不会删除 `target\installer-test` 中单独生成的安装包。下次启动开发模式时需要重新编译 Rust 依赖。
## 仓库范围
Starlight 的产品改动主要位于:
- `apps/app-frontend`
- `apps/app`
- `packages/app-lib`
- 上述包所需的共享 UI 与资源包
本仓库**不包含** Modrinth 网站、Labrinth API 或其运营服务源码。桌面端保留对 Modrinth 公共 API 的客户端兼容;如果需要参考上游实现,请仅手动挑选与 Starlight 产品相关的改动,避免直接合并无关代码。
## 发布新版本
发布流程由 [`.github/workflows/axolotl-release.yml`](.github/workflows/axolotl-release.yml) 自动完成。版本号以 Git 标签为准,必须符合[语义化版本格式](https://semver.org/lang/zh-CN/)。
打标签并推送到远端即可触发发布工作流:
```powershell
git tag -a v1.2.3 -m "Starlight Launcher 1.2.3"
git push origin v1.2.3
```
预发布版本请使用带后缀的标签(如 `v1.2.3-beta.1`)。
**自动发布工作流执行步骤**
1. 将标签版本写入桌面应用构建配置。
2. 在 GitHub 托管的 Windows、macOS 和 Linux runner 上并行构建安装包。
3. 使用仓库 Secrets 中的 Tauri 私钥生成签名更新包。
4. 生成并校验包含全部桌面平台的 `latest.json`。
5. 校验成功后将草稿 Release 转为正式发布。
6. GitHub Release 发布完成后,将安装包、更新清单和 Release 信息镜像到 CNB。
源码分支和标签也由 GitHub Actions 在 push 和删除事件后直接同步到 CNB。CNB 仓库不运行定时同步或标签流水线,避免在 GitHub 构建尚未完成时占用 CNB 构建时长。
> 注意:自动更新公钥已固化在客户端中,私钥只保存在 GitHub Actions Secrets 中,切勿提交到仓库。