Skip to main content

intentional_core/
lib.rs

1// ---
2// relationships:
3//   implements: intent-driven-polyglot-release
4// ---
5
6//! Core model and release operations for `intentional`.
7
8pub mod adapters;
9pub mod apply;
10pub mod check;
11pub mod config;
12pub mod error;
13pub mod init;
14pub mod intent;
15pub mod model;
16mod ownership;
17pub mod plan;
18pub mod projection_file;
19pub mod stamp;
20pub mod status;
21pub mod tag;
22pub mod version;
23mod workspace_files;
24
25pub use apply::{ApplyResult, FileWrite};
26pub use check::check_workspace;
27pub use config::{
28    Config, DiscoveryConfig, ExcludedPathReceipt, ManagedPathReceipt, Projection, ProjectionFile,
29    ReleaseUnitConfig, Settings, TagConfig, WorkspaceTagConfig, CONFIG_PATH, CURRENT_CONTRACT,
30};
31pub use error::{Error, Result};
32pub use init::{
33    discover_config, initialize, CandidateProjectionSuggestion, CandidateResolution,
34    CandidateTagSuggestion, ConvertedIntent, DiscoveryCandidate, ExtractionDiagnostic,
35    InitDiagnostic, InitPlan, InitResult, InitState, ParityReleaseUnit, ParityResult,
36    RawVersionEvidence, SourceEvidence, INIT_PLAN_PATH,
37};
38pub use intent::{Intent, IntentDraft, IntentWrite, INTENTS_PATH};
39pub use model::{
40    Adapter, Bump, Pre1BumpMapping, ProjectionMode, ReleaseUnitDisposition, TagPhase, TagRole,
41};
42pub use plan::{
43    canonical_json, render_changelog_section, sha256_digest, ChangelogEntry, Generator,
44    PlanReleaseUnit, PlanTag, ReleasePlan,
45};
46pub use stamp::StampResult;
47pub use status::{
48    Drift, ReleaseUnitStatus, WorkspaceStatus, MISSING_BASELINE_CODE, MISSING_BASELINE_NEXT_ACTION,
49};
50pub use tag::{tag_record_issues, PlannedTag, TagResult};
51pub use version::{
52    aggregate_bumps, bump_version, bump_version_with_mapping, effective_bumps, resolve_versions,
53    ReleaseUnitVersion, VersionRepository,
54};
55
56/// Version of the core release model.
57pub const VERSION: &str = env!("CARGO_PKG_VERSION");