Commit graph

2945 commits

Author SHA1 Message Date
Vova Kryachko
ccecede70b feat(nix-daemon): Implement stubs for QueryReferrers, QueryRealizations
These are required to support certain nix's local-overlay store
operations, it's safer to return empty results for these
operations than failing with "operation not implemented" errors.

Change-Id: Ic9b69d75dd52af5a826bfb6a8b283b082a0f6bcf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12766
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-14 13:39:48 +00:00
Vova Kryachko
fa9c067dc9 feat(nix-daemon): Implement more nix daemon operations.
In particular QueryPathFromHashPart, QueryValidPaths, QueryValidDerivers

Change-Id: Ie6ad83cec5ce9580044b85e201e4e23394f87075
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12762
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: flokli <flokli@flokli.de>
2024-11-13 21:21:57 +00:00
Vova Kryachko
6aada91062 feat(tvix-store): Improve tvix-store copy.
This change contains 2 improvements to the tvix-store copy command:

1. Allows reading the reference graph from stdin, using `-` argument
2. Supports json representation produced by `nix path-info --json`
   command.

In general it makes is easier and faster to import arbitrary closures
from an existing nix store with e.g the following command:

```
nix path-info ./result --json --closure-size --recursive | \
  jq -s '{closure: add}' | \
  tvix-store copy -
```

Change-Id: Id6eea2993da233ecfbdc186f1a8c37735b686264
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12765
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-12 16:43:21 +00:00
Florian Klink
b1764e1109 refactor(nix-compat/nix_daemon): drop Sync requirement for StorePath
By manually writing out the async function, and moving the owned String
we can avoid for S to be Sync in the NixSerialize for StorePath<S> impl.

Co-Authored-By: edef@edef.eu
Change-Id: I8427b38d2bd61de2818088728cbad79cda69d17d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12764
Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com>
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: edef <edef@edef.eu>
Tested-by: BuildkiteCI
2024-11-12 14:05:24 +00:00
Florian Klink
0b8ec03797 docs(tvix): document Store configuration
This describes the current composition system used for BlobService /
DirectoryService / PathInfoService, why it's hidden, how to expose it,
and adds some common examples to explain it.

Change-Id: I2ce7da40992cc988947c3e924499f8157c5e4937
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12749
Tested-by: BuildkiteCI
Reviewed-by: yuka <yuka@yuka.dev>
2024-11-12 14:05:16 +00:00
Florian Klink
1428ea4e19 refactor(nix-compat/store_path): use AsRef<str>
Implement PartialEq/Eq ourselves instead of deriving, by proxying to
name.as_ref() (and digest of course).

Also implement Hash on our own, clippy doesn't like this to be derived,
while Eq/PartialEq is not.

Change-Id: Idbe289a23ba3bc8dabf893d4d8752792ae2778c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12744
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Autosubmit: flokli <flokli@flokli.de>
2024-11-12 11:55:48 +00:00
Florian Klink
1474471327 docs(tvix/eval): update string context document
NixString doesn't contain a `HashSet<BuildReference>` anymore, there's a
more packed internal data structure. We don't need to be overly specific
in the docs, just say we expose an API.

Change-Id: I13380c49293f9a86d1916909fdfeefbe64d9024b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12755
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: edef <edef@edef.eu>
2024-11-12 11:55:36 +00:00
Florian Klink
2af30c8c7f refactor(tvix/eval): rm From<(T, Option<Box<NixContext>>)> for NixString
This conversion was a bit too magic, and we can just use
`NixString::new_context_from` without having to worry about the
distinction between an empty context or no context, as
NixString::new_context_from already deals with that internally.

