- Conventional Commits, enforced by commitlint (
@commitlint/config-conventional) via thecommit-msghook. - Types:
feat,fix,chore,docs,ci,refactor,test, etc. Scopes are used where helpful (e.g.feat(mfa): …). - The
CHANGELOG.mdis generated from commit history byrelease-it(@release-it/conventional-changelog, angular preset) — do not hand-edit it.
- PRs target
master. - CI (
.github/workflows/main.yml) runsyarn test:cion every PR; SCA scanning runs viasca_scan.yml. Both must pass. - Follow
.github/PULL_REQUEST_TEMPLATE.mdif present; keep PRs scoped and describe platform impact (iOS / Android / web).
Releases are cut with release-it (yarn release), not by an agent editing files:
- Bump
versioninpackage.json(podspec and telemetry version derive from it). .versionis kept in sync (tracked in.shiprc).release-itgenerates the changelog, tagsv${version}, publishes to npm, and creates the GitHub release.
Version source of truth: package.json. Keep .version in step with it; the podspec s.version and src/core/utils/telemetry.ts version are injected automatically at build/prebuild time.