Skip to content

feat: launch the installed product, and adopt a target the old estate still claims - #14

Merged
rldyourmnd merged 1 commit into
mainfrom
feat/launch-and-adopt
Aug 25, 2026
Merged

feat: launch the installed product, and adopt a target the old estate still claims#14
rldyourmnd merged 1 commit into
mainfrom
feat/launch-and-adopt

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

feat: launch the installed product, and adopt a target the old estate still claims

Two capabilities, both of which needed the software lifecycle to exist first.

launch starts the exact executable a software install placed under --prefix,
never a name found on PATH — that starts whatever else shares the spelling.
It points the product at --target through the environment variable the
product's own documentation names, passes anything after a bare -- through
verbatim, and replaces this process so the caller's stdio and exit status become
the product's. Declared where both halves hold: the build installs software, and
the product documents a configuration-home variable to be pointed with.

adopt takes over a target still carrying the stamp file written by the Python
estate these seven replaced. It is a command someone types, never something
install does behind them. Nothing is deleted: the stamp moves into this
provider's control directory, where the old program stops recognising it and the
pre-adoption state is one mv away from being back, on top of the backup the
adoption captures first. Every file the stamp claims is accounted for as intact,
changed or missing before anything is taken over, and a claimed path this
provider does not own is a refusal rather than a claim it could not keep.

Alongside them, four tests that run a populated configuration home through
install, backup, restore and remove — a tree six levels deep, a name outside
ASCII, an empty directory, CRLF bytes, a read-only file — and compare against a
fingerprint computed with std::fs and sha2 directly, rather than against the
digest the provider itself uses to decide a target is unchanged.

--help now describes what each build actually does rather than what they all
once did.

Rendered from NDDev-it-com/setup-systems@75f5f54.

https://claude.ai/code/session_011eFMKoUdWcc7Aw9vtMxH2A

… still claims

Two capabilities, both of which needed the software lifecycle to exist first.

`launch` starts the exact executable a software install placed under `--prefix`,
never a name found on `PATH` — that starts whatever else shares the spelling.
It points the product at `--target` through the environment variable the
product's own documentation names, passes anything after a bare `--` through
verbatim, and replaces this process so the caller's stdio and exit status become
the product's. Declared where both halves hold: the build installs software, and
the product documents a configuration-home variable to be pointed with.

`adopt` takes over a target still carrying the stamp file written by the Python
estate these seven replaced. It is a command someone types, never something
install does behind them. Nothing is deleted: the stamp moves into this
provider's control directory, where the old program stops recognising it and the
pre-adoption state is one `mv` away from being back, on top of the backup the
adoption captures first. Every file the stamp claims is accounted for as intact,
changed or missing before anything is taken over, and a claimed path this
provider does not own is a refusal rather than a claim it could not keep.

Alongside them, four tests that run a populated configuration home through
install, backup, restore and remove — a tree six levels deep, a name outside
ASCII, an empty directory, CRLF bytes, a read-only file — and compare against a
fingerprint computed with `std::fs` and `sha2` directly, rather than against the
digest the provider itself uses to decide a target is unchanged.

`--help` now describes what each build actually does rather than what they all
once did.
@rldyourmnd
rldyourmnd merged commit 718a1cf into main Aug 25, 2026
24 checks passed
@rldyourmnd
rldyourmnd deleted the feat/launch-and-adopt branch August 25, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant