Expand description
The direct landing writer: from a computed Projection and the
receipt as it stands to the files on disk and the receipt written
last.
Every landing renders afresh from this binary and the target at invocation. The writer decides each destination by its recorded kind alone, validates every destination before the first write, holds one target lock through the receipt write, opens the target directory once and writes every file relative to that held directory so a component swapped for a link after validation redirects nothing, and replaces each destination through a same-directory temporary file and a rename. The set is not transactional: a failure names every completed path, leaves the previous receipt, and the rerun lands the rest.
SATISFIES landing:ownership-is-elementary SATISFIES landing:a-partial-landing-is-visible-and-rerunnable SATISFIES landing:a-landing-leaves-a-record
Structs§
- Collision
- One destination the landing refuses before any write.
- Decision
- One decided destination.
- Held
- One target directory held open for a whole landing verb.
- Landed
- What a landing completed.
- Prepared
- The landing decided and ready: the projection, every decision in projection order with the released destinations after them, every collision, and the configuration the landing writes first.
- Replaced
- One conflict the operator named, replaced after its bytes were saved.
- Secret
Move - One stored secret whose reading moved when a landing replaced a GitHub workflow: the replaced file read it and the rendered file does not, or the reverse.
Enums§
- Action
- What the landing does with one destination.
- Adoption
- What an adoption finds at one candidate’s destination.
- Origin
- How a landing came to write its receipt.
Constants§
- INTERRUPT_
VAR - The environment variable the interruption proof sets to the relative destination whose rename is to fail on purpose.
- PAUSE_
VAR - The environment variable naming a directory the proof pauses through
once validation is over and the target is held:
validatedappears there, and the landing waits forproceed.
Functions§
- decide
- Decide every destination from the receipt and the disk, collecting every collision rather than stopping at the first.
- judge_
adoption - Judge one candidate’s destination as an adoption does.
- land
- Land
preparedintotarget. - licence_
refusal - The refusal a licence condition answers, before any write.
- name_
replacements - Turn every conflict
replacenames into a replacement, and refuse a name that is no conflict. - prepare
- Gather the target’s evidence once, compute the projection, and decide every destination, writing nothing.
- previewed_
replacements - What a preview reports for the named conflicts: each path, with no saved copy yet.
- refusal
- The one refusal for every collision, before any write.
- release_
unavailable - The refusal a selected release automation this release cannot land answers, before any write: silently omitting the declared release would write a record that claims an automation nothing landed.
- replaced_
secrets - The secrets every workflow this landing replaces would move: each
destination under
.github/workflows/the landing replaces, read before the write and set beside its candidate. - secret_
names - The stored secrets a workflow text reads: every
secrets.NAMEinside a${{ }}expression, with or without spaces.GITHUB_TOKENis the forge’s own and no stored secret. - secrets_
moved - The secrets that move when the workflow at
pathgoes fromoldtonew: each nameoldreads andnewdoes not, then each namenewreads andolddid not, with the step that stores it.