willbe 0.35.0

Utility to publish multi-crate and multi-workspace environments and maintain their consistency.
Documentation
# module/experimental/willbe/Cargo.toml
[package]
name = "willbe"
version = "0.35.0"
edition = "2021"
authors = [
  "Kostiantyn Mysnyk <wandalen@obox.systems>",
  "Dmytro Kryvoruchko <dmytro.kr@obox.systems>",
]
license = "MIT"
readme = "readme.md"
documentation = "https://docs.rs/willbe"
repository = "https://github.com/Wandalen/wTools/tree/master/module/experimental/willbe"
homepage = "https://github.com/Wandalen/wTools/tree/master/module/experimental/willbe"
description = """
Utility to publish multi-crate and multi-workspace environments and maintain their consistency.
"""
categories = [ "algorithms", "development-tools" ]
keywords = [ "fundamental", "general-purpose" ]
default-run = "will"
dependencies = {}
dev-dependencies = {}
build-dependencies = {}

[lints]
workspace = true

[package.metadata.docs.rs]
features = [ "full" ]
all-features = false

[features]
default = [
  "enabled",
  "progress_bar",
]
full = [
  "enabled",
  "progress_bar",
]
enabled = [
  "crates_tools/enabled",
  "error_tools/enabled",
  "former/enabled",
  "iter_tools/enabled",
  "mod_interface/enabled",
  "wca/enabled",
  "pth/enabled",
  "process_tools/enabled",
  "data_type/enabled",
  "collection_tools/enabled",
  "macro_tools/enabled",
]

tracing = [ "dep:tracing", "dep:tracing-subscriber" ]
progress_bar = [ "dep:indicatif" ]

[dependencies]

## external
cargo_metadata = "~0.18.1"
convert_case = "0.6.0"
flate2 = "~1.0"
globwalk = "~0.8"
toml_edit = "~0.14"
petgraph = "~0.6"
#ptree = "~0.4"
rayon = "1.8.0"
semver = "~1.0.0"
similar = "~2.4"
regex = "1.10.2"
#sha-1 = "~0.10"
tar = "~0.4"
handlebars = "4.5.0"
ureq = "~2.9"
colored = "2.1.0"
duct = "0.13.7"
tracing = { version = "0.1", features = [ "log-always" ], optional = true }
tracing-subscriber = { version = "0.3", optional = true }
indicatif = { version = "0.17", optional = true }
prettytable-rs = "0.10"
serde_json = "1.0" # for CargoMetadata::Package::metadata (need serde_json::Value)
serde = "1.0" # for CargoMetadata::Package
parse-display = "0.9" # need because derive_tools don't reexport this correctly
walkdir = "2.3"
camino = "1.1.7" # UTF-8 paths (Utf8Path, Utf8PathBuf)
rustdoc-md = "0.1.0"
assert_fs = "1.1.3"

## internal
# qqq : optimize features
crates_tools = { workspace = true }
error_tools = { workspace = true, features = [ "default", "error_typed", "error_untyped" ] }
genfile_core = { workspace = true, features = [ "default" ] }
former = { workspace = true, features = [ "default" ] }
component_model = { workspace = true, features = [ "default" ] }
iter_tools = { workspace = true, features = [ "default" ] }
mod_interface = { workspace = true, features = [ "default" ] }
wca = { workspace = true, features = [ "default" ] }
pth = { workspace = true, features = [ "default", "path_utf8", "path_unique_folder_name" ] }
process_tools = { workspace = true, features = [ "default" ] }
derive_tools = { workspace = true, features = [ "default" ] }  # derive_tools is a basic dependency required for compilation.
data_type = { workspace = true, features = [ "either" ] }
collection_tools = { workspace = true, features = [ "collection_constructors", "collection_into_constructors" ] }
macro_tools = { workspace = true, features = [ "default" ] }

[dev-dependencies]
test_tools = { workspace = true, features = [ "full" ] }
assert_fs = "1.0"
serde_yaml = "0.9"
serde_json = "1.0.114"
serde = "1.0"
assert_cmd = "2.0"
predicates = "3.1.0"