Change-Id: I3e5d57ecfa0f7456aa6c526863e49f2523afaec3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12754
Tested-by: BuildkiteCI
Reviewed-by: edef <edef@edef.eu>
Autosubmit: flokli <flokli@flokli.de>
2024-11-12 11:16:08 +00:00
Florian Klink
1bc092b063 refactor(tvix/castore/digest): stop using bytes::Bytes internally
Change-Id: I07a13da0ae4aee4298025fca4345d738f40cfe5a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12757
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Reviewed-by: edef <edef@edef.eu>
Tested-by: BuildkiteCI
2024-11-12 11:09:11 +00:00
Florian Klink
ef3a51b38d docs(tvix): document more components
Change-Id: I0e75445a34d3ee11e535e6948c6d762f4fb15105
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12760
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Domen Kožar <domen@cachix.org>
Reviewed-by: flokli <flokli@flokli.de>
2024-11-12 09:42:50 +00:00
Vova Kryachko
9d114bf040 feat(nix-daemon): Implement QueryPathInfo and IsValidPath.
Change-Id: Ia601e2eae24a2bc13d8851b2e8ed9d6c1808bb35
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12745
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: Vladimir Kryachko <v.kryachko@gmail.com>
Tested-by: BuildkiteCI
2024-11-12 03:06:54 +00:00
Vova Kryachko
b564ed9d43 feat(nix-daemon): Implement client handler.
This change includes only the basic nix handshake protocol handling and
sets up a client session. The only supported operation at this point is
SetOptions.

Additional operations will be implemented in subsequent cls.

Change-Id: I3eccd9e0ceb270c3865929543c702f1491768852
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12743
Autosubmit: Vladimir Kryachko <v.kryachko@gmail.com>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: Brian Olsen <me@griff.name>
2024-11-12 02:15:04 +00:00
Florian Klink
72bc4e0270 fix(tvix): use tracing::field::Empty for all indicatif.pb_show
This prevents the field from getting printed to stderr, apparently.

Change-Id: Ia9860e4ff37224003154db88ee5f83103060e626
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12756
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
2024-11-12 00:28:32 +00:00
Florian Klink
0c5ad94914 feat(tvix/nar-bridge): make root_nodes_cache_capacity configurable
Allow this to be overridden via the CLI, also getting rid of the unsafe
because this doesn't need to be const anymore.

Change-Id: I5e51b52e42522a21f59ef69628b464477c0764d1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12753
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
2024-11-12 00:27:31 +00:00
Florian Klink
85de9b8dab feat(tvix/nar-bridge): avoid unnecessary NAR uploads
When uploading a Store Path to a Nix HTTP Binary Cache, Nix first does a
HEAD request for $outhash.narinfo, and if that's not found, for
`{narhash}.nar[.compression_suffix]`.

If the NAR is already present, only the NARInfo is uploaded.

Even though we don't have a service allowing to globally look up from
NARHash to root node, `root_nodes` in `AppState` at least contains
recently uploaded NARHashes.

If we find it in there, we can prevent Nix unnecessarily uploading NARs
if the same contents have already been recently uploaded.
We also promote this key, chances are high Nix will subsequently upload
a NARInfo referring to this NARHash.

Change-Id: I34e3fd9b334b695abe945e64cd291e30f303c2a2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12752
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Autosubmit: flokli <flokli@flokli.de>
2024-11-12 00:26:30 +00:00
Florian Klink
8400e523ce refactor(tvix/castore/blob): use near/far for CombinedBlobService
Align this naming with CachePathInfoService.

Change-Id: Ib9a0d73b8ca57a93e9fc027ae907fc6ed370842a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12751
Tested-by: BuildkiteCI
Reviewed-by: yuka <yuka@yuka.dev>
2024-11-11 18:46:33 +00:00
Florian Klink
a218f421b2 refactor(tvix/store): move Cache to cache mod
This being in combinators makes it harder to find.

Change-Id: If7984bdbd43f164c670548639bb4846d859f6695
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12750
Reviewed-by: yuka <yuka@yuka.dev>
Tested-by: BuildkiteCI
2024-11-11 18:46:33 +00:00
Florian Klink
a9f453f6da docs(tvix/[ca]store): improve docstrings, remove wildcard imports
Extend the docstrings of `add_default_services`, and add one for
`addrs_to_configs` as well as the module-wide one at
`tvix_store::composition`.

Change-Id: Ie9b449988eb210cd65b19b174094bbe0c4af2fd6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12748
Tested-by: BuildkiteCI
Reviewed-by: yuka <yuka@yuka.dev>
2024-11-11 18:46:33 +00:00
Florian Klink
e71a857ec8 refactor(tvix/[ca]store): rename store composition feature flags
tvix-castore already supports composition without any additional feature
flags, the only thing that can be explicitly enabled is referring to
other stores via an anonymous url. Rename that feature flag to
"xp-composition-url-refs".

tvix-store effectively only controls the CLI surface, so rename this to
"xp-composition-cli".

