Pin jostoph-rs to midgard, and finally commit the lock #13

Merged
larandar merged 1 commit from agent.teyla/jostoph-rs-via-midgard into main 2026-08-10 08:13:13 +00:00 AGit
Contributor

Closes #12. Supersedes #11 (closed: jostoph-rs is deliberately not a fastlane input).

flake.nix pinned the substrate at git+https://jo.et0.pw/lar.ad/jostoph-rs.git, which is private. That is why PR #2 shipped with a Known gap: "nix cannot fetch the input without a credential and the lock cannot be generated... the lock should be committed once that is in place (or once the substrate repo is readable)." This repository has had no flake.lock since.

midgard/jostoph-rs is the public mirror of the same tree at the same rev, over anonymous HTTPS. The precondition PR #2 deferred on is met, so this repoints the input and commits the lock.

In scope

  • jostoph-rs input → git+https://jo.et0.pw/midgard/jostoph-rs.git.
  • flake.lock, committed.

Out of scope

  • The vendoring mechanism. nix/overlay.nix's jostophSrc and the devShell's ln -sfn ${jostoph-rs} vendor/jostoph are untouched; only the input URL moves.
  • A substrate bump. midgard main is already the rev this input resolved to.
  • .fastlane.toml. Deliberately unchanged — see below.

Not a fastlane input, by design

I initially filed #11 to add jostoph-rs to the manifest, and was wrong. Owner, 2026-08-10: midgard/jostoph-rs carries main only by design — the substrate is consumed as published, not co-developed branch-for-branch with its consumers. #11 is closed and the manifest is untouched; the reasoning is recorded in the input's own comment so it is not re-derived later.

Worth flagging for whoever owns the seam: .fastlane.just appends ?ref={{ref}} to every manifest input unconditionally, and an input whose repo lacks that branch makes the whole nix invocation fail — measured (error: Failed to fetch git repository), not a warning. So a main-only repo must stay out of the manifest, because the manifest has no way to express one.

Boundary

Pinning the public mirror takes this repository's build off any forge credential at all — nix build now works with no netrc and no token. That is the reason midgard exists.

It also means the pin follows a repository whose freshness nothing yet reconciles (#3's push mirror is still hand-configured). Acceptable only because the lock records an exact rev: a stale mirror cannot silently change what this builds, it can only delay what a future nix flake update finds. A mirror that stops tracking is #3's finding to surface, not a correctness hazard here.

Acceptance

  • nix flake lock resolves jostoph-rs to 029a102cf6065ef3cd561b06bae613fb2ff0bbb2 — the same rev as before, so this is a repoint, not a bump.
  • flake.lock committed.
  • nix flake check green, unqualified — all 9 checks: the package build and its tests, the postInstall manifest check, module-evaluates, and policy-matches-checkout, none of which could run without --override-input before.
  • Anonymous reachability confirmed rather than assumed: with GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null, git ls-remote on lar.ad/jostoph-rs fails on could not read Username, while midgard/jostoph-rs answers 029a102 under identical conditions.

Not run: aarch64-linux, which nix flake check omits as an incompatible system on this machine.

Closes #12. Supersedes #11 (closed: `jostoph-rs` is deliberately not a fastlane input). `flake.nix` pinned the substrate at `git+https://jo.et0.pw/lar.ad/jostoph-rs.git`, which is private. That is why PR #2 shipped with a **Known gap**: *"nix cannot fetch the input without a credential and the lock cannot be generated... the lock should be committed once that is in place (or once the substrate repo is readable)."* This repository has had no `flake.lock` since. `midgard/jostoph-rs` is the public mirror of the same tree at the same rev, over anonymous HTTPS. The precondition PR #2 deferred on is met, so this repoints the input and commits the lock. ## In scope - `jostoph-rs` input → `git+https://jo.et0.pw/midgard/jostoph-rs.git`. - `flake.lock`, committed. ## Out of scope - **The vendoring mechanism.** `nix/overlay.nix`'s `jostophSrc` and the devShell's `ln -sfn ${jostoph-rs} vendor/jostoph` are untouched; only the input URL moves. - **A substrate bump.** midgard `main` is already the rev this input resolved to. - **`.fastlane.toml`.** Deliberately unchanged — see below. ## Not a fastlane input, by design I initially filed #11 to add `jostoph-rs` to the manifest, and was wrong. Owner, 2026-08-10: midgard/jostoph-rs carries `main` only **by design** — the substrate is consumed as published, not co-developed branch-for-branch with its consumers. #11 is closed and the manifest is untouched; the reasoning is recorded in the input's own comment so it is not re-derived later. Worth flagging for whoever owns the seam: `.fastlane.just` appends `?ref={{ref}}` to every manifest input unconditionally, and an input whose repo lacks that branch makes the **whole** nix invocation fail — measured (`error: Failed to fetch git repository`), not a warning. So a main-only repo must stay out of the manifest, because the manifest has no way to express one. ## Boundary Pinning the public mirror takes this repository's build off any forge credential at all — `nix build` now works with no `netrc` and no token. That is the reason midgard exists. It also means the pin follows a repository whose freshness nothing yet reconciles (#3's push mirror is still hand-configured). Acceptable only because the lock records an exact rev: a stale mirror cannot silently change what this builds, it can only delay what a future `nix flake update` finds. A mirror that stops tracking is #3's finding to surface, not a correctness hazard here. ## Acceptance - `nix flake lock` resolves `jostoph-rs` to `029a102cf6065ef3cd561b06bae613fb2ff0bbb2` — the same rev as before, so this is a repoint, not a bump. ✅ - `flake.lock` committed. ✅ - **`nix flake check` green, unqualified** — all 9 checks: the package build and its tests, the `postInstall` manifest check, `module-evaluates`, and `policy-matches-checkout`, none of which could run without `--override-input` before. ✅ - Anonymous reachability confirmed rather than assumed: with `GIT_CONFIG_GLOBAL=/dev/null GIT_CONFIG_SYSTEM=/dev/null`, `git ls-remote` on `lar.ad/jostoph-rs` fails on `could not read Username`, while `midgard/jostoph-rs` answers `029a102` under identical conditions. ✅ Not run: `aarch64-linux`, which `nix flake check` omits as an incompatible system on this machine.
PR #2 could not carry a flake.lock: the input pinned lar.ad/jostoph-rs,
which is private, so nix had no credential to fetch it with and no way
to lock it. midgard/jostoph-rs is the public mirror of the same tree at
the same rev (029a102), served over anonymous HTTPS — repointing at it
is content-identical and makes the lock generatable.

Not a bump: the lock resolves to 029a102, the rev the input already
reached. `nix flake check` now runs unqualified — build, tests,
postInstall manifest check, module evaluation and the policy-drift
check all green without --override-input for the first time.

Not a fastlane input either. midgard/jostoph-rs carries main only, by
design: the substrate is consumed as published, not co-developed
branch-for-branch with its consumers.
Sign in to join this conversation.
No reviewers
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
Ting/Jostoph!13
No description provided.