如何参与开发
欢迎提 issue 和 PR。代码边界、CI 流程、发布构建和它们的密钥见 CONTRIBUTING.md(英文)。
本地检查
和 CI 跑的一样:
bash
# server/
uv run --with pytest pytest -q
# web/
pnpm install --frozen-lockfile && pnpm build
for f in *.check.ts; do node --experimental-strip-types "$f" || exit 1; done
# app/(用 pubspec.lock 里记录的 pub 源)
PUB_HOSTED_URL=https://pub.flutter-io.cn flutter pub get --enforce-lockfile
flutter analyze --no-pub && flutter test --no-pub -j 4安卓 JVM 和 Swift 检查见 .github/workflows/app.yml;固件的主机端检查见 .github/workflows/firmware-check.yml。
文档站
文档站在 docs/ 目录,用 VitePress 构建:
bash
cd docs
pnpm install --frozen-lockfile
pnpm docs:dev # 本地预览
pnpm docs:build # 构建到 docs/.vitepress/dist,同时检查死链HTTP API 和 MCP 工具的表格由脚本生成。改了接口后,在仓库根目录重新生成并提交:
bash
uv run --project server python docs/gen-api.py提交说明
- 格式
[type][Area] subject,英文、祈使句,主题行不超过 72 个字符,细节写在正文里。 - type:
feat、fix、chore、ci、perf、doc、test;Area:Server、App、Firmware、Web、CI等,可以叠加([fix][Server][Web])。 - 不写
Co-authored-by。
截图等二进制文件不进 main:先推到 assets 分支(只加不改,命名 img/<名字>-<yyyymmdd>.ext),再用 https://raw.githubusercontent.com/suyiiyii/alldayrec/assets/img/<文件> 引用。