← The board

F9 Capabilities of the bundled services

Area
F — Extensibility
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.17.0
Labels
extensibility, wiring, verification
Requires
F4
Relates to
F2F5F6F8D1

The feature in the specification · Read at

Requirements

  1. F9-R1acceptedMUST

    Every bundled service MUST declare the capabilities it provides, and the declaration MUST live in the first-party plugin manifest the bundle pins rather than in lemonfiber's source.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-plugin/src/vocabulary.rscrates/lemonfiber-core/src/plugin/tests.rscontract/capability-vocabulary.json
    recorded done
    lemonfiber-media-stackscripts/manifest_rules.py::validate_service_providesscripts/test_validate_manifest.py::a capability name with no area
    cited by
    lemonfiber@50cd57cf63lemonfiber-media-stack@8b1efe682a
  2. F9-R2acceptedMUST

    Every capability a bundled service declares MUST pass that capability's probes, and a version MUST NOT ship while a bundled claim's probes refuse it.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/tests/integration/what_the_bundled_stack_claims.rsscripts/the_gate_a_tag_must_pass.pycrates/lemonfiber-core/src/plugin/bundled.rs
    recorded partial
    lemonfiber-media-stackscripts/judge.pyrecordings
    cited by
    lemonfiber@47ae81d956lemonfiber@6b134d4789lemonfiber@969869ac6elemonfiber-media-stack@276665a814lemonfiber-media-stack@bf9bb09daalemonfiber-media-stack@40682dc4e1lemonfiber-media-stack@92586a8b5blemonfiber-media-stack@0fec95513clemonfiber-media-stack@d1ec09fcb4lemonfiber-media-stack@577e5fb604lemonfiber-media-stack@3495ff899f
  3. F9-R3acceptedMUST

    Every capability in the core vocabulary MUST be declared by at least one bundled service, and a capability nothing implements MUST NOT be published.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-plugin/src/vocabulary.rscrates/lemonfiber-core/src/plugin/tests.rscontract/capability-vocabulary.json
    recorded partial
    lemonfiber-media-stackstack.toml
    cited by
    lemonfiber@50cd57cf63lemonfiber-media-stack@8b1efe682a
  4. F9-R4acceptedMUST

    The bundled stack's wiring MUST ask for capabilities rather than name services, each ask declared in the asking part's plugin manifest, and the stack's choice of filler for a contested ask MUST be declared in the bundle; a wiring genuinely about one service MUST be a by-name wiring in the bundle and MUST be shown as one.

    locked by
    0.16.0 met
    recorded done
    lemonfibercontract/web-api/index.jsoncontract/web-api-surface/index.jsoncrates/lemonfiber-core/src/app.rscrates/lemonfiber-core/src/app/command.rs
    recorded done
    lemonfiber-media-stackscripts/wiring_rules.pyscripts/test_validate_manifest.py::a wiring that both asks and namesscripts/test_validate_manifest.py::does not say why
    cited by
    lemonfiber@eb40fb4d4alemonfiber@d5dd9443eelemonfiber-media-stack@72395ca4ed
  5. F9-R5acceptedMUST

    A bundled service that stops satisfying a declared capability MUST fail in the same way a plugin failing a claim does, with no gentler treatment for being bundled.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-manifest/src/schema.rscrates/lemonfiber-plugin/src/claiming/bundled.rscrates/lemonfiber-core/src/plugin/claimed/asserting.rscrates/lemonfiber-core/src/plugin/bundled.rs
    cited by
    lemonfiber@969869ac6e
  6. F9-R6acceptedMUST

    Replacing a bundled service with a plugin that claims the same capability MUST require no change to anything that consumes that capability.

    locked by
    0.17.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/wiring/fillers.rscrates/lemonfiber-core/src/app/targets/media.rscrates/lemonfiber-core/src/seed/run/tests/replacing.rscrates/lemonfiber/tests/architecture/seeding_names_nothing_that_fills_an_ask.rs
    cited by
    lemonfiber@72617d14b8lemonfiber@a2d8a6e408lemonfiber@3f6e354b20lemonfiber@334c6abc38lemonfiber@782e207030lemonfiber@66bdf195f1lemonfiber@4c472dfc80lemonfiber@4c4e2748d0lemonfiber@075bf96c15lemonfiber@30a93068a2lemonfiber@60695f36d8lemonfiber-web@7614e262e9lemonfiber-web@d1832009d5