hephaestus/crates/heph-core/src/lib.rs
Erich Blume 598dc59580
Some checks failed
Build / validate (pull_request) Has been cancelled
fix: --version reports release version + build SHA; release tags a version-bump commit
heph-core gains a build.rs that captures the short git SHA and a
`heph_core::VERSION` const ("<crate-version> (<sha>)"); heph and hephd use it
for clap's --version. The crate version stays sourced from Cargo.toml.

release.yaml now bumps the workspace version into Cargo.toml + Cargo.lock on a
commit that only the tag points at, tags it manually, and pushes just the tag —
so cargo install --git --tag vX.Y.Z reports the real version while main stays at
0.0.0. The changelog commit moved ahead of the tag so the release includes its
own changelog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-04 09:43:10 -07:00

47 lines
1.7 KiB
Rust

//! `heph-core` — the Hephaestus core library.
//!
//! Data model, the [`Store`](store::Store) abstraction + local SQLite store,
//! query engine, markdown extraction, recurrence, and (later) the sync engine.
//! See `docs/reference/tech-spec.md` for the canonical specification.
//!
//! The library is synchronous and side-effect-light. All time enters through an
//! injected [`Clock`](clock::Clock) (tech-spec §2) so ranking and recurrence are
//! deterministic.
/// Full version string for the CLI surfaces: `"<crate-version> (<git-sha>)"`,
/// e.g. `"1.0.0 (ab6701d12)"`. The version is the workspace version baked into
/// the release tag's manifest (`main` stays `0.0.0`); the short SHA is captured
/// at build time by `build.rs`. Used by `heph`/`hephd` for `--version`.
pub const VERSION: &str = concat!(env!("CARGO_PKG_VERSION"), " (", env!("HEPH_BUILD_SHA"), ")");
pub mod clock;
mod crdt;
pub mod error;
pub mod export;
pub mod extract;
pub mod filter;
pub mod frontmatter;
pub mod hlc;
pub mod model;
pub mod oplog;
pub mod ranking;
pub mod recurrence;
pub mod sqlite;
pub mod store;
pub mod wikilink;
pub use clock::{Clock, FixedClock};
pub use error::{Error, Result};
pub use export::{render as render_export, ExportFile, NodeExport};
pub use extract::{extract, ContextItem, Extraction};
pub use filter::{builtin as builtin_view, ListFilter, ViewSpec, BUILTIN_VIEWS};
pub use hlc::{Hlc, HlcClock};
pub use model::{
deterministic_id, Attention, Conflict, Health, Link, LinkType, NewNode, NewTask, Node,
NodeKind, SchedulePatch, SyncCursors, Task, TaskState,
};
pub use oplog::Op;
pub use ranking::{rank, Dimension, RankedTask, RANKING};
pub use recurrence::{next_occurrence, reset_checkboxes};
pub use sqlite::LocalStore;
pub use store::Store;