feat(release): SemVer + ludicc --version, changesets, and x release
The project had no versioning discipline: 0 tags, no CHANGELOG, no way for the compiler to report a version. Add a lightweight, native release flow. - Versioning: SemVer, with VERSION as the single source of truth. `ludicc --version` (and `ludic --version`) read it at runtime — so a bump touches one file and never reseeds the compiler. `x version` reports it too. - Changesets: one small Markdown file per user-facing change under changes/ (bump level + type + summary; see changes/README.md). This replaces "remember to edit the changelog" with a mergeable artifact, no Node changeset tool. - `x release [major|minor|patch] [--publish]`: fold the pending changesets into a new CHANGELOG.md section (grouped by type), bump VERSION, commit, and tag vX.Y.Z. The level defaults to the highest changeset bump. `--publish` also pushes and creates the Forgejo release with source + toolchain tarballs; tools/ci/forgejo_release.py is the small stdlib-Python HTTP glue for the release API (a native Http client is issue #6). Seed the initial changesets describing the shipped surface; the first `x release` turns them into the v0.1.0 CHANGELOG. Reseeded for the --version flag; C-free bootstrap fixpoint holds; suites 56 / 29 / 29 on macOS, 51 / 28 (+skips) on Linux CI, bootstrap-cfree byte-identical on both. Part of the repository-cleanup / DX pass (with #32, #34). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
709465cdd8
commit
fed80f2152
15 changed files with 787 additions and 293 deletions
|
|
@ -137,7 +137,10 @@ Ludic-written PNG/DEFLATE decoder — no zlib, no external dependency.
|
|||
The compiler self-hosts to a byte-exact fixpoint and rebuilds from its IR seed
|
||||
with no C compiler; the ECS runtime, windowed + headless 2D rendering, the event
|
||||
bus, the deterministic networking stack, scenes, and save/load are all in place
|
||||
and covered by `bin/x test`.
|
||||
and covered by `bin/x test`. CI gates every push and PR on the build, the test
|
||||
suites, and that C-free fixpoint. The toolchain is versioned with SemVer
|
||||
(`ludicc --version`); releases and the `CHANGELOG.md` are cut from changesets by
|
||||
`x release`.
|
||||
|
||||
Active work and proposals — the standard library, a fuller type system,
|
||||
rendering/animation/lighting extras, input, filesystem/IO, testing, and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue