Bilingual post · Post bilíngue
Jump to: English · Português
English {#english}
Sprint-Driven Roadmap: One Release per Sprint
How do you evolve a Pascal compiler without drowning in scope? CrabPascal uses a simple contract: one sprint, one release, one clear value proposition. The living document is roadmap/sprints-overview — a chronological map from diagnostics (v2.9.9) through parser hardening, RTL namespaces, and beyond.
The convention
1 sprint = 1 version tag = 1 review doc
Each sprint names:
Valor — what Delphi pain point it removes
Agentes — Parser, RTL Surface, Runtime, QA (logical ownership areas)
Aceitação — commands and tests that must pass before tag approval
This beats a vague "v3 someday" roadmap because every merge request can answer: which sprint does this advance?
Example arc: Sprints 1–3
Sprint 1 (v2.9.9) — Real diagnostic spans. check reports line/column, not 1:1 placeholders. Golden tests in tests/check_diagnostics.rs.
Sprint 2 (v2.10.0) — System.* namespaces. Shims under rtl/sys/ so uses System.SysUtils resolves like Delphi:
uses System.SysUtils;
var
S: string;
begin
S := IntToStr(42);
WriteLn(Trim(S));
end.
Sprint 3 (v2.11.0) — System.Classes minimum: streams, TStringList, enough for libraries that depend on Classes.
Each sprint closes with a review markdown (sprint-N-review.md) and a release note (release-v2-XX-0.md).
Later sprints you may have missed
| Sprint | Version | Theme |
|---|---|---|
| 11 | v2.19.0 | Parser hardening (multi-fields, generics dot) |
| 12 | v2.20.0 | Method-based properties |
| 13 | v2.21.0 | Honest codegen for exceptions |
| 14+ | v2.22.0+ | Continued RTL and parity work |
Status table in the overview tracks closed, in-progress, and scheduled sprints — updated as tags ship.
Why sprints fit open source
Contributors do not need the entire compiler in their head. Pick a sprint goal, add a fixture, open a PR. Reviewers check acceptance criteria instead of debating philosophy.
cargo test
crab-pascal check examples/crud/crud.dpr
The PowerShell harness tests/test_exemplos_completo.ps1 remains an environment-level gate for Horse examples.
Drift and honesty
The overview notes version drift between binary, VS Code extension, and docs. Sprints make drift visible: if code ships without review doc, the roadmap lies. We fix the doc or cut the tag.
How to use this as a user
- Read the sprint review for your installed version.
- Check
doc_refsin blog posts — they point to Mintlify paths. - Upgrade when a sprint closes a gap you hit (properties, namespaces, parser).
How to use this as a contributor
- Open
roadmap/sprints-overview.md. - Find the active or next sprint.
- Claim an unchecked bullet; link your PR to that sprint number.
CrabPascal is MIT-licensed at . O roadmap por sprint transforma construção de compilador em sequência de vitórias pequenas e entregáveis — exatamente o que desenvolvedores Delphi precisam para confiar em adoção incremental.
Published on
SOCIAL SHARE CARD GENERATOR