[workspace] members = ["utils", "recipe", "template", "process"] [workspace.package] description = "A CLI tool built for creating Containerfile templates for ostree based atomic distros" edition = "2021" repository = "https://github.com/blue-build/cli" license = "Apache-2.0" categories = ["command-line-utilities"] version = "0.9.3" [workspace.dependencies] bon = "3" cached = "0.53" chrono = "0.4" clap = "4" colored = "2" comlexr = "1" indexmap = { version = "2", features = ["serde"] } indicatif = { version = "0.17", features = ["improved_unicode"] } log = "0.4" nix = { version = "0.29" } oci-distribution = { version = "0.11", default-features = false } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] } miette = "7" 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}}" } ] [dependencies] blue-build-recipe = { version = "=0.9.3", path = "./recipe" } blue-build-template = { version = "=0.9.3", path = "./template" } blue-build-utils = { version = "=0.9.3", path = "./utils" } blue-build-process-management = { version = "=0.9.3", path = "./process" } clap-verbosity-flag = "3" clap_complete = "4" clap_complete_nushell = "4" fuzzy-matcher = "0.3" jsonschema = { version = "0.28", 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 = "0.38", default-features = false } thiserror = "2" urlencoding = "2" yaml-rust2 = { version = "0.9", 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", "syntect-highlighter"] } nix = { workspace = true, features = ["user"] } 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 = { version = "0.38", default-features = false } [lints] workspace = true [profile.release] lto = true codegen-units = 1 strip = "none" debug = false panic = "abort"