The "store" in the feature name was dropped, as it's already apparent
from being in the tvix-[ca]store crate.

Change-Id: I1175dc6280cbba4cbcdfb7fd4b35fce713b45fc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12747
Tested-by: BuildkiteCI
Reviewed-by: yuka <yuka@yuka.dev>
2024-11-11 18:46:33 +00:00
Florian Klink
d505f03e00 refactor(tvix/store/composition): rename 'default' to 'root'
This becomes the root of the composition. `default` implies we can
directly access anything else, which we cannot. `root` makes this more
understandable, and it's all internal only anyways.

Change-Id: I297511bc05a7c32c59510b9d192b40d1bd937b5f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12746
Reviewed-by: yuka <yuka@yuka.dev>
Tested-by: BuildkiteCI
2024-11-11 18:46:33 +00:00
Vova Kryachko
8df919dcf0 refactor(nix-compat): Move serialization machinery into wire.
This groups most `wire` feature gated logic into a single module.
The nix_daemon module will be gated by a feature that adds
nix-compat-derive as a dependency.

All of this is a way to break the crate2nix dependency cycle between
nix-compat and nix-compat-derive(which depends on nix-compat for its
doctests).

Change-Id: I95938a6f280c11967371ff21f8b5a19e6d3d3805
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12761
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-10 20:54:12 +00:00
Bob van der Linden
cfa4154131 feat(tvix): add instance_name to instrumentation of *Services
Currently it is not possible to distinguish between tracing of the same
*Service type whenever there are multiple of them. Now the instance_name
of ServiceBuilder is passed into the *Service and used in the existing
instrument as the `instance_name` field.

Places that did not already have a instance_name in its context use
`"default"`. In tests I used `"test"`.

Change-Id: Ia20bf2a7bb849a781e370d087ba7ddb3be79f654
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12739
Tested-by: BuildkiteCI
Autosubmit: Bob van der Linden <bobvanderlinden@gmail.com>
Reviewed-by: flokli <flokli@flokli.de>
2024-11-08 20:16:49 +00:00
Vova Kryachko
951d25676b feat(tvix/tracing): Allow configuring additional layers
This will be used by tvix-daemon to write tracing data into the active
client's connection socket.

Change-Id: I8889dd0a638e004ee2c8cb312946b029c9779313
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12734
Tested-by: BuildkiteCI
Autosubmit: Vladimir Kryachko <v.kryachko@gmail.com>
Reviewed-by: flokli <flokli@flokli.de>
2024-11-07 20:34:27 +00:00
Brian Olsen
b88579ade4 feat(tvix/nix-compat): Add nix serialization support
This change implements the serialization part that is needed to
implement the nix daemon protocol. Previously was add deserialization
and derivers for that and this then adds the other part of that equation
so that you can write types that can then be read using deserialization.

Change-Id: I2917de634980a93822a4f5a8ad38897b9ce16d89
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12729
Autosubmit: Brian Olsen <me@griff.name>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-04 20:02:54 +00:00
Brian Olsen
6582fa69f1 fix(tvix/nix-compat-derive): Better errors for default
This adds a span to default handling so that any error message
gives a more precise location as a hint for why the error occurred
instead of just pointing to the type.

Change-Id: I7bf6cf38e0284f9726d670ea50a94a6b1edd8a94
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12728
Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Autosubmit: Brian Olsen <me@griff.name>
2024-11-04 15:33:31 +00:00
Bob van der Linden
cae3afc758 feat(tvix/eval): use with_capacity instead of a growing vec
Change-Id: I4d89663eb9ac772ce1008ed5ee218bc7016164e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12733
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-04 10:39:19 +00:00
Bob van der Linden
9aa479648b refactor(tvix/eval): remove Value::Json and related functionality
Currently Value::Json is used in combination with VMRequest::ToJson to
recursively convert tvix Value to serde_json::Value. This functionality
is used in builtins.toJSON as well as derivation __structuredAttrs.

Both Value::Json and VMRequest::ToJson were removed in this commit.

Related functionality in vm.rs is also removed: vm.rs does not know
about JSON anymore.

Recursively converting to serde_json now happens without going through
the VM.

Thrown errors that are part of the value of toJSON are now directly
propagated as ErrorKind, were-as previously there was a split between
CatchableErrorKind and ErrorKind, where eventually CatchableErrorKind
would be converted to ErrorKind::Catchable.

