Files
ios-client/CONTRIBUTING.md
2026-09-15 14:35:52 +08:00

1.2 KiB
Raw Permalink Blame History

贡献指南

架构约束(提交前必须遵守)

  • 依赖单向:App → feature → core,禁止反向 import。
  • Repository 协议只在 CoreDomain,实现在 CoreRepository。
  • DTO 与领域 Model 分离(CoreNetwork / CoreModel)。
  • 禁止命名模块 CoreData(与苹果框架撞名,统一为 CoreRepository)。

代码规范

  • 跨模块符号 public + /// 文档注释。
  • 领域模型标记 Sendable。
  • ViewModel:@MainActor @Observable,UiState 用 enum。
  • 登录态经 SessionRepository 驱动,不要在各页面各自维护登录态副本。
  • 引入任何第三方依赖前,需在 PR 说明必要性(项目默认零第三方框架)。

提交流程

  1. 从 dev 新建分支:feat/xxx、fix/xxx(简化 GitFlow:feature 从 dev 拉、merge 回 dev,dev 稳定后再 merge 到 main)。
  2. 本地跑通:
    swiftlint lint
    xcodebuild -project ios-client.xcodeproj -scheme ios-client \
      -destination 'generic/platform=iOS Simulator' \
      CODE_SIGNING_ALLOWED=NO build
    
  3. 发起 PR,至少一位 reviewer 通过后合并。

Commit 规范

采用 Conventional Commits:feat: / fix: / refactor: / docs: / chore:。