pub const UPDATE_LONG: &str = "\
Print the installed version, ask GitHub for the latest release, and show the upgrade \
command for how this copy was installed. When a newer release exists and stdin is a \
terminal it then asks `Install vX.Y.Z now? [y/N]`; Enter leaves the binary alone, `y` \
downloads the release, verifies its checksum and replaces every copy this install \
runs, falling back to the package manager that owns this copy (cargo, npm, bun, pnpm, \
yarn, uv, pipx, or the installer script) when there is no published binary for the \
platform. `--install` or `-y` gives that answer up front; a copy run from a script or a \
pipe is never asked and only prints the command. `--channels` prints the command for \
every channel instead of only this one, and touches nothing. `auto_update` is on by default and does the verified-download half by \
itself at the end of a prune pass when a newer release is known — never the \
package-manager half, and nothing at all on WinGet, Scoop and Homebrew, where the \
manager owns the upgrade; `devp config set auto_update false` stops it. An upgrade never interrupts the \
scheduler: the scheduled pass runs a managed copy that refreshes itself from the \
new binary on its next run.
`devp config set version_lock true` outranks all of it. While the pin is on this \
copy stays on the version it is: `auto_update` does not run however it is set, \
`--install` refuses, `devp install --channel` refuses because moving channels \
installs the latest release, and the install scripts leave the binary alone. \
No flag bypasses it -- `devp config set version_lock false` is the way back.
The same check also runs quietly from `devp run` and `devp status`, at most once \
every `update_check_interval_days` (7 by default), printing one line only when a \
newer version exists. It is the only thing in dev-prune that opens a network \
connection, sends no body and no identifier, and `devp config set update_check \
false` turns it off for good; `--offline` skips it for one run without changing the \
setting.";