Change-Id: I066f064926c491e4c087a984f07af43d19124cfe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12732
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-04 10:39:19 +00:00
Bob van der Linden
b6e524c726 test(tvix/eval): test throw in __toString with toJSON
Change-Id: Ia4a9a04c7e157b6add94dc8901ffab35486fe344
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12731
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-04 10:39:19 +00:00
Bob van der Linden
f90f14042a test(tvix/glue): check context of __toString after toJSON
Change-Id: I65e3a8e8284ffb4986970ea67ed8d6b216e1eb66
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12730
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-04 10:39:19 +00:00
Brian Olsen
37a7bfa163 chore(tvix/nix-compat-derive): Remove references to nixrs
Some references to nixrs had sneaked in while writing the original
CL so this just removes those.

Change-Id: I635adbd2de46c7c1f31e1d449396253a78e1b762
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12727
Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com>
Autosubmit: Brian Olsen <me@griff.name>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-04 00:10:31 +00:00
Brian Olsen
685f25ebff fix(tvix/build): Fix tests and clippy warnings on MacOS
When running tests for buildservice on MacOS it would fail
because of the oci test. I also got some clippy warnings on
MacOS because of disabled code.

Change-Id: I235739fa4270a4ef46e54d3e2b8cbb55eb20bdda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12726
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: Brian Olsen <me@griff.name>
Tested-by: BuildkiteCI
2024-11-03 23:43:23 +00:00
Brian Olsen
6f914bc0fa fix(tvix/nix-compat-derive-tests) More enum tests
Before this commit only deriving of tuple enums where tested.
This adds a few tests to cover the other types of enums.

Change-Id: I62f311e4db98cab84bd4ac164d50051e9aab0d4d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12725
Autosubmit: Brian Olsen <me@griff.name>
Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com>
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-03 23:43:23 +00:00
Brian Olsen
28dbf5f0eb chore(tvix/docs): Small changes to Nix Daemon protocol description
I found some more operations that are obsolete and a few missing
fields. I also did some small changes to make handshake description
more consistent.

Change-Id: I9f853a37e9d50621491f31ea71879d6a600046e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12724
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-03 20:49:19 +00:00
Florian Klink
f02bc522b6 docs(tvix/TODO): add Value::Json TODO
Change-Id: Id47c1e3f98cb0bf53006b002417b69cfa49b7410
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12721
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
2024-11-02 20:15:20 +00:00
Bob van der Linden
37835634e8 feat(tvix/glue): use InvalidHash for builtins.path
Previously such errors showed up as:

error[E006]: expected value of type 'sha256', but found a 'not a sha256'

Now they show up as:

error[E041]: Invalid hash: invalid encoded digest length '31' for algo
sha256

This is consistent with the errors of `builtins.fetchurl`.

Change-Id: Id11b26fc7951778640cc4e41b3bf23203eaf07df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12719
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-02 19:51:53 +00:00
Bob van der Linden
05cb6e9e35 feat(tvix/eval): introduce ErrorKind::InvalidHash
The nixhash errors were wrapped in a generic TvixError. Now it has its
own TvixError with unique error code. The nixhash error is passed along
as a string.

The errors looked like:

error[E997]: invalid encoded digest length '51' for algo sha256

Now they look like:

error[E041]: Invalid hash: invalid encoded digest length '51' for algo
sha256

Change-Id: I5c420815538ba4c6567c95f5d44d60c4d48f43fd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12718
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-11-02 19:51:36 +00:00
Vova Kryachko
aecf0641a4 fix(tvix/nix_compat): Fix nix-daemon handshake
Existing handshake behavior assumed that the server version is always
at least as new as the client. Meaning that the client's version was
always picked the handshake details as well as for further communication

This change removes that assumption and correctly uses
min(server_version, client_version).

Change-Id: Ia5dad4613dd5f69a0aeb6c9d86982f1f36fe1a4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12722
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-02 18:08:21 +00:00
Vova Kryachko
4ec9a4b7df fix(tvix/tracing): Enable tracing in tvix-build.
Change-Id: Ica9734d7774da4d5e2a5cacab6b9feb27becc3e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12720
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-11-01 15:30:58 +00:00
Vova Kryachko
9e294db820 feat(tvix/nix-daemon): Initial skeleton for nix-daemon
The goal is to create a drop-in replacement nix-daemon that nix-cpp can
use as a `daemon` store.

