feat(views/tvix): add tvix josh workspace

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
This commit is contained in:
Florian Klink 2023-02-01 14:27:41 +01:00 committed by flokli
parent 8ed81cf755
commit dbabf728b7
2 changed files with 41 additions and 0 deletions

36
views/tvix/default.nix Normal file
View file

@ -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
];
}

View file

@ -0,0 +1,5 @@
:/third_party:[
::nixpkgs/
::sources/
]
:/tvix