about summary refs log tree commit diff
path: root/tvix/Cargo.toml
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/Cargo.toml')
-rw-r--r--tvix/Cargo.toml51
1 files changed, 40 insertions, 11 deletions
diff --git a/tvix/Cargo.toml b/tvix/Cargo.toml
index 8b0fbd846a..847d9aceec 100644
--- a/tvix/Cargo.toml
+++ b/tvix/Cargo.toml
@@ -1,14 +1,43 @@
-[package]
-name = "tvix"
-version = "0.1.0"
-edition = "2021"
+# This Cargo file is a workspace configuration as per
+# https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
+#
+# We add this file to get a coherent set of dependencies across Tvix
+# crates by sharing a Cargo.lock. This is necessary because of the
+# currently limited support for Rust builds in Nix.
+#
+# Note that this explicitly does *not* mean that //tvix should be
+# considered "one project": This is simply a workaround for a
+# technical limitation and it should be our aim to remove this
+# workspace file and make the subprojects independent.
+#
+# Note also that CI targets for actual projects should *not* be tied
+# to //tvix, but to its subprojects. A potential file at
+# //tvix/default.nix should likely *not* expose anything other than
+# extra steps or other auxiliary targets.
 
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+[workspace]
+resolver = "2"
 
-[dependencies.clap]
-version = "3.0.5"
-[dependencies.tempfile]
-version = "3.2.0"
+members = [
+  "build",
+  "castore",
+  "cli",
+  "eval",
+  "eval/builtin-macros",
+  "glue",
+  "nix-compat",
+  "serde",
+  "store",
+]
 
-[[bin]]
-name = "nix-store"
+[workspace.lints.clippy]
+# Allow blocks_in_conditions due to false positives with #[tracing::instrument(…)]:
+# https://github.com/rust-lang/rust-clippy/issues/12281
+blocks_in_conditions = "allow"
+
+# Add a profile to all targets that enables release optimisations, but
+# retains debug symbols. This is great for use with
+# benchmarking/profiling tools.
+[profile.release-with-debug]
+inherits = "release"
+debug = true