[package]
name = "netsuke-build"
version = "0.1.0-beta2"
edition = "2024"
include = [
"/src/**",
"/locales/**",
"/Cargo.toml",
"/README.md",
"/LICENSE",
"/build.rs",
"/build_l10n_audit/**",
]
license = "ISC"
readme = "README.md"
description = "A YAML-powered Ninja/Jinja hybrid build system."
authors = ["Payton McIntosh <pmcintosh@df12.net>"]
homepage = "https://df12.studio/netsuke"
repository = "https://github.com/leynos/netsuke"
documentation = "https://df12.studio/netsuke/docs/"
keywords = ["build", "ninja", "jinja", "yaml", "automation"]
categories = ["command-line-utilities", "development-tools::build-utils"]
[lib]
name = "netsuke"
[[bin]]
name = "netsuke"
path = "src/main.rs"
[package.metadata.ortho_config]
root_type = "netsuke::cli::ReleaseHelpCli"
locales = [
"ar",
"cs",
"cy",
"da",
"de",
"el",
"en-GB",
"en-US",
"es-419",
"es-ES",
"fa",
"fi",
"fr",
"gd",
"he",
"hi",
"hu",
"id",
"it",
"ja",
"ko",
"nb",
"nl",
"pl",
"pt-BR",
"pt-PT",
"ro",
"ru",
"sv",
"th",
"tr",
"uk",
"vi",
"zh-Hans",
"zh-Hant",
]
[package.metadata.kani.flags]
default-unwind = "6"
[lints]
workspace = true
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ version }-{ target }.tar.gz"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[features]
default = []
legacy-digests = ["sha1", "md5"]
[dependencies]
clap = { version = "4.5.0", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde-saphyr = "0.0.6"
minijinja = { version = "2.12.0", features = ["loader"] }
cap-primitives = "3.4.4"
cap-std = { version = "3.4.4", features = ["fs_utf8"] }
fs4 = "1.1.0"
camino = "1.2.0"
semver = { version = "1", features = ["serde"] }
anyhow = "1"
indicatif = "0.18.4"
thiserror = "1"
miette = { version = "7.6.0", features = ["fancy"] }
digest = "0.11"
sha2 = "0.11"
sha1 = { version = "0.11", optional = true }
md5 = { package = "md-5", version = "0.11", optional = true }
itoa = "1"
itertools = "0.12"
indexmap = { version = "2.5", features = ["serde"] }
lru = "0.18"
glob = "0.3.3"
hashbrown = "0.17.1"
walkdir = "2.5"
metrics = "0.24.6"
monotony = "0.1.0"
metrics-util = { version = "0.20", features = ["debugging"] }
mockable = "3.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["fmt"] }
serde_json = { version = "1", features = ["preserve_order"] }
serde_json_canonicalizer = "0.3"
tempfile = "3.8.0"
shell-quote = { version = "0.7.2", default-features = false, features = ["sh"] }
shlex = "2.0.1"
time = { version = "0.3.44", features = ["formatting", "macros", "parsing", "serde"] }
ureq = { version = "2.10.5" }
wait-timeout = "0.2"
url = "^2.5.0"
ortho_config = { version = "0.9.0", features = ["serde_json"] }
sys-locale = "0.3.2"
unicode-width = "0.2.1"
[build-dependencies]
cap-std = "3.4.4"
clap = { version = "4.5.0", features = ["derive"] }
clap_complete = "4.5.0"
clap_mangen = "0.3.0"
ortho_config = { version = "0.9.0", features = ["serde_json"] }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["preserve_order"] }
thiserror = "1"
time = { version = "0.3.44", features = ["formatting"] }
tracing = "0.1"
[dev-dependencies]
rstest = "0.26.1"
rstest-bdd = "0.5.0"
rstest-bdd-macros = { version = "0.5.0", features = ["strict-compile-time-validation"] }
tokio = { version = "1", features = ["macros", "rt-multi-thread"], default-features = false }
insta = { version = "1", features = ["yaml", "filters"] }
assert_cmd = "2.0.0"
predicates = "3"
mockable = { version = "3.0", features = ["mock"] }
monotony = { version = "0.1.0", features = ["test-util"] }
serial_test = "3"
mockall = "0.11"
camino = "1.2.0"
test_support = { path = "test_support" }
strip-ansi-escapes = "0.2"
toml = "0.8"
serde_yaml = "0.9"
proptest = "1.11.0"
googletest = "0.14.3"
pretty_assertions = "1.4.1"
fluent-bundle = "0.16.0"
[target.'cfg(unix)'.dev-dependencies]
rustix = { version = "1.0.8", features = ["fs"] }
[workspace]
members = ["test_support"]
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -1 }
allow_attributes = "deny"
allow_attributes_without_reason = "deny"
blanket_clippy_restriction_lints = "deny"
cognitive_complexity = "deny"
disallowed_methods = "deny"
needless_pass_by_value = "deny"
implicit_hasher = "deny"
missing_assert_message = "deny"
dbg_macro = "deny"
print_stdout = "deny"
print_stderr = "deny"
unwrap_used = "deny"
expect_used = "deny"
indexing_slicing = "deny"
string_slice = "deny"
integer_division = "deny"
integer_division_remainder_used = "deny"
panic_in_result_fn = "deny"
unreachable = "deny"
host_endian_bytes = "deny"
little_endian_bytes = "deny"
big_endian_bytes = "deny"
let_underscore_must_use = "deny"
or_fun_call = "deny"
option_if_let_else = "deny"
self_named_module_files = "deny"
shadow_reuse = "deny"
shadow_same = "deny"
shadow_unrelated = "deny"
str_to_string = "deny"
string_lit_as_bytes = "deny"
try_err = "deny"
unneeded_field_pattern = "deny"
use_self = "deny"
float_arithmetic = "deny"
cast_possible_truncation = "deny"
cast_possible_wrap = "deny"
cast_precision_loss = "deny"
lossy_float_literal = "deny"
missing_const_for_fn = "deny"
must_use_candidate = "deny"
unused_async = "deny"
missing_panics_doc = "deny"
error_impl_error = "deny"
result_large_err = "deny"
[workspace.lints.rust]
unknown_lints = "deny"
renamed_and_removed_lints = "deny"
unsafe_code = "forbid"
missing_docs = "deny"
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(kani)", "cfg(dylint_lib, values(any()))"] }
[workspace.lints.rustdoc]
missing_crate_level_docs = "deny"
broken_intra_doc_links = "deny"
private_intra_doc_links = "deny"
bare_urls = "deny"
invalid_html_tags = "deny"
invalid_codeblock_attributes = "deny"
unescaped_backticks = "deny"