Skip to main content

nova_pm/
lib.rs

1//! The package manager: `nova.toml` parsing, package names, finding a
2//! project, and the package graph (Phase 3.0 and 3.3a; specs
3//! `docs/superpowers/specs/2026-10-07-phase-3-0-foundations-design.md` §5
4//! and §6.1, and
5//! `docs/superpowers/specs/2026-10-08-phase-3-3a-local-packages-design.md`
6//! §3), and the index's offline side: `$NOVA_HOME`, `nova.lock` and the
7//! resolver (spec
8//! `docs/superpowers/specs/2026-10-09-phase-3-3b-index-and-publishing-design.md`
9//! §4, §5). See ARCHITECTURE.md for the crate's place in the pipeline.
10
11mod graph;
12mod home;
13mod index_name;
14mod lock;
15pub mod manifest;
16mod name;
17mod project;
18mod resolve;
19
20pub use graph::{
21    graph, graph_from, graph_with, requirements, Edge, Graph, GraphPackage, Offline, PackageId,
22};
23pub use home::{nova_home, nova_home_from_env, registry_dir};
24pub use index_name::{canonical_index, index_dir_name, local_index_path};
25pub use lock::{parse_lock, Lock, LockedPackage, LOCKFILE};
26pub use manifest::{parse, Dependency, Manifest, Package};
27pub use name::{check_name, import_name, is_portable};
28pub use project::{find_root, real_path, MANIFEST};
29pub use resolve::{resolve, Candidate, IndexView, Requirement, ResolveError, Unlock};