feat: the sourcerer skeleton on the zelnet package #1

Merged
binjovi-bot merged 4 commits from feat/skeleton into trunk 2026-09-14 16:51:54 +00:00
Owner

The repository skeleton that Binjovi can build and release. build.zig links sean/zelnet as a Zig package: build.zig.zon pins the v0.10.18 tarball by URL and content hash, and build.zig passes the same tag into the dependency so zelnet.version reports the linked release. sourcerer --version prints sourcerer v0.1.0 (zelnet v0.10.18) on stdout; --help prints the planned verbs; every unimplemented verb, a missing verb and an unknown argument exit 2.

zig build check is CI parity: zig fmt --check, the unit tests, the --version and --help stdout contracts, the invalid-argument contracts and tests/cli/contract.sh (bash; no host, no credentials). ci/binjovi-package.sh carries the Binjovi package contract for the later packaging release. AGENTS.md, STYLE.md, CHANGELOG.md and docs/ describe the manifest, the workflow, the phases and recovery.

The first Build proves the catalog recipe (binjovi-plans #309) and the in-cluster zelnet package fetch.

https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV

The repository skeleton that Binjovi can build and release. `build.zig` links `sean/zelnet` as a Zig package: `build.zig.zon` pins the v0.10.18 tarball by URL and content hash, and `build.zig` passes the same tag into the dependency so `zelnet.version` reports the linked release. `sourcerer --version` prints `sourcerer v0.1.0 (zelnet v0.10.18)` on stdout; `--help` prints the planned verbs; every unimplemented verb, a missing verb and an unknown argument exit 2. `zig build check` is CI parity: `zig fmt --check`, the unit tests, the `--version` and `--help` stdout contracts, the invalid-argument contracts and `tests/cli/contract.sh` (bash; no host, no credentials). `ci/binjovi-package.sh` carries the Binjovi package contract for the later packaging release. `AGENTS.md`, `STYLE.md`, `CHANGELOG.md` and `docs/` describe the manifest, the workflow, the phases and recovery. The first Build proves the catalog recipe (binjovi-plans #309) and the in-cluster zelnet package fetch. https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
feat: the sourcerer skeleton on the zelnet package
All checks were successful
binjovi/ci Binjovi completed the frozen plan
5b111ff387
sourcerer is the IBM i source-control CLI. This first commit is the
repository skeleton that Binjovi can build and release:

- build.zig links sean/zelnet as a Zig package. build.zig.zon pins the
  v0.10.18 tarball by URL and content hash, and build.zig passes the
  same tag into the dependency so `zelnet.version` reports the linked
  release rather than zelnet's committed dev version. The two pins must
  move together; tests/cli/contract.sh checks that they agree.
- `sourcerer --version` prints `sourcerer v0.1.0 (zelnet v0.10.18)` on
  stdout and nothing on stderr. `--help` prints the planned verbs. Every
  planned verb exits 2 until it exists, so a script cannot mistake a
  missing verb for success. No arguments and unknown arguments exit 2.
- src/cli.zig is pure argument parsing with offline tests. src/root.zig
  is the library root; src/main.zig is the only file that ends the
  process. The exit codes are the contract: 0 done, 1 failed, 2 invalid
  input, 3 refused by a gate.
- `zig build check` is CI parity: zig fmt --check, the unit tests, the
  --version and --help stdout contracts, the invalid-argument contracts
  and tests/cli/contract.sh (bash, no host, no credentials).
- ci/binjovi-package.sh carries the Binjovi package contract that zelnet
  uses, without the macOS SDK (no GUI), for the later packaging release.
  packaging/nfpm.yaml, Makefile, AGENTS.md, STYLE.md, CHANGELOG.md and
  docs/ describe the manifest, the workflow, the phases and recovery.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
feat: add manifest validate and the rpg-lemonade manifest
Some checks failed
binjovi/ci Binjovi failed the frozen plan
8da369e3b6
- src/core/names.zig, dag.zig, manifest.zig: pure modules for names and
  types, dependency ordering, and the application manifest parser and
  rules. Unknown and duplicate JSON fields are refused, and every rule
  fails closed with a problem that names the field.
- src/cli.zig, src/main.zig: `manifest validate [--manifest PATH]` prints
  one JSON receipt (`sourcerer.manifest-validate.v1`) with the counts and
  the build order, or every problem found; exit 0 or 2.
- examples/rpg-lemonade/sourcerer.json: the rpg-lemonade application,
  derived from native/catalog.json and fixture/catalog.json.
- tests/cli/manifest.sh and fixtures: the CLI contract, with a password
  canary in the environment.
- build.zig: the core tests, the example manifest, a cyclic fixture and
  both bash contracts run under `zig build check`.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
fix: keep the rpg-lemonade golden manifest under src/testdata
Some checks failed
binjovi/ci Binjovi failed the frozen plan
605b1b2c09
The Binjovi recipe copies build.zig, build.zig.zon, src, ci and tests into
the check stage and nothing else, so `zig build check` could not find
examples/rpg-lemonade/sourcerer.json in the cluster and the Build failed.
Golden fixtures belong under src/testdata; the manifest moves there and
every reference follows.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
fix: compare receipts with bash, not cmp
All checks were successful
binjovi/ci Binjovi completed the frozen plan
6ab7005114
The zig-builder image carries no diffutils, so the manifest contract's
determinism check failed in the cluster with `cmp: command not found`.
A bash string comparison needs nothing from the image.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
binjovi-bot deleted branch feat/skeleton 2026-09-14 16:51:54 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/sourcerer!1
No description provided.