A MoonBit semantic version, version range, and dependency resolution library for package ecosystem tooling.
Dependencies
python scripts/check_contributor_identity.py --ref HEAD
moon info
moon fmt --check
moon check --deny-warn
moon test --deny-warn
moon run cmd/main --deny-warnmoon check --target native --deny-warn
moon test --target native --deny-warn
sh scripts/demo-v0.3.shapp 1.1.0 | core:^1.1.0, logging:1.0.x
core 1.2.0
logging 1.0.0moon run cmd/cli --target native -- \
resolve \
--registry examples/registry.txt \
--root 'app:^1.0.0' \
--format lockmoon run cmd/cli --target native -- \
plan \
--registry examples/registry.txt \
--lock examples/current.lock \
--root 'app:^1.0.0' \
--strategy minimal \
--max-states 100000strategy: minimal-change
changes: 0
target lock:
# MoonDepSolve lock
app 1.0.0
core 1.0.0
logging 1.0.0| Capability | Public API |
|---|---|
| Versions | parse_version, format_version, compare_version |
| Requirements | parse_req, matches |
| Resolution | resolve |
| Registry and lock | parse_registry, format_lock, parse_lock |
| Base errors | format_error |
| Dependency graph | build_dependency_graph, format_graph_text, format_graph_dot |
| Conflict report | build_conflict_report, format_conflict_report |
| Upgrade planning | default_upgrade_options, plan_upgrade, format_upgrade_plan, format_upgrade_error |
pub(all) struct ConflictReport {
kind : ConflictKind
package_name : String
requirement : String?
selected_version : String?
dependency_path : String?
available_versions : Array[Version]
} derive(Eq)pub(all) enum DepError {
InvalidVersion(String, String)
InvalidReq(String, String)
PackageNotFound(String)
NoMatchingVersion(String, String)
VersionConflict(String, String, String, String)
} derive(Eq)pub(all) struct DependencyGraph {
nodes : Array[GraphNode]
edges : Array[DependencyEdge]
} derive(Eq)pub(all) struct PackageVersion {
name : String
version : Version
dependencies : Array[Dependency]
} derive(Eq)pub(all) struct UpgradeChange {
kind : UpgradeChangeKind
package_name : String
from_version : Version?
to_version : Version?
} derive(Eq)pub(all) struct UpgradePlan {
strategy : UpgradeStrategy
resolution : Resolution
changes : Array[UpgradeChange]
} derive(Eq)fn plan_upgrade(root : Array[Dependency], current : Resolution, registry : Registry, options : UpgradeOptions) -> Result[UpgradePlan, UpgradeError]A MoonBit semantic version, version range, and dependency resolution library for package ecosystem tooling.
Dependencies