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
The feature in the specification · Read at
Requirements
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
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
Every capability in the core vocabulary MUST be declared by at least one bundled service, and a capability nothing implements MUST NOT be published.
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
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.
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