E2 Self-update
- Area
- E — Maintenance
- Audience
- operator
- Kind
- feature
- Status
- accepted
- Maturity
- shipped
- Shipped in
- 0.14.0
- Labels
- updates
The feature in the specification · Read at
Requirements
lemonfiber MUST detect its installation method and MUST defer to an owning package manager rather than self-replacing.
- locked by
- 0.14.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
- cited by
- lemonfiber@b2c5dd9dc4lemonfiber@23e2c42506lemonfiber@a21dad1cf2
When deferring, the exact command for that package manager MUST be printed.
- locked by
- 0.14.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
- cited by
- lemonfiber@5c4da8f7cb
Update availability MUST be advisory and MUST NOT block any operation.
Update notices MUST NOT be repeated persistently.
Updating lemonfiber MUST NOT stop, restart or modify the running stack.
- locked by
- 0.14.0 uncited
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
Binary replacement MUST be atomic; an interruption MUST leave the previous version functional.
A running instance MUST NOT be replaced in place; a restart MUST be required and stated.
- locked by
- 0.14.0 uncited
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
lemonfiber MUST report its own version, the stack version it carries, and its installation method.
- locked by
- 0.14.0 uncited
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
An update requiring a newer stack schema MUST state this, including implied service updates, before proceeding.
Downgrade MUST be supported, and compatibility with existing configuration MUST be stated.
Configuration written by a newer version MUST be refused rather than modified.
- locked by
- 0.14.0 met
- recorded done
- lemonfibercrates/lemonfiber-core/src/config/store.rscrates/lemonfiber-core/src/version.rs
- cited by
- lemonfiber@da104f4ced
Update checking MUST be disableable and MUST NOT retry noisily when unavailable.
Insufficient permission to replace the binary MUST be reported with the path, and MUST NOT attempt privilege escalation.
- locked by
- 0.14.0 uncited
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs
Where several lemonfiber binaries exist on PATH, the running one MUST be identifiable by path.
- locked by
- 0.14.0 uncited
- recorded done
- lemonfibercrates/lemonfiber-core/src/self_update.rscrates/lemonfiber-core/src/self_update/run.rscrates/lemonfiber/src/render/self_update.rscrates/lemonfiber-core/src/self_update/installed.rscrates/lemonfiber-core/src/self_update/upgrading.rscrates/lemonfiber/tests/architecture/what_a_self_update_may_reach.rs