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, CONTRACT_1,
30    CURRENT_CONTRACT,
31};
32pub use error::{Error, Result};
33pub use init::{
34    discover_config, initialize, initialize_with, CandidateProjectionSuggestion,
35    CandidateResolution, CandidateTagSuggestion, ConvertedIntent, DiscoveryCandidate,
36    ExtractionDiagnostic, InitDiagnostic, InitOptions, InitPlan, InitResult, InitState,
37    ParityReleaseUnit, ParityResult, RawVersionEvidence, SourceEvidence, INIT_PLAN_PATH,
38};
39pub use intent::{Intent, IntentDraft, IntentWrite, INTENTS_PATH};
40pub use model::{
41    Adapter, Bump, BumpTranslation, ProjectionMode, ReleaseUnitDisposition, TagPhase, TagRole,
42};
43pub use plan::{
44    canonical_json, render_changelog_section, sha256_digest, ChangelogEntry, Generator,
45    PlanReleaseUnit, PlanTag, ReleasePlan,
46};
47pub use stamp::StampResult;
48pub use status::{
49    Drift, ReleaseUnitStatus, WorkspaceStatus, MISSING_BASELINE_CODE, MISSING_BASELINE_NEXT_ACTION,
50};
51pub use tag::{tag_record_issues, PlannedTag, TagResult};
52pub use version::{
53    aggregate_bumps, aggregate_graduations, bump_version, effective_bumps, resolve_versions,
54    ReleaseUnitVersion, VersionRepository,
55};
56
57/// Version of the core release model.
58pub const VERSION: &str = env!("CARGO_PKG_VERSION");