1#![warn(missing_docs)]
21#![forbid(unsafe_code)]
22#![allow(clippy::multiple_crate_versions)] pub mod domain;
25pub mod traits;
26
27pub use domain::{
29 changelog::{Changelog, ChangelogEntry, ChangelogSection},
30 commit::{Commit, CommitHistory, CommitType},
31 release::{Release, ReleasePlan, ReleaseStatus},
32 version::{BumpType, SemanticVersion, VersionRecommendation},
33 workspace::{WorkingTreeStatus, WorkspaceMetadata},
34};
35
36pub use traits::{
37 checkpoint_store::{Checkpoint, CheckpointStore, WorkflowState},
38 registry::{Registry, RegistryError},
39 source_control::{ScmError, SourceControl},
40 version_strategy::{AnalysisContext, VersionStrategy},
41 workflow_step::{ErrorHandlingStrategy, WorkflowContext, WorkflowMetrics, WorkflowStep},
42};
43
44pub const VERSION: &str = env!("CARGO_PKG_VERSION");
46
47pub type Result<T> = std::result::Result<T, Error>;
49
50#[derive(Debug, thiserror::Error)]
52pub enum Error {
53 #[error("Version error: {0}")]
55 Version(String),
56
57 #[error("Git error: {0}")]
59 Git(String),
60
61 #[error("Registry error: {0}")]
63 Registry(String),
64
65 #[error("Configuration error: {0}")]
67 Config(String),
68
69 #[error("IO error: {0}")]
71 Io(#[from] std::io::Error),
72
73 #[error("Serialization error: {0}")]
75 Serialization(String),
76}