midenup 1.2.0

The Miden toolchain manager
[workspace]
members = [".", "tools/update-manifest"]

[workspace.package]
version = "1.2.0"
authors = ["Miden contributors"]
repository = "https://github.com/0xMiden/midenup"
homepage = "https://github.com/0xMiden/midenup"
documentation = "https://github.com/0xMiden/midenup"
categories = ["compilers"]
keywords = ["miden"]
license = "MIT"
edition = "2024"
readme = "README.md"

[workspace.dependencies]
anyhow = "1.0"
chrono = { version = "0.4", default-features = false, features = [
    "std",
    "now",
] }
clap = { version = "4.5", features = ["derive", "env"] }
colored = "3.0"
midenup = { version = "1.2.0", path = "." }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"

[package]
name = "midenup"
version.workspace = true
description = "The Miden toolchain manager"
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
categories.workspace = true
keywords.workspace = true
license.workspace = true
edition.workspace = true

[lib]
name = "midenup"
path = "src/lib.rs"

[[bin]]
name = "midenup"
path = "src/main.rs"

[features]
# Compiles the labelled abort points in the publication protocol (see `src/fault.rs`), so that
# restart-recovery can be tested at each of them. Never enabled in a released binary: without it
# there is no way to arm a fault.
fault-injection = []

[dependencies]
anyhow.workspace = true
chrono.workspace = true
clap.workspace = true
colored.workspace = true
curl = "0.4"
dirs = "6.0"
flate2 = { version = "1.1", default-features = false, features = ["rust_backend"] }
# Advisory file locking (`flock`), for the $MIDENUP_HOME lock.
fs4 = { version = "1.1", default-features = false, features = ["sync"] }
heck = "0.5"
petgraph = { version = "0.8", default-features = false, features = ["std", "graphmap"] }
semver = { version = "1.0", features = ["serde"] }
serde.workspace = true
serde_json.workspace = true
serde-untagged = "0.1"
sha2 = "0.11"
tar = { version = "0.4", default-features = false }
thiserror.workspace = true
toml = { version = "1.0", features = ["preserve_order"] }
upon = { version = "0.10", default-features = false, features = [
    "serde",
    "unicode",
] }

[build-dependencies]
cargo_toml = "1.0.0"
serde_json.workspace = true

[dev-dependencies]
libc = "0.2"
tempdir = "0.3"
# A local HTTP server, so download behaviour (status handling, redirects, empty bodies) is tested
# against a real socket rather than a mock of curl.
tiny_http = "0.12"

[profile.release]
opt-level = 2
codegen-units = 1