Contributing
Languages
Generator changes
Work in MvvmAIO.R3.SourceGenerators:
- Open or reference a GitHub issue for substantive work.
- Use
MvvmAIO.R3.SourceGenerators.slnx(not a legacy.slnunless tooling requires it). - Run Nuke
Cibefore opening a PR. - Update Verify snapshots only when output changes intentionally.
Read AGENTS.md in the generator repo for conventions (SyntaxFactory style, .Temp/ scratch, diagnostic IDs).
For ObservableEventsGenerator file layout and pipeline, see ObservableEventsGenerator (contributors) (English) / 简体中文.
Documentation changes
Work in R3.SourceGenerators.Docs:
- English:
docs/ - 简体中文:
docs/zh/
When R3SG diagnostics or user-visible generator behavior changes, update both Diagnostics reference and the relevant generator pages in both locales.
Local preview: npm install then npm run docs:dev (Node.js 22 — use the repository root .nvmrc with nvm).
Documentation release sync
When a new MvvmAIO.R3.SourceGenerators package version is published, sync this site (English and docs/zh/):
| Docs path | Update when |
|---|---|
diagnostics/reference.md | Any R3SG id or message change |
generators/observable-events.md | Event / routed API or codegen behavior |
generators/r3-command.md | [R3Command] or command diagnostics |
getting-started.md | Install or prerequisites |
changelog.md | Each dated release (summary bullets) |
architecture/observable-events-generator.md (+ docs/zh/…) | Generator repo contributor layout for observable events (no consumer API change) |
Authoritative package history: generator CHANGELOG.
Pre-1.0
Breaking changes are still expected before 1.0.0. Document upgrade notes in CHANGELOG and, when consumers are affected, on this site.