@lssm-tech/lib.progressive-delivery
Progressive delivery and canary release primitives. Provides strategy definitions and rollout logic for safe, incremental deployments.
What It Provides
- Layer: lib.
- Consumers: bundles.
- Related ContractSpec packages include
@lssm-tech/lib.observability, @lssm-tech/tool.bun, @lssm-tech/tool.typescript.
- Related ContractSpec packages include
@lssm-tech/lib.observability, @lssm-tech/tool.bun, @lssm-tech/tool.typescript.
Installation
npm install @lssm-tech/lib.progressive-delivery
or
bun add @lssm-tech/lib.progressive-delivery
Usage
Import the root entrypoint from @lssm-tech/lib.progressive-delivery, or choose a documented subpath when you only need one part of the package surface.
Architecture
src/canary-analyzer.ts is part of the package's public or composition surface.
src/canary-controller.ts is part of the package's public or composition surface.
src/deployment-coordinator.ts is part of the package's public or composition surface.
src/events.ts is package-level event definitions.
src/feature-flags.ts is part of the package's public or composition surface.
src/index.ts is the root public barrel and package entrypoint.
src/rollback-manager.ts is part of the package's public or composition surface.
Public Entry Points
- Export
. resolves through ./src/index.ts.
Local Commands
bun run dev — contractspec-bun-build dev
bun run build — contractspec-bun-build build
bun run lint — bun lint:fix
bun run lint:check — biome check .
bun run lint:fix — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
bun run typecheck — tsgo --noEmit
bun run publish:pkg — bun publish --tolerate-republish --ignore-scripts --verbose
bun run publish:pkg:canary — bun publish:pkg --tag canary
bun run clean — rimraf dist .turbo
bun run build:bundle — contractspec-bun-build transpile
bun run build:types — contractspec-bun-build types
bun run prebuild — contractspec-bun-build prebuild
Recent Updates
- Replace eslint+prettier by biomejs to optimize speed.
Notes
- Delivery strategies must be deterministic — same input must produce same rollout decision.
- Peer dependency on observability; ensure OTel integration stays aligned.
- Strategy interface changes affect all deployment pipelines consuming this lib.
The package Turbo extension explicitly schedules observability before full and declaration-only builds. Observability remains a peer dependency for consumers; its declaration artifact must exist before the workspace declaration resolver runs.
PWA update contracts
The pure @lssm-tech/lib.progressive-delivery/pwa entry owns browser frontend release checks, optional/blocking update policy contracts and prompt/applied/ deferred telemetry. This extends staged-release ownership to client update delivery; service-worker activation remains host-owned. The leaf does not import canary controllers, deployment coordinators, observability or other runtime roots.
Existing @lssm-tech/lib.contracts-spec/pwa imports and deeper contract paths forward to these exact definitions. Core continues to own portable manifest models, and the runtime kernel owns manifest registries and version selection. Wire keys, REST routes, anonymous check policy and registration behavior are preserved. Capability registry types refer to the existing SurfaceRuntime owner.