pubsat 0.1.0

Building blocks for SAT-based dependency resolvers: a node-semver-compatible range parser, an ecosystem-independent constraint vocabulary, and a backend-agnostic SAT problem/solver abstraction with a Varisat backend.
Documentation
# Common developer commands for pubsat.
#
# Run `just` (no args) to see the full recipe list. Recipes that
# wrap cargo pin to `+stable` when CI does too, so a passing local
# `just check` matches what CI will accept — useful because the
# project's default contributor toolchain may be nightly, whose
# rustfmt produces subtly different output than CI's.

# Show this help.
default:
    @just --list

# Run every check CI runs, in CI order.
check: fmt-check clippy test doc

# Format the workspace with stable rustfmt (matches CI).
fmt:
    cargo +stable fmt --all

# Verify formatting without writing changes (mirrors the CI step).
fmt-check:
    cargo +stable fmt --all -- --check

# Lint with all warnings denied (mirrors the CI step).
clippy:
    cargo clippy --all-targets --all-features -- -D warnings

# Run unit + property + doc tests.
test:
    cargo test --all-features

# Build docs with the same flags CI uses.
doc:
    RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features

# Generate an HTML coverage report and open it (cargo-llvm-cov).
coverage:
    cargo llvm-cov --all-features --html --open

# Emit lcov report to lcov.info (what CI uploads to Codecov).
coverage-lcov:
    cargo llvm-cov --all-features --lcov --output-path lcov.info

# Run all criterion benchmarks (slow — for measurement, not routine).
bench:
    cargo bench --all-features

# Regenerate CHANGELOG.md from conventional commits (git-cliff).
changelog:
    git-cliff --output CHANGELOG.md

# Preview the next release's entry without writing to disk.
changelog-preview:
    git-cliff --unreleased

# Verify the crate is publish-ready (no upload).
publish-dry-run:
    cargo publish --dry-run