build: produce both release validator executables

This commit is contained in:
Hermes Agent
2026-09-11 13:37:55 +00:00
parent 856c16d25a
commit b86d962af7
3 changed files with 6 additions and 2 deletions
+4 -1
View File
@@ -2,11 +2,14 @@ CC = gcc
CFLAGS = -std=c99 -O0
LDFLAGS = -lm
all: claro
all: claro claro.exe
claro: src/claro.c
$(CC) $(CFLAGS) -o claro src/claro.c $(LDFLAGS)
claro.exe: src/claro.c
$(CC) $(CFLAGS) -o claro.exe src/claro.c $(LDFLAGS)
test: claro
./claro test
+1 -1
View File
@@ -29,7 +29,7 @@ python3 tools/validate_package_security.py
python3 tools/validate_ci_workflow.py
```
The CI workflow validator also requires its own command to remain in an executable `run` step, so the release-gate check cannot silently disappear from CI.
The CI workflow validator also requires its own command to remain in an executable `run` step, so the release-gate check cannot silently disappear from CI. `make` builds both `claro` and `claro.exe`, allowing the version validator to exercise the same source build on every platform.
## Beginner-first syntax
+1
View File
@@ -102,6 +102,7 @@ Ready now:
- `claro package add/list/remove/doctor/lock`
- local project files such as `claro.project`, `claro.lock`, and `packages/`
- starter projects from `claro new` now use the same manifest-version and lock-version headers as `claro package init`
- the default `make` target builds both `claro` and `claro.exe`, so cross-platform release validators exercise freshly built executables
- project-name safety checks for `claro new`, so unsafe names such as `../bad` are rejected before Claro creates folders
- package-name safety checks when adding packages, including the 64-character package-name limit, when `claro package doctor` audits an existing `claro.project`, when `claro package lock` writes lockfile data, when `claro package list` shows existing packages, when `claro package init` sees unsafe names already present in `claro.project`, when `claro package add` sees unsafe names already present in `claro.project`, when `claro package remove` refreshes the lockfile after an edit, when learners need to remove an unsafe package entry that is already present, when `claro package doctor` verifies lockfile checksums for listed packages, and when `claro package doctor` rejects lockfile package entries that are not listed in `claro.project`
- `claro package doctor` rejects a listed package manifest whose `name:` does not match the package name in `claro.project`