[workspace] resolver = "2" members = [ "crates/edn", "crates/core-traits", "crates/core", "crates/mino", "crates/mino/vendor/gc", "crates/mino/vendor/gc_derive", "crates/script", "crates/sqlite/*", "crates/pg/pg_mentat", "crates/pg/mentatd", "crates/duckdb", # Scale-benchmark driver: a member (shares Cargo.lock) but NOT a default member. "benchmarks/scale/runner", ] default-members = [ "crates/edn", "crates/core-traits", "crates/core", "crates/mino", "crates/script", # Explicit, not `crates/sqlite/*`: that glob would pull in crates/sqlite/ext # (the SQLite loadable extension), whose `mentat/mino` feature would then be # unified into every plain root build/test. Build it with `-p mentat_sqlite_ext`. "crates/sqlite/cli", "crates/sqlite/db", "crates/sqlite/db-traits", "crates/sqlite/ffi", "crates/sqlite/mentat", "crates/sqlite/public-traits", "crates/sqlite/query-algebrizer", "crates/sqlite/query-algebrizer-traits", "crates/sqlite/query-projector", "crates/sqlite/query-projector-traits", "crates/sqlite/query-pull", "crates/sqlite/query-pull-traits", "crates/sqlite/query-sql", "crates/sqlite/sql", "crates/sqlite/sql-traits", "crates/sqlite/transaction", "crates/pg/mentatd", ] # crates/sqlite/* is a glob; fixtures/ is shared test data, not a crate. exclude = ["crates/sqlite/fixtures"] [workspace.package] version = "1.10.1" edition = "2021" # ponytail: plan §1.14 intends pinned 1.98; MSRV floor stays 1.88 (plan). The # CI host (EC2) runs 1.90 via rustup, so rust-toolchain.toml pins 1.90. rust-version = "1.88" license = "Apache-2.0" repository = "https://codeberg.org/gregburd/mentat" authors = [ "Richard Newman ", "Nicholas Alexander ", "Victor Porof ", "Jordan Santell ", "Joe Walker ", "Emily Toop ", "Grisha Kruglov ", "Kit Cambridge ", "Edouard Oger ", "Thom Chiovoloni ", "Gregory Burd ", ] [workspace.dependencies] # § 1.13 — one version per shared third-party dep (higher of each pair). itertools = "0.15" ordered-float = "5.3" uuid = "1.25" chrono = "0.4.45" peg = "0.8.6" pretty = "0.12.5" indexmap = "2.14" bytes = "1.12" serde = "1.0.229" thiserror = "2.0" rusqlite = "0.40" mino-rs = { path = "crates/mino" } [workspace.lints.clippy] # Panic prevention (to be promoted to deny as code is cleaned up) unwrap_used = "allow" expect_used = "allow" panic = "allow" panic_in_result_fn = "allow" unimplemented = "deny" # Code hygiene dbg_macro = "deny" todo = "deny" print_stdout = "deny" print_stderr = "deny" # Safety await_holding_lock = "deny" large_futures = "deny" exit = "deny" mem_forget = "deny" # Temporarily allowed (pre-existing, non-safety, to be fixed incrementally) type_complexity = "allow" needless_borrow = "allow" needless_pass_by_value = "allow" redundant_closure_for_method_calls = "allow" unnecessary_wraps = "allow" manual_let_else = "allow" single_match_else = "allow" too_many_lines = "allow" too_many_arguments = "allow" get_first = "allow" collapsible_match = "allow" collapsible_else_if = "allow" single_match = "allow" cloned_ref_to_slice_refs = "allow" unnecessary_cast = "allow" collapsible_str_replace = "allow" needless_range_loop = "allow" manual_strip = "allow" unnecessary_map_or = "allow" useless_format = "allow" [profile.release] opt-level = 3 lto = "fat" codegen-units = 1 [profile.release-dev] inherits = "release" lto = "thin" codegen-units = 16