chore: 开源项目基础设施全面完善

新增配置文件:
- .editorconfig — 跨编辑器代码风格统一
- .gitattributes — 行尾符 CRLF 规范化
- .prettierrc + .prettierignore — 前端代码格式化
- .markdownlint.json — Markdown 格式规范
- commitlint.config.js — Conventional Commits 强制校验

新增 GitHub 社区文件:
- .github/dependabot.yml — 依赖自动更新 (npm + Cargo + Actions)
- .github/CODEOWNERS — 自动 PR 审查分配
- .github/FUNDING.yml — 开源赞助入口

新增文档:
- ROADMAP.md — v5.1/v5.2/v6.0 路线图
- SUPPORT.md — 帮助与支持指南
- docs/screenshots/ — 截图目录就位

新增 Git Hooks:
- .husky/pre-commit — lint-staged 自动格式化+修复
- .husky/commit-msg — commitlint 校验提交消息

CI 强化 (.github/workflows/ci.yml):
- 新增 Prettier 格式检查步骤
- 新增 cargo fmt --check 步骤
- 新增 Vitest 覆盖率生成 + Codecov 上报

修复:
- index.html 标题 v4.0 → v5.0
- PathEditDialog set-state-in-effect 改用 useRef prevOpen 守卫
- use-app-actions.test.tsx 缺失 @vitest-environment jsdom
- 所有 TS/TSX 文件 Prettier 格式化统一

配置更新:
- vitest.config.ts — v8 覆盖率 + 阈值门禁 (60%/70%)
- package.json — format/format:check/test:coverage/prepare 脚本 + lint-staged
- .gitignore — 新增 coverage/sync-conflict/playwright-report
- README.md — 新增 coverage + platform 徽章 + 截图区域
This commit is contained in:
2026-06-19 19:12:11 +08:00
parent 5c73321ce6
commit 8c0e80d862
55 changed files with 3352 additions and 579 deletions
+20
View File
@@ -0,0 +1,20 @@
# 代码所有者 — 自动分配 PR 审查
# https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
# 全局所有者
* @LHY0125
# Rust 代码
/core/ @LHY0125
/cli/ @LHY0125
/gui/ @LHY0125
/Cargo.toml @LHY0125
/rust-toolchain.toml @LHY0125
# 前端代码
/src/ @LHY0125
/tests/ @LHY0125
/e2e/ @LHY0125
# CI/CD 和配置文件
/.github/ @LHY0125
+5
View File
@@ -0,0 +1,5 @@
# 开源赞助
# 支持 PathEditor 的开发
github: LHY0125
# 如需定制功能或商业授权,请通过 GitHub Issues 联系
+73
View File
@@ -0,0 +1,73 @@
# Dependabot 自动依赖更新配置
# https://docs.github.com/code-security/dependabot/dependabot-version-updates
version: 2
updates:
# npm 前端依赖
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Asia/Shanghai"
versioning-strategy: "auto"
allow:
- dependency-type: "all"
labels:
- "dependencies"
- "javascript"
commit-message:
prefix: "chore(deps)"
prefix-development: "chore(deps-dev)"
open-pull-requests-limit: 5
groups:
react:
patterns:
- "react"
- "react-dom"
- "@types/react"
- "@types/react-dom"
tauri:
patterns:
- "@tauri-apps/*"
testing:
patterns:
- "@testing-library/*"
- "@playwright/test"
- "vitest"
- "jsdom"
eslint:
patterns:
- "eslint"
- "eslint-plugin-*"
- "typescript-eslint"
- "globals"
- "@eslint/js"
# Cargo Rust 依赖
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Asia/Shanghai"
labels:
- "dependencies"
- "rust"
commit-message:
prefix: "chore(deps)"
prefix-development: "chore(deps-dev)"
open-pull-requests-limit: 3
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
labels:
- "dependencies"
- "ci"
commit-message:
prefix: "ci(deps)"
+18 -4
View File
@@ -12,7 +12,7 @@ permissions:
jobs:
frontend:
name: 前端检查 (TypeScript + Lint + Test)
name: 前端检查 (格式 + 类型 + Lint + 测试 + 覆盖率)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -24,21 +24,35 @@ jobs:
- run: npm ci
- name: Prettier 格式检查
run: npx prettier --check "src/**/*.{ts,tsx}" "tests/**/*.{ts,tsx}" "e2e/**/*.ts"
- name: TypeScript 类型检查
run: npx tsc -b --noEmit
- name: ESLint
run: npx eslint src/ tests/
- name: Vitest 测试
run: npm test
- name: Vitest 测试 + 覆盖率
run: npx vitest run --coverage
- name: 上传覆盖率到 Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage/cobertura-coverage.xml
flags: frontend
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
rust:
name: Rust 检查 (Check + Clippy + Test)
name: Rust 检查 (格式 + Check + Clippy + Test)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Cargo Format
run: cargo fmt --check
- name: Cargo Check
run: cargo check