v0.6.0 — blueprint is a generator, not a source of truth (BREAKING)
Reframes the blueprint as a generator, not a source of truth. gofastr generate now scaffolds owned Go in an idiomatic, module-root layout you read, edit, and commit — no quarantined gen/ directory and no // Code generated … DO NOT EDIT. header. Re-running the generator is add-only and never clobbers your edits.
BREAKING
-
gofastr generatescaffolds into the module root, notgen/. A blueprint scaffoldsmain.go+entities/+blueprint/at the module root, as owned Go with no generated header. Writes are conflict-skip: a re-run adds new files but never overwrites hand-edited code —--forceto overwrite. The blueprint is an on-ramp; once scaffolded the generated Go is the source of truth and the running app doesn't need thegofastr.yml.- Migration: pass
--out=gen(orapp.output_dir: gen) to keep the old layout; build/run withgo run .instead ofgo run ./gen.examples/ecommercescaffolds into an ownedapp/subpackage.
- Migration: pass
-
gofastr migrate diffremoved. It applied a blueprint directly onto a live database, treating the blueprint as authoritative over the running schema. Code generation and schema migration are separate concerns.- Migration: use
gofastr migrate generate <name>to emit a reviewable, versioned migration, thengofastr migrate up; additive columns also converge on boot viaAutoMigrate.migrate generatestill accepts--from=<blueprint.yml>as an opt-in schema source.
- Migration: use
Full notes: see CHANGELOG.md. Pin a version (go get …@v0.6.0).