about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2022-12-29 r/5536 feat(tvix/derivation): serialize Nix DerivationJürgen Hahn22-0/+516
This adds a Derivation structure and allows to write it to a structure that implements std::fmt:Write. The implementation is based on the go-nix version. Change-Id: Ib54e1202b5c67f5d206b21bc109a751e971064cf Reviewed-on: https://cl.tvl.fyi/c/depot/+/7659 Reviewed-by: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-29 r/5535 feat(sterni/edwin/code.sterni.lv): disable commit graph for nixpkgssterni1-4/+6
The commit graph can be quite slow for repositories like nixpkgs, so it is disabled there. For this we refactor the module a bit, allowing us to set arbitrary cgit settings for repositories. This feature can also handle all instances of defaultBranch now. Change-Id: I22e44b7398d2692e8cc16555fb5203ad6a7a69a9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7672 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-12-29 r/5534 refactor(tvix/eval): use im::Vector for NixList representationVincent Ambo8-46/+261
This is a persistent, structurally sharing data structure which is more efficient in some of our use-cases. I have verified the efficiency improvement using `hyperfine` repeatedly over expressions on nixpkgs. Lists are not the most performance-critical structure in Nix (that would be attribute sets), but we can already see a small (~5-10%) improvement. Note that there are a handful of cases where we still go via `Vec` that need to be fixed, most notable for `builtins.sort` which can not currently be implemented directly using `im::Vector` because of a restrictive type bound. Change-Id: I237cc50cbd7629a046e5a5e4601fbb40355e551d Reviewed-on: https://cl.tvl.fyi/c/depot/+/7670 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2022-12-29 r/5533 chore(tvix/store): address clippy warningsFlorian Klink2-18/+15
The only warnings left are unused warnings, but that'll change once we have a real implementation, and not just tests. Change-Id: I28912281b5e66735be37e999cc8ef4b8b09028fb Reviewed-on: https://cl.tvl.fyi/c/depot/+/7669 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-29 r/5532 chore(tvix/store): trim Cargo.tomlFlorian Klink3-6/+9
lazy_static is only used in tests, and anyhow isn't used at all (yet). This can be dropped. Change-Id: Ic41ff3f9bb93cfa600c3485e85464f78a3976504 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7668 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-29 r/5531 chore(tvix/store): move tests into separate fileFlorian Klink3-289/+288
Move them from the bottom of src/proto.rs to its own src/tests/mod.rs. Also drop the test_ prefix, this is not golang. Change-Id: I2e0b6b9812264f3d9721c0766936f08157fadc66 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7667 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-29 r/5530 docs(tvix/eval): sketch in place list/attr set update ideasterni1-0/+24
Change-Id: Ic7debbd8cbd3acdf5f3947288f2aa2964bd163a0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7660 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5529 fix(ops/pipelines): explicitly set contexts for annotationsVincent Ambo2-1/+2
I think what might be going on with b/231 is that the annotations somehow started conflicting because they don't have contexts set. Lets try setting a context and see if it changs anything ... Change-Id: I62ed57f9e24f08e4e7215f05d35cfa769e2e2c24 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7640 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5528 feat(tvix/store/protos): rename Get to Read, add Stat methodFlorian Klink3-88/+434
Stat exposes metadata about a given blob, such as more granular chunking, baos. It implicitly allows checking for existence too, as asking this for a non-existing Blob will return a Status::not_found grpc error. The previous version returned a Status::not_found error on the Get request too, but there was no chance to prevent the server from starting to stream (except sending an immediate cancellation). Being able to check whether something exists in a BlobStore helps to prevent from uploading in first place. The granular chunking bits are an optional optimization - if the BlobStore implements no more granular chunking, the Stat response can simply contain a single chunk. Read returns a stream of BlobChunk, which is just a stream of bytes - not necessarily using the chunking that's returned in the reply of a Stat() call. It can be used to read blobs or chunks. Change-Id: I4b6030ef184ace5484c84ca273b49d710433731d Reviewed-on: https://cl.tvl.fyi/c/depot/+/7652 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5527 feat(tvix/store): make blobstore stream chunksFlorian Klink3-172/+171
This changes the RPC methods to return/consume a stream of chunks, instead of a very big message containing the whole blob, to keep message sizes in manageable sizes (less than 4MiB). Change-Id: I2a3a50f07b059d8a2f5196860254adff98c8a352 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7651 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5526 feat(tvix): add evans to shellFlorian Klink1-0/+1
Change-Id: I7ec8bae236330ec1e38e82da67b47aef2815d4b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7437 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5525 chore(tvix/store/protos): add PathInfoService::CalculateNAR()Florian Klink3-39/+222
Expose the NAR calculation to a separate `CalculateNAR` method, which responds with the NAR size and sha256 hash. Contrary to what cl/7618 and cl/7620 initially did, don't add different other request types. In the CalculateNARResponse message, there's now some duplication in the (optional) `narinfo` field of a PathInfo, but I'm not entirely sure if we want to drop the fields from there yet. Change-Id: Id797c56e17efedac115fbd43de9dfde9fa1db140 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7663 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5524 chore(tvix/store/protos): drop non-sha256 NAR hashesFlorian Klink2-196/+41
Nix actually doesn't support anything else than sha256 NAR hashes, so there's little reason to communicate anything else in here. Co-Authored-By: edef <edef@unfathomable.blue> Change-Id: I760370bd6cabd02028e001a74c454ef9296eb600 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7619 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5523 chore(tvix/store/protos): move (Root)Node into separate messageFlorian Klink2-124/+191
This is gonna get used in another place in a second. Co-Authored-By: edef <edef@unfathomable.blue> Change-Id: I347c11c8d24379628b7ed09d2c90670c576e686a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7617 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5522 fix(sterni/aoc/2022): make solutions executable in bqn drvsterni1-7/+9
BQNLIBS dependency also needs to be provided in the derivation running all solutions. Change-Id: I704369127ab92a52c7e4b21de8b7982fb8328f9d Reviewed-on: https://cl.tvl.fyi/c/depot/+/7662 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2022-12-28 r/5521 chore(sterni/aoc/2022): nuke Nix solutionssterni3-56/+2
Didn't end up happening due to a lack of motivation. Will try to finish the BQN AoC still, though. Change-Id: Ib296aec9f3cfeef57c79a9ba09fc664c1a19dcff Reviewed-on: https://cl.tvl.fyi/c/depot/+/7661 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-12-28 r/5520 feat(tvix/store): implement Directory::validate()Florian Klink4-13/+351
Change-Id: I4c6ae79d705b8e19a3e2ed54812366e88935d7a6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7650 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-28 r/5519 chore(tvix/store): use DUMMY_DIGEST, tooFlorian Klink1-1/+1
Missed from cl/7649. Change-Id: Id2d382567f91cba9cdd792fe44bc0a83d040ec69 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7656 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5518 chore(tvix/store): use Directory::default in some more placesFlorian Klink1-18/+6
Change-Id: Iebad5e0b38f9506933fa855e1bfb2611d27ff572 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7655 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5517 fix(tazjin/predlozhnik): warning about literary use of между + род.Vincent Ambo1-3/+2
Change-Id: I59a6f90dc3d574103e89e7e242fecb88cadd7df8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7658 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5516 chore(tazjin/polyanka): turn on automatic-gc moduleVincent Ambo1-0/+9
Change-Id: I0521ded37ea047124c117b07d01016a6f0a1d4ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/7657 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-28 r/5515 feat(web/inbox): add landing page for inbox.tvl.suVincent Ambo3-10/+108
This landing page explains how to use the public-inbox. Change-Id: I37d74decad5173ab35051970593f1d28001af2b4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7645 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2022-12-28 r/5514 feat(tools/fetch-depot-inbox): wrapper script to fetch depot maildirVincent Ambo2-0/+50
This script fetches the inbox for depot@tvl.su into the specified directory in maildir format. The layout of the folder follows the structure generated by public inbox, i.e. the directory containing the current maildir will be `$TARGET/su.tvl.depot.0`, but most mail clients (e.g notmuch) will figure this out on their own. ---- In addition, we would ideally find a CLI mail client that can be pointed at an arbitrary maildir (or an IMAP server) and works with local `sendmail` config so that people can have a single command entry point to interacting with depot@tvl.su. Change-Id: Iaf9fcce73e9caa2f202327488c43d0394be26ca6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7644 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2022-12-28 r/5513 style(ops/modules): add inbox email address to public-inbox headerVincent Ambo1-1/+1
Change-Id: Ib7d9089b63bba7ebc44d3438ed284e752f0595e9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7638 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2022-12-28 r/5512 feat(ops/modules): enable NNTP on inbox.tvl.suVincent Ambo1-2/+14
Change-Id: Iec564860a247fe51a5549129be294a3629645519 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7635 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2022-12-28 r/5511 feat(ops/modules): enable IMAP access for public-inboxVincent Ambo1-1/+27
This sets up IMAP on inbox.tvl.su:993 I added a hack to work around problems with the NixOS ACME module. Spent way too much time of my life with problems with that module, so I only use it with blunt force these days. Others are welcome to make a cleaner solution. Change-Id: Ice828766020856cf17d2f0a5b4491f4cec8ad9b4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7633 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-27 r/5510 chore(tvix/store): use lazy_static and dummy digestsFlorian Klink4-2/+16
While there's currently nothing in here checking the size of the digest, we should use something that passes the to-be-introduced validate() function. Change-Id: I0c515d9e3afc79292dedebce659a32485aa3d936 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7649 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-27 r/5509 feat(tvix/store/protos): implement Directory.Validate()Florian Klink2-0/+297
Validate thecks the Directory message for invalid data, such as: - violations of name restrictions - invalid digest lengths - not properly sorted lists - duplicate names in the three lists Change-Id: I8d43a13797793c64097e526ef3bd482c9606c87b Reviewed-on: https://cl.tvl.fyi/c/depot/+/7648 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-27 r/5508 feat(tvix/store/protos): implement Size() and Digest() for DirectoryFlorian Klink4-0/+251
This adds Size() and Digest() functions for the golang version. Change-Id: If71445a9bb26100bb4076ac4f5c96945b33919f9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7325 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-27 r/5507 docs: change email address mentions to depot@tvl.suVincent Ambo4-8/+8
This is the new address which leads to the public inbox at inbox.tvl.su Change-Id: I45d98a373b8acda49b05c4f74669ffb9ad1f1a3c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7632 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2022-12-27 r/5506 feat(ops/modules): index incoming mail in public-inboxVincent Ambo1-0/+4
Change-Id: I8a3e2c0e789057fd1edd015ccb8fdcc0cbb52cd8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7631 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2022-12-27 r/5505 feat(ops/modules): configure offlineimap for depot@tvl.suVincent Ambo1-1/+48
On the machine running public-inbox, this will start automatically fetching mails from depot@tvl.su and making them available to public-inbox. Change-Id: I2469207bd41d64eba747a74ae5fda9fed548cc83 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7630 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2022-12-27 r/5504 feat(ops/secrets): add secret for IMAP to depot@tvl.suVincent Ambo2-0/+18
Change-Id: If3b3981e5d68ceba2bcc85ed0ad9cc0b46148b74 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7629 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2022-12-27 r/5503 feat(ops/modules): set up public-inbox at inbox.tvl.suVincent Ambo3-0/+79
Initial setup which does not yet include fetching mails at all, this is for now only going to display a manually populated view of the existing mailing list while the rest of this stuff is set up. Change-Id: Ie1235bd257c9056fe37d0740dfca771ebdd880eb Reviewed-on: https://cl.tvl.fyi/c/depot/+/7628 Reviewed-by: flokli <flokli@flokli.de> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-12-27 r/5502 feat(sterni/aoc/2022): day25 array solutionssterni2-0/+5
Another approach for figuring out the SNAFU digits in k: https://github.com/leahneukirchen/adventofcode2022/blob/master/day25.k Change-Id: Iddf424aff8fcac176109fd35ef44bdd875302adc Reviewed-on: https://cl.tvl.fyi/c/depot/+/7647 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-12-27 r/5501 feat(nix/bufCheck): always run from repo rootFlorian Klink1-3/+3
This doesn't work when run from subdirectories, and going there manually before running `mg run //nix/bufCheck` is annoying. Change-Id: Icd30a7596ff0dfe2781f7cfa1b4085cbfdebd6ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/7324 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de>
2022-12-27 r/5500 feat(nix/bufCheck): ensure .pb.go is up to dateFlorian Klink2-2/+22
Change-Id: I03e1c3aced266966f6959dbce05c1f1fb1480b5a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7323 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-27 r/5499 fix(tazjin/nixos): delete firefox from machinesVincent Ambo1-1/+0
Quassel sometimes thinks it's a reasonable thing to do to start firefox instead of my default browser. Why? I've got no clue. But since I don't use Firefox anyways unless there's a special situation going on, lets just delete it. Change-Id: Ib7ad4cc53c44ac47f3a0c3922600c3915f90219c Reviewed-on: https://cl.tvl.fyi/c/depot/+/7646 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5498 feat(3p/overlays): Build overlaid packages in CI explicitlyVincent Ambo2-4/+1
Change-Id: I2f9e4f6f5f0193456f773e62ce5b8163b253de0c Reviewed-on: https://cl.tvl.fyi/c/depot/+/5489 Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2022-12-26 r/5497 chore(nix/buildGo): drop thing.proto from exampleFlorian Klink2-18/+0
This was missed from cl/7536. Change-Id: I12c12bf91bad00c30bb63518d65c320a61cbf442 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7641 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5496 feat(txix/store/protos): init go.mod, generate .pb.go filesFlorian Klink9-0/+2390
This allows importing the generated .pb.go files into other go projects. I initially looked at buildGo.protos, but it doesn't work for multi-.proto files, and actually having LSP support for the generated structs is nice, too. Change-Id: Idbd448008010790a10a0ea42e4059dbb609eaf1a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7322 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5495 feat(tvix/store/protos): add go_package optionFlorian Klink5-0/+10
Change-Id: I0898b8a0a78e704219da38e5acaabef1e640d4e4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7321 Reviewed-by: Adam Joseph <adam@westernsemico.com> Tested-by: BuildkiteCI
2022-12-26 r/5494 docs(tvix/store): add README, document services and store modelFlorian Klink4-2/+391
These are intended to help digest the protocol definitions for tvix- store, and how they tie into the whole concept. Co-Authored-By: Vincent Ambo <mail@tazj.in> Change-Id: Ic1ba3ba41ef599209453f15d0ac2e07a6144bcca Reviewed-on: https://cl.tvl.fyi/c/depot/+/7439 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5493 fix(third_party/nixpkgs): add support for --bytes-as-base64 in evansFlorian Klink2-0/+160
This is very helpful when calling an RPC method that accepts bytes. Upstreamed to https://github.com/ktr0731/evans/pull/611. Change-Id: Ibdaa1e3ff2aed9c86816e81de6f7652042c9fb11 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7436 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-26 r/5492 feat(tvix/store): use tonic-build for protosFlorian Klink5-20/+2334
While prost-build already exposes protobuf message types as structs, we actually need tonic-build too, to be able to get traits for all the RPC services defined in the proto files. Change-Id: I7f4c08454bf0d280d577975c7cdae13ccc2d933b Reviewed-on: https://cl.tvl.fyi/c/depot/+/7320 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5491 chore(nix/buildGo): drop buildGo.proto and buildGo.grpcFlorian Klink3-134/+2
As described in https://b.tvl.fyi/issues/221#comment-344, buildGo.proto was a mistake and should be removed. Change-Id: Ic588a5e8eea58e83e3ec9a37ac681ce526028718 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7536 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2022-12-26 r/5490 chore(tools): remove depot-scanner & tvlcVincent Ambo10-489/+6
These are both unused things from a long time ago, which we don't need to keep around anymore. Their design doc has been marked as archived. Change-Id: Icd2744e511e78ec95ec8f39e5f79ed1fe98e9e4a Reviewed-on: https://cl.tvl.fyi/c/depot/+/7639 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2022-12-26 r/5489 feat(3p/nixpkgs): pass localSystem alongzimbatm1-1/+1
This ties the top-level localSystem so it's passed to the instance of nixpkgs as well. Change-Id: I9ea3431d5cb35bb99765c5b4d2f22190376435af Reviewed-on: https://cl.tvl.fyi/c/depot/+/5856 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5488 feat(nix/lazy-deps): add passthru.devShellzimbatm1-0/+6
Allows to easily convert a lazy-deps into a nix-shell compatible derivation. Change-Id: I65a0609642f12e0d00658c69cc394a73dddccd16 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5855 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2022-12-26 r/5487 refactor(nix/lazy-deps): use runCommandzimbatm1-29/+37
writeTextFile is nice, but not flexible enough to allow the passthru argument needed for a follow-up change. Change-Id: I4f0cffd0f29b2c06b0155101d3806c9c5745c37a Reviewed-on: https://cl.tvl.fyi/c/depot/+/5854 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>