about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-17 r/7714 feat(users/Profpatsch/whatcd-resolver): add services & readmeProfpatsch7-1/+61
Gives a story for running both jaeger and the reverse proxy, and the program proper. `postgres` is still run from the client. Adds a little readme. Change-Id: I11185028541c0214e152fd76c9c72b7e2eb11122 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11171 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-17 r/7713 feat(users/Profpatsch): add nix-run, nix-run-bin, nix-evalProfpatsch1-0/+159
Change-Id: I76f6fa4866c5792c4b9babe2c3a16401162ad833 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11170 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7712 feat(users/Profpatsch/my-prelude): update librariesProfpatsch7-146/+514
The latest and greatest! Change-Id: I34c0e9f41b3b3cc727d9ea89c7ce6a43271b3170 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11169 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7711 feat(users/Profpatsch): add shortcuttableProfpatsch1-0/+172
Initial mockup for a tool which restarts its subprocess on SIGHUP, and stops everything on SIGTERM and SIGINT. Change-Id: Ie5260d73c2663d1821eb6623e2bc61d16f6c92cd Reviewed-on: https://cl.tvl.fyi/c/depot/+/11168 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7710 feat(users/Profpatsch/execline): add setsidProfpatsch1-0/+22
Small wrapper around `setsid(2)` that does not exist in the execline-style tooling. Is probably gonna fail iff our process is a session leader already, but I haven’t tried that out yet. Change-Id: I1a820f1c6d65ddc29c30995bfd56a760a9d6b341 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11167 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7709 feat(users/Profpatsch/whatcd-resolver): log json+ld fetchingProfpatsch4-71/+98
This traces the target of a json+ld fetch. We also simplify the telemetry stuff by using a pseudo-class `MonadOtel` everywhere. I wonder if we can get rid of passing the span to `assertM`, because it’s kind of an antipattern to be honest. Change-Id: I1448d643c909a29684fa1ae54037177ba2c20639 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11166 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7708 refactor(users/Profpatsch/whatcd-resolver): move AppT & Html outProfpatsch5-172/+212
These functions are just general setup and html helpers, the main file is getting a bit long otherwise. Change-Id: I194e9f7f4caa4ce204d510c885dcf5af63d0e76e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11165 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7707 chore(users/Profpatsch): remove more really dumb hlintsProfpatsch1-0/+2
Change-Id: Id7ca7e5716aba619bfe178c5c0831f2aa16c0257 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11163 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7706 chore(third_party/haskell): pa-label: 0.1.0.1 -> 0.1.1.0Profpatsch3-32/+3
chore(users/Profpatsch/whatcd-resolver): use more from Label New label version contains these helpers. Change-Id: I3ef2ae9b92f2c798842ae001588b2c6d9f3ab971 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11162 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7705 chore(tvix): bump tonic to 0.11.0Florian Klink6-168/+1152
This bumps tonic and surrounding crates to 0.11.x. We added support for tonic 0.11.x into tokio-listener (https://github.com/vi/tokio-listener/pull/4), so that's bumped as well. Change-Id: Icfade5894403228299836fefb21b2f9ae59dbebb Reviewed-on: https://cl.tvl.fyi/c/depot/+/11156 Reviewed-by: Connor Brewster <cbrewster@hey.com> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-16 r/7704 fix(tvix/eval): builtins.unsafeGetAttrPos returns path as a stringsterni1-1/+1
Change-Id: Ia1058a5ea687f413fbb62365da199032bdbd3fd2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11155 Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2024-03-16 r/7703 chore(users/Profpatsch): fix cabal.project & hie.yamlProfpatsch2-6/+0
Change-Id: I39bebe6ce2bde85d26a68b017c0e6d872e9b9705 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11161 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7702 fix(users/Profpatsch/httzip): fix PATHProfpatsch1-2/+2
Change-Id: I6f27a947fe609f7d6ce004ce5aaae76b32dbe4fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/11160 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7701 fix(tvix): don't emit rerun-if-changedFlorian Klink3-6/+6
`build.rs` emits rerun-if-changed statements for all proto files, as well as all include paths we pass it. Unfortunately, due to protobufs include path rules, we need to specify the path to the depot root itself as an include path, at least when building impurely with `cargo`. This causes cargo to essentially always rebuild, as it also puts its own temporary files in there. Unfortunately, tonic-build does not chase down to individual .proto files that are included. Disable emitting these `rerun-if-changed` statements for now. This could cause cargo to not rebuild protos every time, causing stale data until the next local `cargo clean`, but considering the protos change not that frequently, and it'll immediately surface if trying to build via Nix (either locally or in CI), it's a good-enough compromise. Change-Id: Ifd279a2216222ef3fc0e70c5a2fe6f87997f562e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11157 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-15 r/7700 docs(tvix): fix some docstringsFlorian Klink4-5/+5
Change-Id: Ife599387d0472cd746b992bd6755a2fb6a0e0dc4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11158 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-15 r/7699 fix(depotfmt): only exclude *imported* tvix testsVincent Ambo91-272/+412
When we added the Nix language test suite in cl/6126, we excluded the whole tvix tests folder from Nix formatting. This is unintentional, as we probably want *our* tests to be formatted correctly. Change-Id: I2b66d79e30fae17e75d5a1f8c44e279886091c5f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11154 Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-15 r/7698 chore: move protoCheck into extraStep of //nix/bufChecksterni2-15/+23
Resolves b/385. I have a feeling bufCheck should be moved to //tools as well. Change-Id: I2a2b63d135a2f8bcc982aa1138ff3213c6012f20 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11152 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-03-15 r/7697 feat(nix-compat/wire): add read_bytes[_unchecked]Florian Klink2-0/+133
This introduces a version reading sized byte packets. Both read_bytes, accepting a range of allowed sizes, as well as read_bytes_unchecked, which doesn't care, are added, including tests. Co-Authored-By: picnoir <picnoir@alternativebit.fr> Change-Id: I9fc1c61eb561105e649eecca832af28badfdaaa8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11150 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Tested-by: BuildkiteCI
2024-03-15 r/7696 docs(nix-compat/wire): update docstringsFlorian Klink1-5/+4
These are not streams, but AsyncRead and AsyncWrite. Change-Id: I7d988fa0490800b72862f4f0fcac3dceac70ec26 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11149 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-03-15 r/7695 feat(nix-compat/wire): add low-level wire format primitives codeFlorian Klink6-4/+157
This brings some initial Nix wire format parsing code, used in the nix daemon protocol, remote store/builder protocol, as well as the NAR format itself (note we already have more specialized code for the last one). Thanks to embr, this code already exists, in https://codeberg.org/gorgon/gorgon/src/branch/main/nix-daemon/src/wire.rs, and we can vendor it into here, as EUPL is compatible with GPL (in that direction). The code uses the tokio::io Reader and Writer traits, not the ones from the `futures` crate, as they provide some more convenient `read_u64_le` functions. More application-specific parsing code, as well as code to read strings, or bytes are left out for now, as we want to be be more restrictive w.r.t allowed max sizes, and need to parse bytes, not strings. The code slightly diverges, as we have clippy looped into CI. `Ok(…?)` can be turned into just the inner expression, and some .and_then can be expressed in a simpler fashion. Change-Id: Ie3adcb485e9d66786673b1962a08d4e5df3781d9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11148 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-03-14 r/7694 refactor(nix-compat/derivation): emphasize aterm_bytesFlorian Klink1-12/+13
derivation_or_fod_hash constructs ATerm bytes and feeds them to sha256. input_derivations being slightly modified is an implementation detail, so move the BTreeMap construction inline, and have aterm_bytes in a let binding (and feed it to the hash function directly while constructing it). This makes it a bit more understandable what's going on. Change-Id: I2f5cfbd1c964fd39ac731ca39e76cfc168f4c7d7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11147 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: John Ericson <git@johnericson.me>
2024-03-14 r/7693 refactor(nix-compat/store_path): add from_name_and_digest_fixedFlorian Klink2-5/+17
Allow constructing a StorePath with a fixed-size digest. Change-Id: Id7d0b0152f6c55660a8973a02c84afa9188ce3ba Reviewed-on: https://cl.tvl.fyi/c/depot/+/11144 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: John Ericson <git@johnericson.me> Tested-by: BuildkiteCI
2024-03-14 r/7692 refactor(nix-compat/store_path/utils): move helper function inFlorian Klink1-8/+7
This is only used inside this function, in 2 of the match cases. Change-Id: Ib361f5ee0e3b203802f7d05b9a7f332d14bbcf80 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11143 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: John Ericson <git@johnericson.me> Tested-by: BuildkiteCI
2024-03-14 r/7691 refactor(nix-compat/store_path): take [u8;32] for outer fingerprintFlorian Klink5-51/+46
The outer fingerprint used for store path calculation is always a sha256 digest. This includes both input and output-addressed store paths. We used a NixHash here, which can also represent other hash types, and that had a bunch of annoyances: - Whenever we had the bytes, we had to wrap them in a NixHash::Sha256(). - Things like AtermWriteable had to be implemented on NixHash, even though we then had an assertion it was only called in the NixHash::Sha256 case. Change-Id: Ic895503d9b071800d2e52ae057666f44bd0ab9d6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11142 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: John Ericson <git@johnericson.me> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-03-14 r/7690 feat(ops/terraform/deploy-nixos): support argstr mapFlorian Klink1-3/+3
This allows setting argstr to a map of keys and values. We use jq to construct "--argstr k v" arguments, which are passed to nix-instantiate. Change-Id: I720a597ca2276364bc7005c156064d938f143041 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11141 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-14 r/7689 refactor(ops/terraform/deploy-nixos): downcase bash variablesFlorian Klink1-4/+5
These are not environment variables, so let's shout less. Change-Id: I3132844937ee78b7230a46afc0240e0225a99f3e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11140 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de>
2024-03-13 r/7688 chore(ops/modules/open_eid): use nativeMessagingHosts.packagesFlorian Klink1-1/+1
trace: warning: The `programs.firefox.nativeMessagingHosts.euwebid` option is deprecated, please add `web-eid-app` to `programs.firefox.nativeMessagingHosts.packages` instead. Change-Id: Ic2518957eb8e9151f2fdb13a5f25dfbc12c577a2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11138 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-12 r/7687 docs(tvix/eval): C++ Nix now has deduplicated inherit (from)sterni1-0/+3
Change-Id: Icf74c699130c2ab774973a7e98bc44ffba8c5ec2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11139 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: flokli <flokli@flokli.de>
2024-03-11 r/7686 feat(tvix/boot/tests): add simple objectstore testFlorian Klink1-25/+30
This makes BLOB_SERVICE_ADDR configurable, and creates a flavor setting it to objectstore+file://$PWD/blobs. Change-Id: I68c21367f83f68b4dee701c5678f438c7d8fbe43 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11137 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
2024-03-11 r/7685 feat(tvix/castore/blobsvc/from_addr): support object_storeFlorian Klink1-1/+21
The object_store crate supports a ton of different stores, with different schemes. For now, use a objectstore+ scheme prefix to enable these. Change-Id: I946f76e32a0fb0867ef59060217894cda5b959b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11080 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com> Autosubmit: flokli <flokli@flokli.de>
2024-03-11 r/7684 feat(tvix/castore/blobsvc): add object storage implementationFlorian Klink6-9/+1271
This uses the `object_store` crate to expose a tvix-castore BlobService backed by object storage. It's using FastCDC to chunk blobs into smaller chunks when writing to it. These are exposed at the .chunks() method. Change-Id: I2858c403d4d6490cdca73ebef03c26290b2b3c8e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11076 Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI Reviewed-by: Brian Olsen <me@griff.name>
2024-03-11 r/7683 feat(tvix/store/bin): allow disabling OTLP at runtimeFlorian Klink1-32/+39
This was only possible by disabling without the otlp feature flag so far. Introduce the same --otlp=false mechanism that nar-bridge also supports to be able to turn it off at runtime. Change-Id: Ib22a364c35056ca9d8e327c0e2a79970a4cf4b2b Reviewed-on: https://cl.tvl.fyi/c/depot/+/11135 Reviewed-by: Connor Brewster <cbrewster@hey.com> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-11 r/7682 chore(fun/paroxysm): update deps and build against in tree crimpsterni4-145/+6256
To achieve this we switch to crate2nix which also requires us to run `cargo update` before the switch. Change-Id: I8c19a51f90f344e80064e70a4a2799d1c6db62ec Reviewed-on: https://cl.tvl.fyi/c/depot/+/11134 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-11 r/7681 chore(net/crimp): update dependenciessterni1-56/+135
Change-Id: I30b945859347d8f9b0c6947ecc278a3e9cb7ec2c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11133 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-11 r/7680 fix(net/crimp): correctly set content length for PUT requestssterni1-3/+12
Since https://github.com/curl/curl/commit/9c845be2797e20475 (presumably), libcurl will overwrite our previously set request method to POST if we set .post_field_size(…). The fix is to use the proper option for PUT/upload, .in_filesize(…). While we're at it, switch to using .upload(…) instead of the deprecated .put(…) which should be the same for HTTP. Change-Id: I393c1a02c70d5b99dff5901cd6e9d9434f68c15b Reviewed-on: https://cl.tvl.fyi/c/depot/+/11132 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-11 r/7679 feat(tvix/glue): Add AsyncRead wrapper to decompress streamsAspen Smith8-1/+777
Add a new AsyncRead wrapper, DecompressedReader, that wraps an underlying AsyncRead, but sniffs the magic bytes at the start of the stream to determine which compression format is being used out of the three that are supported by builtins.fetchTarball, and switches to the correct decompression algorithm adapter dynamically. This will be used in the implementation of builtins.fetchTarball Change-Id: I892a4683d5c93e67d4c173f3d21199bdc6605922 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11019 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-11 r/7678 feat(tvix/glue): Implement builtins.fetchurlAspen Smith11-54/+454
Implement the fetchurl builtin, and lay the groundwork for implementing the fetchTarball builtin (which works very similarly, and is implemented using almost the same code in C++ nix). An overview of how this works: 1. First, we check if the store path that *would* result from the download already exists in the store - if it does, we just return that 2. If we need to download the URL, TvixStoreIO has an `http_client: reqwest::Client` field now which we use to make the request 3. As we're downloading the blob, we hash the data incrementally into a SHA256 hasher 4. We compare the hash against the expected hash (if any) and bail out if it doesn't match 5. Finally, we put the blob in the store and return the store path Since the logic is very similar, this commit also implements a *chunk* of `fetchTarball` (though the actual implementation will likely include a refactor to some of the code reuse here). The main thing that's missing here is caching of downloaded blobs when fetchurl is called without a hash - I've opened b/381 to track the TODO there. Adding the `SSL_CERT_FILE` here is necessary to teach reqwest how to load it during tests - see 1c16dee20 (feat(tvix/store): use reqwests' rustls-native-roots feature, 2024-03-03) for more info. Change-Id: I83c4abbc7c0c3bfe92461917e23d6d3430fbf137 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11017 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: aspen <root@gws.fyi>
2024-03-11 r/7677 feat(aspen/emacs): Configure direnvAspen Smith1-0/+5
Change-Id: I541620448137c7e7443d0a7f9c10509fab02bdea Reviewed-on: https://cl.tvl.fyi/c/depot/+/11131 Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi>
2024-03-11 r/7676 feat(aspen/emacs): Use hotfuzz for completionAspen Smith2-0/+11
This is like orderless but a million times better (no need for spaces!) Change-Id: Id8d2382e1d83792959580bcbe807cdd9aebdde88 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11130 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-11 r/7675 feat(aspen/emacs): Some more rust bindingsAspen Smith1-6/+18
Change-Id: Iabdd9f75438e83e73c7e423a3646d72b9bbe5b83 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11129 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-11 r/7674 feat(aspen/emacs): Make vertico's faces look nicer with solaireAspen Smith1-2/+4
Change-Id: I7b3befb9f9607a301eaddff9808cdd27dabbfffe Reviewed-on: https://cl.tvl.fyi/c/depot/+/11128 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-10 r/7673 fix(users/wpcarro/nixos): ava's not tarascosterni1-1/+1
Change-Id: Ib9e28120556abdd81dd17e478617f3a84c0d554f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11125 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-10 r/7672 feat(treecrumbs): support for TOMLVincent Ambo1-0/+12
Similar to YAML, but with more weird keys and with sections. Change-Id: I94d69d2f0e53366855ccb5d99a432c6a0361a910 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11126 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-10 r/7671 feat(treecrumbs): support for JSONVincent Ambo1-0/+5
Fairly similar to YAML, except with only one way of naming keys and arrays. Change-Id: Ic2fa539466d69af55b36401bb8c03f2c7edcd91d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11112 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-10 r/7670 feat(treecrumbs): initial support for C++Vincent Ambo1-8/+34
Supports namespaces, functions, fields (including trailing return type syntax) and so on. One notable issue about this is that the tree-sitter parser for C++ returns the node *following* point if point is on whitespace, which means that at the top-level of a namespace the crumbs will often show the *next* function. I'm against adding workarounds for stuff like that, so I'll just keep it as is. Change-Id: If7e71525c4e86e128157dd4eb17c130297ed1e0a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11109 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-10 r/7669 refactor(treecrumbs): macro for language definitionsVincent Ambo1-21/+41
Adds a macro that provides a more convenient syntax for defining new languages for treecrumbs (and that can also be easily used outside of the core treecrumbs code). This macro automatically takes care of compiling tree-sitter queries for reuse. Change-Id: I6a0b892a083c3f243e8b8f0e1c865a9a8a1a5cf5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11107 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-10 r/7668 feat(tazjin/emacs): install treecrumbs packageVincent Ambo2-0/+4
Change-Id: Ia903a38df7258c1528f3d4ac3ca4ae7f82edb3e9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11106 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
2024-03-10 r/7667 feat(emacs-pkgs/treecrumbs): support "JSON-style" YAML syntaxVincent Ambo1-7/+12
Makes crumbs work correctly for weird stuff like: ```yaml foo: - { "bar": [ { baz: 1 }]} ``` Would be nice to have tests for this at some point. Change-Id: I034e83318435404ef8613e439313dbb08865f228 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11105 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-10 r/7666 feat(tools/emacs-pkgs): configure FSF_OWNERS fileVincent Ambo2-0/+8
This adds a separate owners file that can be imported in projects with FSF copyright assignment, so that only people with copyright paperwork on file can commit (or verify commits before approving). Change-Id: Ifbe07792572b9d6bf5f7d47c41135892bddea46b Reviewed-on: https://cl.tvl.fyi/c/depot/+/11108 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su>
2024-03-10 r/7665 feat(emacs-pkgs/treecrumbs): tree-sitter based breadcrumbsVincent Ambo2-0/+141
Adds a new 'treecrumbs' Emacs package that allows displaying fast, tree-sitter based breadcrumbs. The initial version only supports YAML (which is what I needed this for!). The package is documented, please go read the code and comments for more information. I assign copyright over this package to the FSF, paperwork is on file. This means that I can only accept contributions from people with the right paperwork. If this package ends up being useful, I intend to eventually submit it to GNU Emacs. Change-Id: If1297a080f63f402f83b6cc57fa7c970d32d3695 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11104 Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>