pub enum EcosystemAdapter {
Rust(CargoAdapter),
Node(NodeAdapter),
Python(PythonAdapter),
Go(GoAdapter),
Homebrew(HomebrewAdapter),
Binary(BinaryAdapter),
}Expand description
The enum-backed registry: the six compiled-in ecosystem adapters, selected at
runtime from the contract’s Adapter identity by resolve.
An enum (not an unconstrained Vec<&dyn ReleaseAdapter>) so wiring is
compiler-checked: resolve’s match is exhaustive over every Adapter
variant, and a new ecosystem is a new variant the compiler forces you to
wire. Implements ReleaseAdapter by delegating to the resolved inner
adapter, giving the coordinator one uniform dispatch type.
Variants§
Rust(CargoAdapter)
The rust ecosystem (cargo-publish / cargo-dist).
Node(NodeAdapter)
The node ecosystem (release-please / changesets / npm-publish).
Python(PythonAdapter)
The python ecosystem (gh-action-pypi-publish / twine).
Go(GoAdapter)
The go ecosystem (goreleaser).
Homebrew(HomebrewAdapter)
The homebrew distribution target (homebrew-tap / homebrew-core).
Binary(BinaryAdapter)
The binary distribution target (manual / GitHub Releases).
Trait Implementations§
Source§impl ReleaseAdapter for EcosystemAdapter
impl ReleaseAdapter for EcosystemAdapter
Source§fn adapter(&self) -> Adapter
fn adapter(&self) -> Adapter
cargo-publish and cargo-dist).Source§fn is_ci_delegated(&self) -> bool
fn is_ci_delegated(&self) -> bool
cargo-dist’s
release.yml, a release-please merge job, PyPI’s trusted-publisher
workflow), never by the engine’s publish step from this
host. The coordinator skips such a target in publish-all (journalling a
target_delegated fact) rather than calling publish and treating its
honest AdapterError::Unsupported as a phase failure — which would leave
the cut stuck after an irreversible crates.io publish. Read moreSource§fn ci_owns_github_release(&self) -> bool
fn ci_owns_github_release(&self) -> bool
coordinator-release-vs-cargo-dist-ownership). Read moreSource§fn dry_run(
&self,
ctx: &EffectCtx<'_>,
target: &AdapterTarget,
) -> Result<DryRunReport, AdapterError>
fn dry_run( &self, ctx: &EffectCtx<'_>, target: &AdapterTarget, ) -> Result<DryRunReport, AdapterError>
target. Read moreSource§fn build(
&self,
ctx: &EffectCtx<'_>,
target: &AdapterTarget,
) -> Result<BuildArtifacts, AdapterError>
fn build( &self, ctx: &EffectCtx<'_>, target: &AdapterTarget, ) -> Result<BuildArtifacts, AdapterError>
Source§fn publish(
&self,
ctx: &EffectCtx<'_>,
target: &AdapterTarget,
) -> Result<PublishReceipt, AdapterError>
fn publish( &self, ctx: &EffectCtx<'_>, target: &AdapterTarget, ) -> Result<PublishReceipt, AdapterError>
PublishReceipt. Read more