about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2023-06-19 r/6334 docs(nix-1p): import is a builtin, not a keywordVincent Ambo1-2/+4
Pointed out by @Gaelan on GH in https://github.com/tazjin/nix-1p/issues/12 As noted there, some Nix syntax highlighters will colour `import` differently (e.g. the Emacs nix-mode), but it's not technically a keyword in the language. Change-Id: I1bbd36261cda31deb9ba47380a2810e64ba03ea1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8832 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-19 r/6333 chore(tvix/store/pathinfosvc): clippyFlorian Klink2-11/+8
Change-Id: Ied4bed08e989791f832922da8776d2104035e28a Reviewed-on: https://cl.tvl.fyi/c/depot/+/8812 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-06-19 r/6332 chore(tvix/store/directorysvc): clippyFlorian Klink2-10/+7
Change-Id: Idf45aaa0f6211ac35a9a41d0f3f60dfbe1009398 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8811 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-19 r/6331 chore(tvix/store/blobsvc): clippyFlorian Klink2-10/+7
Change-Id: Ie384bdd27e1e9282ceda83edc74ffaad387f352b Reviewed-on: https://cl.tvl.fyi/c/depot/+/8810 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
2023-06-19 r/6330 refactor(tazjin/tgsa): automatic clippy lint fixesVincent Ambo1-9/+9
Change-Id: I30c380bd538dd5c697e529e7e18fe87b8bfea371 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8829 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-18 r/6329 style(tazjin/homepage): remove side margins of entriesVincent Ambo1-1/+2
Change-Id: Ia4a6a93ee1149c7d4a3e1d4b2266335660f1839d Reviewed-on: https://cl.tvl.fyi/c/depot/+/8828 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-18 r/6328 feat(tazjin/koptevo): deploy tgsaVincent Ambo2-2/+16
The main instance is still running on polyanka, but things are moving in this direction. Change-Id: Idfa9e508023c05148003ac4621ae01dceb284c66 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8827 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-18 r/6327 feat(tazjin/tgsa): replace translation backendVincent Ambo4-62/+327
The GPT backend is cool, but it's also very slow, prone to request errors and quite expensive. This switches to Yandex Translate instead which for all posts that I tested seems to be totally fine. Change-Id: I5217113995b701508a83e7782eb1325957996719 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8826 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-18 r/6326 feat(tazjin/secrets): initialise secrets management for my machinesVincent Ambo3-0/+16
Change-Id: I93ad61f3e6e4a4a2185448ad128fa6836c81ab26 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8825 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-16 r/6325 test(tvix/serde): add a test for from_str_with_configVincent Ambo1-1/+12
Change-Id: I451851f4e01cb6dd0005e55bb852823b618f2ee6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8809 Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-06-16 r/6324 feat(tvix/serde): add a function to with custom configurationVincent Ambo1-1/+16
This adds a `from_str_with_config` function which takes a user-supplied closure that sets additional settings on the `tvix_eval::Evaluation`. Note that users can not set `strict = false`, but other settings are not restricted. This solves b/262. Change-Id: Ice184400b843cfbcaa5b6fe251ced12b6815e085 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8808 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-06-16 r/6323 refactor(tazjin/homepage): use a separate CSS file for homepageVincent Ambo1-0/+56
Change-Id: Idf5682d67ae863b9cb982dd5efcdf1621b6895aa Reviewed-on: https://cl.tvl.fyi/c/depot/+/8807 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-15 r/6322 refactor(tazjin/homepage): long overdue entry list reworkVincent Ambo6-116/+113
The entry list is now much more condensed. It's maybe a little *too* condensed, but already closer to what I'm looking for. Note: A new "note" post type has snuck in and can now be used for random musings or comments on previous entries. Notes do not show up in the Atom feed. Change-Id: I920c0c7650937474b8a5f30cba78416554d523ce Reviewed-on: https://cl.tvl.fyi/c/depot/+/8806 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-15 r/6321 fix(tazjin/blog): don't cross-reference static assets from tvl.fyiVincent Ambo1-0/+1
Change-Id: I2315da278acf9e8af48c4e606a7aaee950283b0f Reviewed-on: https://cl.tvl.fyi/c/depot/+/8805 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su>
2023-06-15 r/6320 feat(tazjin/koptevo): move some of my sites hereVincent Ambo1-0/+2
Change-Id: Ie7c55ee286d2a1ebcc623374fb02775ed8dfbb58 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8789 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su>
2023-06-15 r/6319 feat(tazjin/koptevo): provision certificate (for quassel)Vincent Ambo1-2/+11
With this commit, Quassel becomes operative on koptevo. Change-Id: Ic877c5bb1525cf5288b0091cb0cd1328b5276264 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8788 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-15 r/6318 chore(tazjin/polyanka): disable quassel serviceVincent Ambo1-1/+1
Change-Id: I38420686467dad7429dae981ab2f7b446d540b75 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8787 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-15 r/6317 fix(ops/modules/quassel): use systemd LoadCredential to read certsVincent Ambo1-1/+5
This avoids permission issues with nginx vs. quassel Change-Id: I770f8284d8fd8fc6d38add93c1681f9daebe8749 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8786 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-15 r/6316 chore(tazjin/koptevo): fix some initial growing painsVincent Ambo1-3/+6
Change-Id: I614bba9e28ca789d2e641391ccf3bdbc6ff95dd5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8785 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-15 r/6315 chore(tvix/eval): fix markdown labeled link syntaxsterni1-2/+2
Change-Id: I639dc0801090eaba56b61858e28204b5a0e631b6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8784 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2023-06-15 r/6314 test(tvix/eval): update nix_tests suite to C++ Nix mastersterni27-7/+396
Adds new tests for foldl', intersectAttrs as well as fills in missing .exp files. New test cases we don't pass: - fromTOML timestamp capabilities - path antiquotation - replaceStrings is lazier on C++ Nix master The C++ Nix revision used is 7066d21a0ddb421967980094222c4bc1f5a0f45a. Change-Id: Ic619c96e2d41e6c5ea6fa93f9402b12e564af3c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8778 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2023-06-15 r/6313 docs(tvix/eval): update test suite documentationsterni1-13/+47
Change-Id: Ie9153c00b95ede4837a8eeab341e68bc90e97921 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8777 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-15 r/6312 feat(tazjin/nixos): initialise koptevo systemVincent Ambo2-0/+118
This is the "new polyanka" (eventually), as I'm decommissioning that host slowly. Change-Id: Ia0fe664f3bf64513d8177434c6c0fface857cd99 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8783 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-15 r/6311 chore(3p/sources): Bump channels & overlayssterni7-27/+28
* //ops/modules/depot-inbox: Adapt to upstream option type declaration. See nixpkgs commit b6ed3b8f402893df91a8e21ce993520301c2f076. * //ops/machines/sanduny, //users/tazjin/polyanka: Remove boot.loader.grub.version options (no longer has any effect). * //users/sterni/emacs: reflect rename emacsPgtk -> emacs-pgtk * //3p/overlays: update tdlib to match emacs-overlay * //3p/overlays: give EXWM from depot a separate name * //users/grfn/system/home: disable Slack support in ntfy Change-Id: I03bde088bc70e05b23925f244899807210cb7b20 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8547 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-15 r/6310 feat(web/pwcrypt): little web application for creating LDAP accountsVincent Ambo7-0/+1299
This generates the format expected in `//ops/users`. Note that as of this commit I have not actually tested whether the generated hashes work, as OpenLDAP doesn't ship with a tool to do that and I have to actually use it, spin up an LDAP server and bind to it. The plan is to host this at something like `tvl.fyi/signup`. There is no plan to automatically submit the generated stuff to the repo, people still have to email us (and display their street cred). Note that currently the generated hashes have slightly different parameters than what //tools/hash-password creates. This might not matter, but it's probably still a good idea to try and explicitly set Argon2 parameters. Change-Id: Ic162afbf7fb0e05ca6efc131b3bb0a4187e28029 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8776 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2023-06-15 r/6309 test(tvix/eval): genericClosure (pointer) comparison supportsterni5-0/+38
genericClosure has very limited support for pointer equality: It relies on comparison (not equality!) in C++ Nix, so as soon as C++ Nix supports comparing lists (langVersion >= 6) we can rely on pointer equality for key. Since Tvix uses equality, not comparison for the insert, our behavior is currently different, as documented by the notyetpassing tests. Change-Id: Ifcd741ed4fc3ccc3825f7038875d56a9918b786a Reviewed-on: https://cl.tvl.fyi/c/depot/+/8720 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-15 r/6308 fix(tvix/eval): make tvix display values like nix-instantiate(1)sterni9-3/+63
In order for the test suite we have currently to be comparable to C++ Nix, we need to display values in the same way. This was largely the case except in some weird cases. * <CODE> for thunks and <CYCLE> for repeated thunks (?) are already in use. <CODE> formatting is tested by the oracle test suite already. * Instead of lambda, we need to use <LAMBDA> * <<primop>> and <<primop-app>> (a formatting C++ Nix uses nowhere) now are <PRIMOP> and <PRIMOP-APP>. We'll probably want to have a fancier display of values (in a separate trait) down the line. This could be used for interactive usage, e.g. the REPL or a potential debugger. There is a peculiarity with C++ Nix 2.3 formatting primops: import is considered a <<PRIMOP-APP>>, since it is internally implemented by means of scopedImport. This implementation detail no longer leaks in C++ Nix 2.13 nor in Tvix. <CYCLE> display is untested at the moment, since we exhibit a discrepancy to C++ Nix 2.3. Our current detection is more similar to C++ Nix 2.13—luckily it is also the more consistent of the two. See also b/245. Change-Id: I1d534434b02e470bf5475b3758920ea81e3420dc Reviewed-on: https://cl.tvl.fyi/c/depot/+/8760 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2023-06-15 r/6307 feat(web/static): serve terminalcss from static.tvl.{fyi|su}Vincent Ambo2-1/+2
Change-Id: I3cdacc1429f86e044fc77c9b68477d577a0f67c7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8779 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6306 fix(tvix/store/blobsvc): drop stray println! debug statementFlorian Klink1-1/+0
Change-Id: Ica073820ea8240d42ce8b979309f881af18a8cde Reviewed-on: https://cl.tvl.fyi/c/depot/+/8781 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-06-14 r/6305 refactor(tvix/store/blobsvc): make from_addr not asyncFlorian Klink2-4/+4
A previous iteration of this code did actually connect (in the gRPC client), which was why we had this function async. However, as the connection there is now lazy too, we can drop the asyncness in this function. Change-Id: Idd5bd953a6a1c2334066ee672cfb87fcb74f9f94 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8780 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6304 refactor(tvix/store/pathinfosvc): add from_addrFlorian Klink6-18/+552
Change-Id: I24e822351a837fce2aed568a647d009099ef32ec Reviewed-on: https://cl.tvl.fyi/c/depot/+/8747 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2023-06-14 r/6303 feat(tvix/store/directorysvc): add from_addrFlorian Klink6-21/+287
Add --directory-service-addr arg to tvix-store CLI. Change-Id: Iea1e6f08f27f7157b21ccf397297c68358bd78a0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8743 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6302 feat(tvix/store/blobsvc): add from_addrFlorian Klink9-24/+657
This allows constructing blob stores with a URL syntax at runtime, by passing the --blob-service-addr arg. We probably still want to have some builder pattern here, to allow additional schemes to be registered. Change-Id: Ie588ff7a7c6fb64c9474dfbd2e4bc5f168dfd778 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8742 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6301 docs(tvix/eval): fix link to tvixboltsterni1-1/+1
Change-Id: Iff3f74ab6d5177246811bd3d58d171088915370f Reviewed-on: https://cl.tvl.fyi/c/depot/+/8775 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6300 test(tvix/eval): move division by zero tests into tvix_testssterni2-0/+0
These were added by us in r/5276, so they should go into our test suite. Change-Id: I6dc74fc242f33c22a17e0b4aee546ccae886ac85 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8774 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2023-06-14 r/6299 test(tvix/eval): add test case for builtins set pointer equalitysterni2-0/+21
Unsupported by Tvix at the moment. Documents b/280. Change-Id: I48844feeefa9da8ed7e5d85300d52bb5650f82d2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8772 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2023-06-14 r/6298 test(tvix/eval): re-enable blackhole teststerni1-0/+0
Change-Id: Id933f3bd708aa3342b9fd6a5584e65ee11751ff8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8773 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: sterni <sternenseemann@systemli.org>
2023-06-14 r/6297 fix(tvix/eval): don't thunk home relative pathssterni2-11/+13
C++ Nix resolves home relative paths at [parse] time. This is not an option for us, since it prevents being able to separate the compilation and execution phase later (e.g. precompiled nix expressions). However, a practical consequence of this is that paths expressions are always literals (strict) and never thunks. [parse]: https://github.com/NixOS/nix/blob/7066d21a0ddb421967980094222c4bc1f5a0f45a/src/libexpr/parser.y#L518-L527 Change-Id: Ie4b9dc68f62c86d6c7fd5f1c9460c850d97ed1ca Reviewed-on: https://cl.tvl.fyi/c/depot/+/7041 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6296 docs(tvix): mention langVersion >= 5 check in nixpkgssterni1-2/+4
Change-Id: I7aae900012e901fa4d886b1a4bf0657d593e4983 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8771 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6295 chore(tazjin/yddns): update yandex-cloud versionVincent Ambo3-12/+9
Change-Id: Iaf246014601bf7ab3fb1af4961c2fe26f66e45be Reviewed-on: https://cl.tvl.fyi/c/depot/+/8770 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6294 feat(corp/ops): configure DNS records for email handlingVincent Ambo1-2/+30
Change-Id: I19e41e559d475af78744c4623691578e8ead4327 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8769 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6293 fix(tazjin/nixos): fix 32-bit support for gamesVincent Ambo2-0/+5
Change-Id: I04cb7c448228771536f9f87155183bdaa8faf4e8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8768 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6292 fix(ops/yandex-cloud-rs): fix dev-dependencies for examplesVincent Ambo2-0/+4
Change-Id: Ib99755d2b49464a6a30442b696ecfeda03038066 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8767 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6291 docs(ops/yandex-cloud-rs): link to folder with usage examplesVincent Ambo1-0/+3
Change-Id: If2596b5a3dc542dca9a06a51a5a0f509034665c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8766 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6290 chore(ops/yandex-cloud-rs): bump API definitions to 2023-06-13Vincent Ambo3-92/+65
Change-Id: Iad2d85eaffe96de0cf9ecb490fe5ba87209e1005 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8765 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6289 refactor(ops/yandex-cloud-rs): allow TokenProvider impls to failVincent Ambo1-6/+6
It's actually quite common that a token provider might fail, for example when fetching a token from instance metadata. Change-Id: Ie0126fb92c6c613ad36b5583fd68505fdd97f2c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8764 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6288 chore(ops/yandex-cloud-rs): re-export some tonic typesVincent Ambo1-0/+9
These are useful for downstream users of the library, who might not need all the rest of the tonic stuff. Change-Id: Iab4d941696ae3c7a33b25815b72f92598aa82b80 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8763 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-14 r/6287 fix(ops/yandex-cloud-rs): add `Bearer` prefix to auth tokenVincent Ambo1-2/+3
Change-Id: I27d23de0598e3ca926a85cba3022f2dfff25f6be Reviewed-on: https://cl.tvl.fyi/c/depot/+/8762 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2023-06-14 r/6286 feat(tazjin/yddns): hack together a quick dyndns update scriptVincent Ambo5-0/+1640
Change-Id: I4114a1b83e5f1edbb04d0ab920f107245ec998bd Reviewed-on: https://cl.tvl.fyi/c/depot/+/8761 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2023-06-13 r/6285 fix(views/tvix): add fuse dependencies to external shell viewVincent Ambo1-9/+11
Change-Id: Ie7b8c5b983e5b41bffe0748d0047ffcfd82072e8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8759 Reviewed-by: flokli <flokli@flokli.de> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI