← The board

E2 Self-update

Area
E — Maintenance
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.14.0
Labels
updates
Relates to
C4E1G8

The feature in the specification · Read at

Requirements

  1. E2-R1acceptedMUST

    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
  2. E2-R2acceptedMUST

    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
  3. E2-R3acceptedMUST

    Update availability MUST be advisory and MUST NOT block any operation.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/self_update/noticing.rscrates/lemonfiber-core/src/self_update/offered.rscrates/lemonfiber-core/src/self_update/run/checking.rscrates/lemonfiber-core/src/outbound.rscrates/lemonfiber-core/src/stored/kept.rs
  4. E2-R4acceptedMUST

    Update notices MUST NOT be repeated persistently.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/self_update/noticing.rscrates/lemonfiber-core/src/self_update/offered.rscrates/lemonfiber-core/src/self_update/run/checking.rscrates/lemonfiber-core/src/outbound.rscrates/lemonfiber-core/src/stored/kept.rs
  5. E2-R5acceptedMUST

    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
  6. E2-R6acceptedMUST

    Binary replacement MUST be atomic; an interruption MUST leave the previous version functional.

    locked by
    0.14.0 met
    recorded done
    lemonfiberscripts/the_installer_places_what_it_verified.py.github/workflows/release-installer.yml
    cited by
    lemonfiber@b782c71dad
  7. E2-R7acceptedMUST

    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
  8. E2-R8acceptedMUST

    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
  9. E2-R9acceptedMUST

    An update requiring a newer stack schema MUST state this, including implied service updates, before proceeding.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/self_update/offered.rscrates/lemonfiber-core/src/self_update/upgrading.rs.github/workflows/release-contract.yml
    cited by
    lemonfiber@9901049caclemonfiber@74e8684993
  10. E2-R10acceptedMUST

    Downgrade MUST be supported, and compatibility with existing configuration MUST be stated.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/update.rscrates/lemonfiber-core/src/update/tests.rs
  11. E2-R11acceptedMUST

    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
  12. E2-R12acceptedMUST

    Update checking MUST be disableable and MUST NOT retry noisily when unavailable.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/self_update/noticing.rscrates/lemonfiber-core/src/self_update/offered.rscrates/lemonfiber-core/src/self_update/run/checking.rscrates/lemonfiber-core/src/outbound.rscrates/lemonfiber-core/src/stored/kept.rs
  13. E2-R13acceptedMUST

    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
  14. E2-R14acceptedMUST

    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