Change-Id: Ie092047dcc6a24a3b8d8d1b808f3e6fd2c493bf2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12711
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-10-30 15:00:32 +00:00
Florian Klink
eb2ca5f079 refactor(tvix/tracing): drop log_level method
There's no more consumers left.

Change-Id: I0585abbdbe0ffcf35cd20ac58077ade67cbf5c75
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12715
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
2024-10-30 12:56:02 +00:00
Florian Klink
38f27c4502 refactor(tvix/build): drop log level cli arg
This does the same as cl/12585 did for tvix-cli.

Change-Id: Ia2d693f5ad10feb81777c951bcd4489a3a83ad7c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12716
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
2024-10-30 12:56:02 +00:00
Florian Klink
6c13491fe0 refactor(tvix/store): drop log level cli arg
This does the same as cl/12585 did for tvix-cli.

Change-Id: I35215947f3616acd65654c2bbdb19d0c360b568b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12714
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
2024-10-30 12:31:55 +00:00
sterni
7133e1a4b1 chore(tvix/shell): add cargo-flamegraph
Change-Id: I991337d6db2442b1239ca048b25f28985cfdaa05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12706
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: sterni <sternenseemann@systemli.org>
2024-10-28 12:45:22 +00:00
Yureka
8de99e631d fix(tvix/eval): fix unused variable warnings being inverted
Thanks to lexi for finding this

Change-Id: Ic248af55426630b5e07183e4eac1596d52954478
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12696
Tested-by: BuildkiteCI
Autosubmit: yuka <yuka@yuka.dev>
Reviewed-by: tazjin <tazjin@tvl.su>
2024-10-27 15:20:28 +00:00
Florian Klink
e9d1e7d7fa fix(tvix/build): fix build on MacOS
oci_spec::runtime::Posix* stuff is feature-flagged out on MacOS.

While it might be desirable to emit Linux OCI runtime specs from MacOS to
schedule there, and it being feature-flagged to Linux might be a bug in the
upstream crate, we only have an implementation invoking runc, which certainly
don't work.

Feature-flag this out to make tvix-build and tvix-cli to build on MacOS. This
can be revisited once we actually start thinking about builders on MacOS.

Change-Id: I82002f6d55eddd9c305f1b3a3f3f2b252f617ed0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12694
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
2024-10-27 14:29:08 +00:00
Florian Klink
e79815dda9 fix(tvix/castore/fs): fix build for MacOS
fuse_backend_rs::api::filesystem::Layer is not exposed for non-Linux, and
feature-flagged on virtiofs, so only implement the trait for these cases.

Change-Id: Id8455dc5be502f8375836ba04288d50c59d69d89
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12693
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-10-27 14:29:08 +00:00
Florian Klink
057e4e3a99 fix(tvix/shell): fix shell on MacOS
runc is not available on MacOS, we only want to include it in the shell if on
Linux.

Point TVIX_BUILD_SANDBOX_SHELL to /bin/sh if not on Linux.
While we cannot use the OCI/runc executor on MacOS, other implementations might
make use of this env var, so it's good to keep setting it.

Also update the other occurence of it, in tvix/utils.nix.

Change-Id: If7b47e1bb7c41bbde84c93016713754a252c4355
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12691
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Tested-by: BuildkiteCI
2024-10-27 14:29:08 +00:00
Florian Klink
3695f57d84 feat(tvix/tracing): filter indicatif.pb_show fields in all cases
Change-Id: I688cec79cefeae340872945c35743fae892cd053
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12688
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: yuka <yuka@yuka.dev>
Reviewed-by: flokli <flokli@flokli.de>
2024-10-27 12:28:03 +00:00
Florian Klink
7dd895c258 docs(tvix/TODO): add OCI preflight checks
Change-Id: I0865487f84556932149d95902d7399b5f7037314
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12687
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: yuka <yuka@yuka.dev>
2024-10-27 12:26:01 +00:00
Florian Klink
30617d5b24 docs(tvix/build): we use stricter castore types
Change-Id: Ie96b4f85d46984cac2ecc50ff9b70fa0b26ae80d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12686
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
Reviewed-by: yuka <yuka@yuka.dev>
2024-10-27 12:26:01 +00:00