Repository navigation
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e 18) - Optional singleton 'kind' release tag and manifest field; non-package kinds are refused by install/update and surfaced in resolve output. - npack resolve --release <event-id> pins to an exact release event. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- packaging/nix: lib.nix (fetchRecipe/fromPins with shared scope so declared dependencies are plain arguments), flake.nix, npack-nix-pin. - Optional fork-of release tag (provenance only). - update/install check kind before downloading. - Docs: Nix recipes section and trust warning. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…heck, trustedPublishers
- npack unpack [--fork-as] extracts a verified package and scaffolds a fork
manifest that inherits kind and records fork_of.
- init --kind/--fork-of (nix-recipe scaffolds default.nix, os/arch any).
- search --kind; search/info show kind and fork-of.
- npack-nix-pin: --check, change summary, publisher-conflict refusal,
cross-publisher dependency warning.
- lib.nix fromPinsWith { trustedPublishers }.
- Docs: end-to-end publish/fork/use workflow, NixOS example, trust notes.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #18 (does not close it).
Publishing, forking, finding and consuming Nix build recipes as npack artifacts.
Changes
Protocol / core
kind(e.g.nix-recipe). Non-package kinds are refused byinstall/updatebefore downloading, and shown byresolve.fork-oftag (publisher, name, release event ID): provenance only.npack resolve --release <event-id>pins one exact release with the usual signature/trust/revocation/name/os-arch checks.Authoring and forking
npack init --kind nix-recipedefaults os/arch toanyand scaffolds adefault.nix;--fork-of <publisher>/<name>@<id>records provenance.npack unpack <ref> --output DIRdownloads, hash-verifies and extracts a package (also the way to review a recipe's code). With--fork-as <publisher> [--name N]it writes a manifest that inheritskindand recordsfork_of, so no extra flags are needed to fork.Discovery
npack search --kind <kind>;searchandinfoshow[kind]and(fork of ...).Nix consumer (
packaging/nix)lib.nix:fetchRecipe,fromPins,fromPinsWith { pinsFile, trustedPublishers }(evaluation fails for any other publisher). Recipes share one scope, so a declared dependency is a plain function argument.flake.nix(lib and overlay).npack-nix-pin: recursive pinning, a summary of new/changed pins,--check(exit 1 if pins would change), refusal to silently replace a pin with one from another publisher, and a warning when a dependency resolves to a different publisher than its dependent.Docs: protocol (
kind,fork-of), a full publish/fork/use workflow inusing-npack.mdwith a NixOS example and trust notes, andCLAUDE.md.Agent guide: a canonical
AGENTS.md(architecture, release/install flow, code map, how to test end to end with a local relay, gotchas; not Nix-specific).CLAUDE.mdnow just imports it.Verified
cargo fmt --check,cargo clippy --all-targets,cargo testpass (72 + 3).nak serve --blossom), building in a Debian VM with Nix:resolve,resolve --release,search --kind,info,unpack --fork-asthen repack and publish of a fork,npack-nix-pin(including--checkand the conflict refusal), a recipe with a dependency, and the flake.trustedPublishersrejects an unlisted publisher. A tampered hash is rejected.Not done
npack-nix-pin.🤖 Generated with Claude Code