about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2023-02-01T13·27+0100
committerflokli <flokli@flokli.de>2023-02-01T17·11+0000
commitdbabf728b71fd67bd92b63a2dd857b9cde8d3f1c (patch)
treeb7daedff81110f1920a054219cc09d90cbf481c2
parent8ed81cf755bd7129a99c1409dd2da496c13cdaa7 (diff)
feat(views/tvix): add tvix josh workspace r/5811
This provides a trimmed-down version of //tvix, that allows building
tvix without all of the monorepo cloned.

We need to manually vendor in our patch for evans and ``--bytes-as-
base64`, as we don't have our depot overlays available in the josh
workspace.

Fixes https://b.tvl.fyi/issues/247.

Change-Id: I24306b8bb16ebf0df238b8f1eee0d47655a14827
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8000
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
-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 000000000000..28e51c28b4c8
--- /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 000000000000..e0b15c7f30b5
--- /dev/null
+++ b/views/tvix/workspace.josh
@@ -0,0 +1,5 @@
+:/third_party:[
+    ::nixpkgs/
+    ::sources/
+]
+:/tvix