Skip to main content

Module self_depend

Module self_depend 

Source
Expand description

rk self-depend: release-kit as a consumer project’s development dependency, kept fresh.

A consumer obtains rk through whatever tool manager it already runs, and manager owns that axis: the closed list, the detection, and the per-manager pin reader. The flake manager carries two facts: the tag in flake.nix is the version, and the release-kit node in flake.lock is the content. This module owns the offline observation across every manager and the per-checkout state key; pin owns the flake line grammar, fragments the authored texts add serves, leftovers the predecessor catalog clean removes, discover the one network call, txn the fenced two-file transaction, guard the gates around it, venue where a release is published, and matrix which manager and venue pairs render.

Modules§

discover
The one network call the devshell verb makes: which release is the latest.
fragments
The texts rk self-depend add serves: one fragment set per manager and venue pair, the .envrc line, and the seed file for a manager the target has no file for.
guard
The gates around the devshell transaction, so the .envrc line is safe on every directory entry.
leftovers
What a predecessor bump mechanism left in a target.
manager
The manager axis: which tool manager a target obtains rk through.
matrix
The manager × venue matrix for rk itself: which pairs land as a fragment, seeded where the manager file is absent, and which are a hand edit with a named reason.
pin
The pin matcher: the one line in a consumer’s flake.nix that names the release-kit tag.
txn
The fenced two-file transaction behind rk self-depend sync.
venue
The venue axis: where a release of rk itself is published, and the reference form a manager records for each.

Structs§

Observed
Everything the offline pass reads from a target and this host’s state root. It spawns nothing and fetches nothing.

Enums§

Presence
Whether a file exists at its expected path.

Functions§

backup_dir
The directory a transaction backs the two files up into.
has_sync_line
Whether an .envrc text carries the sync line: a line whose trimmed start is the verb, whatever flags follow.
lock_path
The single-writer lock for one checkout.
marker_path
The marker an open transaction leaves until it commits or restores.
normalize_tag
Fold the three tag shapes — v0.2.16, 0.2.16, and the release URL — to one tag with exactly one leading v.
observe
Read a target’s pin wiring across every manager, offline.
read_stamp
The day the last sync attempt was stamped, where one was.
stamp_path
The daily stamp for one checkout.
state_dir
The directory every devshell state file lives under: <state root>/devshell.
state_key
The per-checkout key every state file is named by: <basename>-<digest16> over the canonical path, so two clones never share a lock, a stamp, or a backup.