Files
Starlight_Lancher_animation_up/CONTRIBUTING.md

3.5 KiB
Raw Blame History

贡献指南 (Contributing)

感谢你对 Starlight Launcher 及其相关内容感兴趣!在提交代码前,请先阅读以下指南。

我们希望所有参与者都能在友善、包容的环境中协作。请先阅读行为准则 (CODE_OF_CONDUCT.md),了解社区期望和问题报告方式。

本地开发

环境要求

启动开发环境

  1. 初始化 Git 子模块cubiomes 是构建期的编译依赖,缺失会导致 Rust 编译失败),启用 Corepack 并安装依赖:
    git submodule update --init --recursive
    corepack enable
    pnpm install --frozen-lockfile
    
  2. 启动开发服务器:
    pnpm app:dev
    

常用检查命令

在提交代码前,建议运行以下命令确保代码符合规范:

# 品牌名和文本合规检查
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 缓存。

如需释放本地开发缓存,可以删除以下目录:

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 自动完成。版本号以 Git 标签为准,必须符合语义化版本格式

打标签并推送到远端即可触发发布工作流:

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 中,切勿提交到仓库。