feat: launch the installed product, and adopt a target the old estate still claims - #14
Merged
Merged
Conversation
… 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.
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.
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.
launchstarts 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
--targetthrough the environment variable theproduct's own documentation names, passes anything after a bare
--throughverbatim, 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.
adopttakes over a target still carrying the stamp file written by the Pythonestate 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
mvaway from being back, on top of the backup theadoption 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::fsandsha2directly, rather than against thedigest the provider itself uses to decide a target is unchanged.
--helpnow describes what each build actually does rather than what they allonce did.
Rendered from
NDDev-it-com/setup-systems@75f5f54.https://claude.ai/code/session_011eFMKoUdWcc7Aw9vtMxH2A