Skip to content

[TASK][MVP] Build Reusable Provider Package and Runtime CI/CD Pipelines - #21

Merged
Noam-Alum merged 5 commits into
mvp/implementationfrom
mvp/provider-ci-automation
Oct 11, 2026
Merged

Noam-Alum merged 5 commits into
mvp/implementationfrom
mvp/provider-ci-automation

Conversation

@Noam-Alum

Copy link
Copy Markdown
Member

Required result

Outcome and ownership

Create a reusable GitHub Actions ecosystem for building and validating the Provider Implementation package and its installed runtime. Package construction, dependency selection, public Provider fixtures, runtime lifecycle, SFP assertions, scenarios, and evidence collection are written once and composed by PR, integration, release-candidate, and future publication workflows. Test the public authoring surface and installed package; do not create a second runtime or execute from a source checkout.

Required behavior

  • Build wheel and sdist once through a documented local command using canonical package metadata; record checksums and artifact/dependency provenance.
  • Organize focused composite actions under .github/actions/ for package build, installed-package checks, Provider fixture creation, runtime start/stop, Bootstrap assertion, Manifest assertion, and evidence collection. Scenarios compose actions rather than growing one large action.
  • Provide reusable workflow_call workflows for artifact build, installed-package checks, runtime scenarios, and an aggregate gate. Thin PR/integration and manual release-candidate callers copy no environment or test logic.
  • Accept protocol-ref, defaulting to mvp/implementation while allowing an explicit ref or SHA. Record the resolved Protocol commit and artifact hash.
  • Install exact Provider and Protocol artifacts in clean environments outside both checkouts and without repository PYTHONPATH; prove package identity, import location, typed public API, descriptor/socket behavior, Bootstrap, Manifest, and clean shutdown.
  • Supply small declarative dummy Providers through the public API. Cover normal exchange/shutdown, concurrent distinct instances, same-instance replacement/generation, invalid peers, abrupt failure, restart, and uninstall/reinstall. Faults and evidence must be deterministic and bounded.
  • Separate platform-independent package/import checks from supported runtime checks. Do not imply Windows runtime support where Unix-domain sockets are required.
  • Pin external actions to immutable SHAs; keep permissions read-only, credentials absent, jobs bounded, caches dependency-keyed, and retention explicit.
  • Prefer action composition and existing commands. Add shell or Python only for reusable logic that cannot be expressed safely elsewhere; never duplicate runtime behavior in the harness.

Acceptance evidence

Validate action/workflow metadata; build wheel and sdist once; verify hashes/provenance; install exact artifacts outside the checkout; prove installed import origins and public authoring API; exercise valid Bootstrap/Manifest, multiple Providers, replacement, invalid peers, crash, restart, cleanup, uninstall, and reinstall; retain failure evidence. Pass Ruff, formatting, strict mypy, pytest/coverage, package build, installed-package checks, runtime scenario tiers, and strict docs.

Non-goals

No production Provider, new SFP semantics, Agent features, Control Plane integration, operation/trigger behavior, publication/signing, OS service package, cloud infrastructure, or organization-wide workflow repository.

Compatibility, discretion, and delivery

Preserve the public Provider framework, typed models, decorators, lifecycle hooks, internal SFP abstraction, landed Bootstrap/Manifest behavior, supported Python versions, and human Issue/PR/review/merge authority. Reusable workflows own job topology, composite actions own repeated runner steps, and the installed package plus public API remain the system under test.

Implementation step

R11

Closes #19

@Noam-Alum Noam-Alum self-assigned this Oct 11, 2026
@Noam-Alum
Noam-Alum merged commit 47e7e23 into mvp/implementation Oct 11, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant