#![warn(missing_docs)]
#![forbid(unsafe_code)]
#![allow(clippy::multiple_crate_versions)]
pub mod domain;
pub mod traits;
pub use domain::{
changelog::{Changelog, ChangelogEntry, ChangelogSection},
commit::{Commit, CommitHistory, CommitType},
release::{Release, ReleasePlan, ReleaseStatus},
version::{BumpType, SemanticVersion, VersionRecommendation},
workspace::{WorkingTreeStatus, WorkspaceMetadata},
};
pub use traits::{
checkpoint_store::{Checkpoint, CheckpointStore, WorkflowState},
registry::{Registry, RegistryError},
source_control::{ScmError, SourceControl},
version_strategy::{AnalysisContext, VersionStrategy},
workflow_step::{ErrorHandlingStrategy, WorkflowContext, WorkflowMetrics, WorkflowStep},
};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Version error: {0}")]
Version(String),
#[error("Git error: {0}")]
Git(String),
#[error("Registry error: {0}")]
Registry(String),
#[error("Configuration error: {0}")]
Config(String),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Serialization error: {0}")]
Serialization(String),
}