haz-exec 0.1.0

Async task execution engine for haz.
Documentation
[package]
name                   = "haz-exec"
version                = "0.1.0"
authors.workspace      = true
categories             = ["concurrency", "development-tools"]
description            = "Async task execution engine for haz."
edition.workspace      = true
keywords               = ["haz", "executor", "tasks", "async"]
license.workspace      = true
repository.workspace   = true
rust-version.workspace = true

[lints]
workspace = true

[features]
# Re-export internal scaffolding (currently the `mock_impl`
# module) as `pub` so cross-crate integration tests can build
# scripted scenarios against this crate's public API. The feature
# carries no stability guarantee: items exposed under it MAY
# change between releases without a major-version bump.
test-util = []

[dependencies]
futures    = { version = "0.3", default-features = false, features = [
    "std",
    "async-await",
] }
globset    = "0.4"
haz-cache  = { workspace = true }
haz-dag    = { workspace = true }
haz-domain = { workspace = true }
haz-vfs    = { workspace = true }
num_cpus   = { workspace = true }
snafu      = { workspace = true }
tokio      = { version = "1", default-features = false, features = [
    "io-util",
    "macros",
    "process",
    "rt-multi-thread",
    "sync",
    "time",
] }
tokio-util = { workspace = true }

[target.'cfg(unix)'.dependencies]
nix = { workspace = true }

[dev-dependencies]
nonempty = "0.12"
tempfile = { workspace = true }
tokio    = { version = "1", default-features = false, features = ["test-util"] }

# Integration tests under `tests/` consume the `mock_impl` module
# through haz-exec's public API. That module is gated behind the
# `test-util` feature (see `[features]` above), which is NOT
# active for the bare `cargo test` invocation. The
# `required-features` annotation tells Cargo to skip these test
# binaries when the feature is inactive instead of failing to
# compile. The pre-commit hook runs `cargo test
# --all-targets --all-features`, which activates `test-util` and
# exercises every entry below.
[[test]]
name             = "cross_project_cache"
path             = "tests/cross_project_cache.rs"
required-features = ["test-util"]

[[test]]
name             = "cross_project_mutex"
path             = "tests/cross_project_mutex.rs"
required-features = ["test-util"]

[[test]]
name             = "cross_project_tag_cap"
path             = "tests/cross_project_tag_cap.rs"
required-features = ["test-util"]

[[test]]
name             = "cross_project_live_cancel"
path             = "tests/cross_project_live_cancel.rs"
required-features = ["test-util"]

[[test]]
name             = "cross_project_cycle"
path             = "tests/cross_project_cycle.rs"
required-features = ["test-util"]

[[test]]
name             = "run_graph_end_to_end"
path             = "tests/run_graph_end_to_end.rs"
required-features = ["test-util"]