about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--views/tvix/default.nix36
-rw-r--r--views/tvix/workspace.josh5
2 files changed, 41 insertions, 0 deletions
diff --git a/views/tvix/default.nix b/views/tvix/default.nix
new file mode 100644
index 0000000000..28e51c28b4
--- /dev/null
+++ b/views/tvix/default.nix
@@ -0,0 +1,36 @@
+# Externally importable TVL depot stack. This is intended to be called
+# with a supplied package set, otherwise the package set currently in
+# use by the TVL depot will be used.
+#
+{ pkgs ? (import ./nixpkgs {
+    depotOverlays = false;
+    depot.third_party.sources = import ./sources { };
+  })
+, ...
+}:
+
+let
+  # `Call $methodName --bytes-as-base64` support for evans
+  evans = pkgs.evans.overrideAttrs (old: {
+    patches = old.patches or [ ] ++ [
+      (pkgs.fetchpatch {
+        url = "https://github.com/ktr0731/evans/pull/611/commits/f2109627c0d20588980fe6fd6348d223dbdf7c33.patch";
+        hash = "sha256-ff8drvAYwQvHeymaHEruvwDYynClpzPM5lrB7IeQHBs=";
+      })
+    ];
+  });
+in
+pkgs.mkShell {
+  name = "tvix-rust-dev-env";
+  packages = [
+    pkgs.buf-language-server
+    pkgs.cargo
+    pkgs.clippy
+    pkgs.rust-analyzer
+    pkgs.rustc
+    pkgs.rustfmt
+    pkgs.protobuf
+
+    evans
+  ];
+}
diff --git a/views/tvix/workspace.josh b/views/tvix/workspace.josh
new file mode 100644
index 0000000000..e0b15c7f30
--- /dev/null
+++ b/views/tvix/workspace.josh
@@ -0,0 +1,5 @@
+:/third_party:[
+    ::nixpkgs/
+    ::sources/
+]
+:/tvix