← The board

A5 Migration from an existing stack

Area
A — Getting started
Audience
operator
Kind
feature
Status
accepted
Maturity
building
Labels
ux, storage
Relates to
A2A4C5E3F1

The feature in the specification · Read at

Requirements

  1. A5-R1acceptedMUST

    Migration MUST begin with a read-only survey that modifies nothing.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration.rscrates/lemonfiber-core/src/migration/standing.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/migration/image.rscrates/lemonfiber-core/src/migration/run.rs
    cited by
    lemonfiber@50a9bc0d07
  2. A5-R2acceptedMUST

    The survey MUST report every detected service, config source, and library location before any plan is proposed.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration.rscrates/lemonfiber-core/src/migration/standing.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/migration/image.rscrates/lemonfiber-core/src/migration/run.rs
    cited by
    lemonfiber@5e717c267elemonfiber@50a9bc0d07
  3. A5-R3acceptedMUST

    Adopt MUST be the default mode; replacement MUST NOT be preselected.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/app/adopt.rscrates/lemonfiber-core/src/app/beside.rscrates/lemonfiber-core/src/app/replace.rscrates/lemonfiber-core/src/app/import.rscrates/lemonfiber/tests/architecture/what_a_migration_may_reach.rs
    cited by
    lemonfiber@e6cd57b374lemonfiber@a9df5816b8lemonfiber@7cf38d6010lemonfiber@5e717c267e
  4. A5-R4acceptedMUST

    lemonfiber MUST NOT move, rename, or reorganise existing media as part of migration.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber/tests/architecture/what_a_migration_may_reach.rs
    cited by
    lemonfiber@3dfe3ba823lemonfiber@39931b1757
  5. A5-R5acceptedMUST

    Side-by-side evaluation on alternative ports MUST be supported.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/app/adopt.rscrates/lemonfiber-core/src/app/beside.rscrates/lemonfiber-core/src/app/replace.rscrates/lemonfiber-core/src/app/import.rscrates/lemonfiber/tests/architecture/what_a_migration_may_reach.rs
    cited by
    lemonfiber@52a7cb5ff4lemonfiber@ac759019d1
  6. A5-R6acceptedMUST

    lemonfiber MUST refuse to downgrade an existing arr database and MUST explain why.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/app/adopt.rs
    cited by
    lemonfiber@078b09ea8dlemonfiber@9a58f6c615lemonfiber@5e717c267e
  7. A5-R7acceptedMUST

    An upgrade of an existing arr database MUST require a backup first.

    locked by
    0.13.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/app/adopt.rs
  8. A5-R8acceptedMUST

    Items that could not be migrated MUST be enumerated explicitly.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/migration/importing.rs
    cited by
    lemonfiber@8522b5de6e
  9. A5-R9acceptedMUST

    A failed or abandoned migration MUST leave the pre-existing setup functional.

    locked by
    0.13.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/app/adopt.rscrates/lemonfiber-core/src/app/beside.rscrates/lemonfiber-core/src/app/replace.rscrates/lemonfiber-core/src/app/import.rscrates/lemonfiber/tests/architecture/what_a_migration_may_reach.rs
  10. A5-R10acceptedMUST

    An existing layout that breaks hardlinks MUST be reported with its cost quantified, and a remedy offered but not forced.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration/linking.rs
    cited by
    lemonfiber@39931b1757
  11. A5-R11acceptedMUST

    Port conflicts with existing services MUST be detected before any plan is proposed.

    locked by
    0.13.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration.rscrates/lemonfiber-core/src/migration/standing.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/migration/image.rscrates/lemonfiber-core/src/migration/run.rs
    cited by
    lemonfiber@52a7cb5ff4lemonfiber@50a9bc0d07
  12. A5-R12acceptedMUST

    Unsupported existing components MUST be named as unsupported rather than silently ignored.

    locked by
    0.13.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/migration.rscrates/lemonfiber-core/src/migration/standing.rscrates/lemonfiber-core/src/migration/carrying.rscrates/lemonfiber-core/src/migration/mode.rscrates/lemonfiber-core/src/migration/image.rscrates/lemonfiber-core/src/migration/run.rs
  13. A5-R13acceptedMUST

    Reading what a replacement would stop MUST answer with an offer naming what it would stop; the replacement MUST take that offer as its yes, alike at the command line and over the web API (ARCH-R48), MUST build it again from what is running when it acts, and MUST be refused, naming what moved, where the two differ (N7-R18).

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/replace.rscrates/lemonfiber-core/src/agreement.rs
    cited by
    lemonfiber@33ea43f663lemonfiber-web@9b97f303f3sdk-ts@48f8998239lemonfiber-companion@734b5be4e8
  14. A5-R14acceptedMUSTClaim it

    The survey's migration envelope MUST carry, for each service it found, where that service's configuration is read from and where its library is, or MUST say that either could not be read, so that no surface works them out from a service's name or ports (A5-R2, N7-R11).

    locked by
    0.18.0 open