particle-os-cli/Cargo.toml
2025-05-09 17:19:19 -04:00

168 lines
4.2 KiB
TOML

[workspace]
members = ["utils", "recipe", "template", "process"]
[workspace.package]
description = "A CLI tool built for creating Containerfile templates for ostree based atomic distros"
edition = "2024"
repository = "https://github.com/blue-build/cli"
license = "Apache-2.0"
categories = ["command-line-utilities"]
version = "0.9.12"
[workspace.dependencies]
bon = "3"
cached = "0.55"
chrono = "0.4"
clap = "4"
colored = "2"
comlexr = "1"
indexmap = { version = "2", features = ["serde"] }
indicatif = { version = "0.17", features = ["improved_unicode"] }
log = "0.4"
miette = "7"
nix = { version = "0.29" }
oci-distribution = { version = "0.11", default-features = false }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
rstest = "0.18"
semver = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = { version = "0.0.12", package = "serde_yml" }
syntect = { version = "5", default-features = false, features = ["default-fancy"] }
tempfile = "3"
tokio = { version = "1", features = ["rt", "rt-multi-thread"] }
users = "0.11"
uuid = { version = "1", features = ["v4"] }
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
correctness = "deny"
suspicious = "deny"
perf = "deny"
style = "deny"
nursery = "deny"
pedantic = "deny"
module_name_repetitions = { level = "allow", priority = 1 }
doc_markdown = { level = "allow", priority = 1 }
[package]
name = "blue-build"
build = "build.rs"
version.workspace = true
edition.workspace = true
description.workspace = true
repository.workspace = true
license.workspace = true
[package.metadata.release]
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
pre-release-replacements = [
{ file = "install.sh", search = "VERSION=v\\d+\\.\\d+\\.\\d+", replace = "VERSION=v{{version}}" },
{ file = "flake.nix", search = "version = \"v\\d+\\.\\d+\\.\\d+\";", replace = "version = \"v{{version}}\";" }
]
[dependencies]
blue-build-recipe = { version = "=0.9.12", path = "./recipe" }
blue-build-template = { version = "=0.9.12", path = "./template" }
blue-build-utils = { version = "=0.9.12", path = "./utils" }
blue-build-process-management = { version = "=0.9.12", path = "./process" }
clap-verbosity-flag = "3"
clap_complete = "4"
clap_complete_nushell = "4"
fuzzy-matcher = "0.3"
jsonschema = { version = "0.30", optional = true }
open = "5"
os_info = "3"
rayon = { version = "1", optional = true }
regex = { version = "1", optional = true }
requestty = { version = "0.5", features = ["macros", "termion"] }
shadow-rs = { version = "1", default-features = false }
thiserror = "2"
urlencoding = "2"
yaml-rust2 = { version = "0.10", optional = true }
cached.workspace = true
clap = { workspace = true, features = ["derive", "cargo", "unicode", "env"] }
colored.workspace = true
comlexr.workspace = true
indexmap.workspace = true
indicatif.workspace = true
log.workspace = true
miette = { workspace = true, features = ["fancy"] }
oci-distribution.workspace = true
reqwest.workspace = true
semver.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_yaml.workspace = true
syntect = { workspace = true, optional = true }
tempfile.workspace = true
tokio = { workspace = true, optional = true }
bon.workspace = true
users.workspace = true
[features]
# Top level features
default = [
"v0_9_0"
]
# v0.9.0 features
v0_9_0 = [
"init",
"stages",
"copy",
"iso",
"switch",
"login",
"validate",
"sigstore",
"multi-recipe",
"prune",
"rechunk",
]
init = []
stages = ["blue-build-recipe/stages"]
copy = ["blue-build-recipe/copy"]
multi-recipe = ["dep:rayon", "indicatif/rayon"]
iso = []
switch = []
sigstore = ["blue-build-process-management/sigstore"]
login = []
validate = [
"dep:jsonschema",
"dep:rayon",
"dep:tokio",
"dep:yaml-rust2",
"dep:syntect",
"dep:regex",
"cached/async",
"blue-build-process-management/validate"
]
prune = [
"blue-build-process-management/prune"
]
rechunk = [
"blue-build-process-management/rechunk"
]
[dev-dependencies]
rusty-hook = "0.11"
rstest.workspace = true
[build-dependencies]
shadow-rs = "1"
[lints]
workspace = true
[profile.release]
lto = true
codegen-units = 1
strip = "none"
debug = false
panic = "abort"