worktrunk 0.1.4

A Git worktree manager for trunk-based development
Documentation
[package]
name = "worktrunk"
version = "0.1.4"
edition = "2024"
build = "build.rs"
repository = "https://github.com/max-sixty/worktrunk"
description = "A Git worktree manager for trunk-based development"
license = "MIT OR Apache-2.0"

[package.metadata.release]
# Allow releases from any branch (GitHub Actions uses detached HEAD)
allow-branch = ["*"]
consolidate-commits = true

[features]
# Enable testing for shells that require extra installation steps (nushell, powershell, elvish, xonsh, oil)
tier-2-integration-tests = []
# Enable syntax highlighting for bash commands in output (requires tree-sitter)
# This is optional to avoid C compilation issues on some platforms
default = ["syntax-highlighting"]
syntax-highlighting = ["dep:tree-sitter", "dep:tree-sitter-bash", "dep:tree-sitter-highlight"]

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

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

[dependencies]
anstream = "0.6"
anstyle = "1.0"
askama = { version = "0.14", default-features = false, features = ["derive", "std"] }
chrono = "0.4"
clap = { version = "4.5", features = ["derive"] }
clap_complete = "4.5"
config = "0.15"
directories = "6.0"
env_logger = "0.11"
indexmap = { version = "2.8", features = ["serde"] }
etcetera = "0.11"
log = "0.4"
minijinja = "2.12"
rayon = "1.11"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
shell-escape = "0.1"
shellexpand = "3.1"
strip-ansi-escapes = "0.2"
strum = { version = "0.27", features = ["derive"] }
synoptic = "2"
terminal_size = "0.4"
toml = { version = "0.9", features = ["preserve_order"] }
# Using 0.20.x due to linking issues in 0.25.x with le16toh/be16toh on some platforms
# See: https://github.com/tree-sitter/tree-sitter/issues/4186
# All three crates must use the same version series to avoid native library conflicts
# These are optional dependencies controlled by the "syntax-highlighting" feature.
# To build without C compilation requirements, use: cargo install worktrunk --no-default-features
tree-sitter = { version = "0.20", optional = true }
tree-sitter-bash = { version = "0.20", optional = true }
tree-sitter-highlight = { version = "0.20", optional = true }
unicode-width = "0.2"

[target.'cfg(unix)'.dependencies]
skim = "0.20"

[build-dependencies]
vergen-gitcl = { version = "1.0.8", features = ["build"] }

[dev-dependencies]
insta = { version = "1.43", features = ["yaml", "redactions", "filters"] }
insta-cmd = "0.6"
assert_cmd = "2.0"
rstest = "0.26"
tempfile = "3.23"
toml = "0.9"
criterion = "0.7"
regex = "1.12"
portable-pty = "0.9"

[[bench]]
name = "completion"
harness = false

[[bench]]
name = "list"
harness = false

[lints.rust]
unsafe_code = "forbid"

# The profile that 'dist' will build with
[profile.dist]
inherits = "release"
lto = "thin"