arcature-cli 2026.1.1

Developer lifecycle CLI for Arcature applications.
Documentation
//! Arcature Release Architecture V2 engine (ADR-0005).
//!
//! Owns the release-planning data model that RV2.1–RV2.9 build on:
//! [`metadata`] (the `[package.metadata.arcature]` schema),
//! [`discovered`] (cargo-metadata ingestion), [`validate`] (the
//! side-effect-free metadata validator), [`change`] (the change-fragment
//! system), [`graph`] (the dependency graph), [`version`] (the YBF version
//! engine), [`plan`] (the release planner), [`prepare`] (the release
//! prepare step), [`platform`] (the Platform manifest), and [`publish`]
//! (the publish engine).
//!
//! This module is the library core; the `arc release` CLI dispatch lives in
//! [`crate::commands::release`]. It adds no new external dependency: cargo
//! metadata is ingested by shelling out through [`crate::process`] and
//! parsing the JSON with the already-vetted `serde_json`.

mod change;
mod discovered;
mod error;
mod graph;
mod metadata;
mod plan;
mod platform;
mod prepare;
mod publish;
mod validate;
mod version;

pub(crate) use change::{ChangeKind, ChangeReport, load_fragments_files, validate_fragments};
#[allow(unused_imports)]
pub(crate) use discovered::{CargoMetadata, DiscoveredCrate, discover, load_metadata};
pub(crate) use error::{Diagnostic, ReleaseError};
pub(crate) use graph::{build_crate_graph, build_unit_graph};
pub(crate) use metadata::CrateMetadata;
pub(crate) use plan::{PublishEntry, ReleasePlan, build_release_plan};
#[allow(unused_imports)]
pub(crate) use platform::{
    PlatformManifest, PlatformValidationReport, PlatformVersion, validate_platform,
};
#[allow(unused_imports)]
pub(crate) use prepare::{
    ArchiveSet, ManifestEdit, ManifestEditError, compute_archive_set, edit_dependency_version,
    edit_package_version, serialize_plan,
};
#[allow(unused_imports)]
pub(crate) use publish::{
    CrateResult, CrateTag, LoadedEntry, LoadedPlan, PlanLoadError, PublishReport, PublishStep,
    Publisher, RegistryInspector, RegistryStatus, TagCreator, TagKind, TagPolicyError,
    build_publish_steps, execute_plan, is_crate_tag, is_platform_tag, is_transaction_tag,
    load_plan, parse_crate_tag, parse_plan, validate_plan, verify_crate_tag,
};
pub(crate) use validate::{ValidationReport, validate};
pub(crate) use version::{Ybf, validate_ranges};