about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-08 r/7873 feat(tvix/nix-compat/wire): have write_bytes accept AsRef<[u8]> payloadsFlorian Klink2-5/+21
This includes String, &str etc. An example testcase with &str is provided. Change-Id: I900186d6ceb52f52bd41ef4596524c1f5b52470b Reviewed-on: https://cl.tvl.fyi/c/depot/+/11376 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-08 r/7872 refactor(tvix/nix-compat/wire): simplify write_bytes a bitFlorian Klink2-10/+14
Use the same EMPTY_BYTES trick from BytesWriter to write out the padding, rather than allocating a Vec. Change-Id: Ifb4ba1b45b7388adbc135fc8e46fd3d3cedd30aa Reviewed-on: https://cl.tvl.fyi/c/depot/+/11375 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-08 r/7871 docs(tvix/nix-compat/wire): update docstringsFlorian Klink1-19/+21
Only describe the format once (in `read_bytes`, and simplify the other docstrings a bit. Change-Id: Iff898f3c4173d506a357bc14bdffbf69c4c6e0e0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11374 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Autosubmit: flokli <flokli@flokli.de>
2024-04-07 r/7870 refactor(tvix/nix-compat): drop read_bytes_uncheckedFlorian Klink1-15/+19
This isn't used anywhere so far, and if someone really wants to, they can simply make the range open-ended. Change-Id: Iae9bcaa1f7ea032dd3ee76c8c142a38b6b72894d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11373 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Tested-by: BuildkiteCI
2024-04-07 r/7869 fix(nix-compat/store_path): fix Deserialize with borrowFlorian Klink1-3/+37
We were wrongly using `'de` as a lifetime for both `Deserializer` and `StorePathRef`. This prevented Deserializing into a struct containing `StorePathRef`. See https://serde.rs/lifetimes.html#the-deserializede-lifetime, the last part of the paragraph: The 'de lifetime should not appear in the type to which the Deserialize impl applies. - // Do not do this. Sooner or later you will be sad. - impl<'de> Deserialize<'de> for Q<'de> { + // Do this instead. + impl<'de: 'a, 'a> Deserialize<'de> for Q<'a> { This fixes it, and adds a test, deserializing into a `Container` struct. It also fixes the existing test cases, deserialize_ref was actually deserialize_owned, and deserialize_owned didn't exist yet - but they alone are not enough to provoke the lifetime issues. Change-Id: Iaed2832998cae5f192eafe7fd5243e82ff6e051e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11372 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7868 feat(users/picnoir/tvix-daemon): implement set_options operationPicnoir1-9/+52
The protocol is more stateful than I initially thought. We need to keep track to a bunch of things, including but not limited to: the client settings, the client version. I moved things around a bit to keep this state along with the client socket. Change-Id: Ibd34fbe7821c20a460934ea1af0719f5de46e491 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11359 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-07 r/7867 feat(tvix/nix-compat): read client setting from wirePicnoir2-3/+225
Add the primitives necessary to read the client settings from the Nix daemon wire protocol. Introducing the read_string primitive. This trivial primitive parses a read_bytes call, check the bytes are valid utf-8 bytes and wraps the result in a String. Change-Id: Ie1253523a6bd4e31e7924e9898a0898109da2fa0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11358 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-07 r/7866 feat(tvix/castore): drop test-case crate depFlorian Klink3-6/+0
Change-Id: I5049a3682a58ce848d80f413b2964331025a90a8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11370 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7865 refactor(tvix/castore/directoryservice/from_addr): migrate to rstestFlorian Klink1-18/+19
Change-Id: I52b14652822766421d66e95bc646ed7baecc705f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11369 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Tested-by: BuildkiteCI
2024-04-07 r/7864 refactor(tvix/castore): migrate closure_validator to rstestFlorian Klink1-13/+14
Change-Id: I6c594d2e670a681484b858c3e04bc25b9e5a2077 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11368 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7863 refactor(tvix/castore/tonic): migrate to rstestFlorian Klink1-12/+16
Change-Id: Ie088bf03c739bf64abf3432175362a8f92f501c2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11367 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7862 refactor(tvix/castore/hashing_reader): migrate to rstestFlorian Klink1-5/+6
Change-Id: I99ae0e27b4db4799db8af7cd6b9cc8d7f09227de Reviewed-on: https://cl.tvl.fyi/c/depot/+/11366 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7861 refactor(tvix/castore/blobservice/object_store): drop individual testsFlorian Klink1-57/+3
This (and more) should now be covered by the generic testsuite (in crate::blobservice::tests). Change-Id: Ib3afc4f19f7e37a561b7398d43663dc941971f5c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11365 Tested-by: BuildkiteCI Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-07 r/7860 refactor(tvix/blobservice/from_addr): move from test_case to rstestFlorian Klink1-33/+30
This allows conditionalizing test cases on feature flags. Change-Id: Ic9ed9ef52f703c973fda2ca4aae5f425e33b67de Reviewed-on: https://cl.tvl.fyi/c/depot/+/11364 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Tested-by: BuildkiteCI
2024-04-07 r/7859 fix(aspen/system): Fix and reenable system buildAspen Smith2-8/+0
Change-Id: I36f7a772e70be8711c03150b4b6dfcd6d4e299f2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11371 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-04-06 r/7858 chore(3p/sources): Bump channels & overlayssterni2-18/+17
- agenix has not been updated (https://github.com/ryantm/agenix/pull/241). - Re-enable now fixed dependency of flokli/archeology-ec2. Change-Id: I4e0399e5b5dbaf5e504076e029013f165dd4d191 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11363 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-04-06 r/7857 feat(tvix/nix-compat/wire): introduce BytesWriterFlorian Klink7-7/+555
This deals with writing byte packets of larger sizes to an underlying AsyncWrite. Its constructor receives the expected size. It also deals with writing padding if flush/shutdown is called after writing all the payload. Change-Id: I8acbf992467f3862ffb8c7d669e8c0c8eced14c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11355 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Brian Olsen <me@griff.name> Tested-by: BuildkiteCI
2024-04-05 r/7856 feat(tvix/store/proto): avoid clone in PathInfo::validate()Florian Klink2-18/+13
Have this return a StorePathRef<'_>, rather than a StorePath, and leave it up to the caller to possibly convert it to a owned StorePath. This avoids some allocations, if we only want to validate. Change-Id: I5cf8e246fe02bd4e631f46a5cb86d3f77a728a0d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11361 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com>
2024-04-05 r/7855 feat(tazjin/khamovnik): enable dockerVincent Ambo1-0/+2
Change-Id: I105aad32cfcebd7a1b9108e4fd847073fb30da15 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11360 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-04-05 r/7854 refactor(3p/mime4cl): use SB-POSIX for FILE-LENGTHsterni2-43/+5
This is slightly better than the (mostly untested) mess we had before: Just implement the one thing we need using the tools the one implementation we support (SBCL) gives us. Eventually, we'll want to make this portable, probably using osicat. Unfortunately, packaging this requires support for cffi-grovel (b/383) which buildLisp lacks at the moment. Change-Id: I6960015f80e6a5dfde67baf55537c5274a19e4e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11356 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org>
2024-04-05 r/7853 feat(tazjin/homepage): add link to volgasprintVincent Ambo1-0/+10
Change-Id: Ia30cb6d533abd73f896b5a303049b2cb9cc26bf1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11357 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2024-04-04 r/7852 refactor(tvix/nix-compat): make padding_len pub(crate)Florian Klink1-1/+1
Let's make this usable for the entire crate. Change-Id: I754408908a00296ee80dd52680f84b8a7cb22317 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11354 Tested-by: BuildkiteCI Reviewed-by: Brian Olsen <me@griff.name> Autosubmit: flokli <flokli@flokli.de> Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr>
2024-04-04 r/7851 feat(tvix/eval): implement `appendContext`Ryan Lahfa5-7/+91
`appendContext s ctx` will just append a user-crafted context attrs to `s`. The most important part of this builtin is to perform all the relevant invariant validations to avoid letting the user craft invalid contexts which can never be built, e.g. invalid store paths, inexistent derivations, etc. This version is incomplete and full of TODOs, but passes all the Nix's context strings tests, so we turn them on. Change-Id: I625dc5e7c4f5b784f078b390f04b0ee5a8d65a7c Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11263 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7850 fix(tvix/glue): produce context for `builtins.(path|filterSource)`Ryan Lahfa3-5/+24
Fixes b/392. Output paths were created, depending on a plain store path but no context string was attached to track that plain dependency. Context string propagation tests are strengthened to prevent any regression on this. Change-Id: Ifd6671aeba6949324b0bb9f0f766b87db728d484 Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11351 Reviewed-by: Alyssa Ross <hi@alyssa.is> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-04-03 r/7849 chore(users/picnoir/tvix-daemon): apply clippy suggestionsPicnoir1-3/+3
Remove potential partial reads/writes and instead read/write the full buffer size: we want those to be 64 bits. Change-Id: I1f767baf23fa80c2babb8113f61d1a9e72a8d8dd Reviewed-on: https://cl.tvl.fyi/c/depot/+/11350 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7848 fix(nix/buildkite): solve bogus realpath errors if build steps failsterni1-1/+4
- Set pipefail to make sure the correct exit code gets returned. - Don't let xargs(1) call realpath(1) if the build fails (and nothing is printed to stdout). Change-Id: I526a18df877601d884b83862da5f37336cdf52cd Reviewed-on: https://cl.tvl.fyi/c/depot/+/11312 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-04-03 r/7847 feat(users/picnoir/tvix-daemon): add log verbosity flagPicnoir3-20/+18
Adding a verbosity flag available through the CLI/ENV variable. Change-Id: If04cc2e6e26e7cb3c2df7821fce222da2b85a95a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11349 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7846 refactor(tvix/nix-compat): drop read_u32Picnoir2-35/+3
Actually these are all u64 LE encoded on the wire. Change-Id: I5ca22c7639607ac47117cd946e036a444271885a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11348 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7845 feat(users/picnoir/tvix-daemon): parse up to the operationPicnoir2-11/+34
Using all the primitives recently implemented to nix-compat to reach the point where the Nix client start to send us operation requests. Using a small integration test script (or the VM test, but let's face it, it's too slow to be useful), we manage to reach the point where we're able to read a store operation: 2024-03-21T18:53:27.624876Z INFO tvix_daemon: Incoming connection addr=unix 2024-03-21T18:53:27.625312Z INFO worker:perform_init_handshake: tvix_daemon: Trust sent conn=Connection(unix) conn=Connection(unix) 2024-03-21T18:53:27.625406Z INFO worker: tvix_daemon: Client hanshake succeeded conn=Connection(unix) 2024-03-21T18:53:27.625488Z INFO worker: tvix_daemon: Operation received op=SetOptions conn=Connection(unix) We had to take some shortcuts wrt. stderr/log management. The CPP Nix codebase is a bit confusing in that area. I'll need to spend more time reading this to fully understand what's happening there. For now, sending the STDERR_LAST command to the client does the trick. Change-Id: I9b0e20a52d885e64fe29188496aac5334de61edd Reviewed-on: https://cl.tvl.fyi/c/depot/+/11233 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-04-03 r/7844 feat(tvix/nix-compat): introduce write_worker_trust_levelPicnoir1-0/+22
This is used by the nix client to determine whether or not the daemon trust it. The trust conditions check are daemon-specific, hence not part of nix-compat. Change-Id: Icbcba2f7f1fd58f67e7da72d22a264f5a3f3619d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11231 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7843 feat(tvix/nix-compat): introduce write_bytesPicnoir2-10/+79
Write counterpart of read_bytes. Despite its name, we mostly use it to write strings (as in ascii strings) to the wire. We also extract the padding calculation in its own function. Change-Id: I8d936e989961107261b3089e4275acbd2c093a7f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11230 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-04-03 r/7842 chore(users/flokli/nixos): restore archeology-ec2 buildFlorian Klink2-3/+2
Temporarily remove parquet-tools, so this builds again. Can be re-added once https://github.com/NixOS/nixpkgs/pull/301032 landed upstream. Change-Id: Ie74f014eb8158d5f529a5f1c55788a4edc5c805d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11347 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: edef <edef@edef.eu> Tested-by: BuildkiteCI
2024-04-03 r/7841 chore(3p/sources): return to a proper nixpkgs channel (unstable-small)sterni1-4/+4
Change-Id: I27e3cd95ff4320a81cf74ad1a6e08771b7b682c0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11346 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
2024-04-01 r/7840 feat(tvix/eval): implement `builtins.path`Ryan Lahfa6-31/+367
Now, it supports almost everything except `recursive = false;`, i.e. `flat`-ingestion because we have no knob exposed in the tvix store import side to do it. This has been tested to work. Change-Id: I2e9da10ceccdfbf45b43c532077ed45d6306aa98 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10597 Tested-by: BuildkiteCI Autosubmit: raitobezarius <tvl@lahfa.xyz> Reviewed-by: flokli <flokli@flokli.de>
2024-04-01 r/7839 refactor(tvix/store): generalize `PathInfo` constructorsRyan Lahfa3-20/+63
Instead of enforcing NAR SHA256 all the time, we generalize the `PathInfo` constructor to take a `CAHash` argument which can drive whether we are having a flat, NAR or text scheme. With this, it is now possible to implement flat schemes in our evaluation builtins, e.g. `builtins.path`. Change-Id: I15bfee0ef4f0f428bfbd2f30c57c012cdcf6a976 Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11286 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-03-31 r/7838 chore(3p/sources): remove emacs overlayVincent Ambo2-16/+0
Change-Id: I374912efcb45273d0a32daa3da4b68a9cad58afa Reviewed-on: https://cl.tvl.fyi/c/depot/+/11328 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7837 chore(3p/sources): bump channels & overlays – xz editionsterni10-32/+68
Update all 3p/sources as we do normally except - agenix which is still pinned to 0.15.0 - nixpkgs (unstable) which we bump to the HEAD of the staging-next branch. This branch includes the downgrade of xz from 5.6.1 to 5.4.6 (https://github.com/nixos/nixpkgs/commit/d6dc19adbd). It also includes the second haskell-updates rotation with GHC 9.6.4 which contains a few build fixes that seem to be required to get our Haskell targets to work. Note that this only reverts xz to a version that doesn't contain the now known backdoor (CVE-2024-3094) which may or may not actually affect NixOS. Additionally reverting to a version before the malicious contributor's involvement may be difficult, but prudent: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068024 Changes required by the updates: - //3p/overlays/haskell: - Update ihp-hsx to latest master to fix build with Stackage LTS 22. - Update tmp-postgres to latest master to work around failure with ansi-wl-pprint >= 1. - Patch punycode for mtl >= 2.3. - //users/Profpatsch: - Clean up some warnings, mostly about unused dependencies - my-prelude: Fix build with ghc-boot-9.6.4 - cas-serve: Use crypton over unmaintained cryptonite - ical-smolify: skip in ci, iCalendar would require heavy patching to work with Stackage LTS 22. - //users/{wpcarro,aspen,flokli}: Disable home-manager / nixos configuration builds that seem to have transient failures that should disappear as we move away from staging-next and closer to an actual channel release. Change-Id: I5cca48e101041c3aedc1d9932dbca2cac885fcc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11289 Tested-by: BuildkiteCI Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-31 r/7836 chore(3p/nixpkgs): try disabling Emacs overlayVincent Ambo2-2/+1
Change-Id: I63d9d1cc7221bd3f18b0157f423cf3e369482a2f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11327 Reviewed-by: sterni <sternenseemann@systemli.org> Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
2024-03-31 r/7835 feat(automatic-gc): robust way to disable automatic-gcVincent Ambo1-0/+5
We just had a minor incident where apparently our build cache for the critical security fix was deleted by automatic-gc (which I had stopped manually) being reenabled by an unrelated whitby deploy. This adds a new mechanism where by touching a file called `/run/stop-automatic-gc` the GC can be prevented from running. We might want to configure an occasional alert or something if this file exists, so we don't forget about it when we are using it. Change-Id: I041e57e24b2b684696164a2d516581d7f5696ef0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11326 Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su> Reviewed-by: flokli <flokli@flokli.de>
2024-03-31 r/7834 fix(web/panettone): Hotfixes for full text search changeAspen Smith3-5/+8
- Actually define *static-dir* at build time, to get the search.png in the search box - Better logging for migration running at startup time - Fix and-where to properly exclude nil clauses - fix looking up build-time vars in the :build package Change-Id: Ia2ef3b2715d4c2efb62bbb2c72084f0f0ad09562 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11325 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7833 feat(aspen/system): Install patdiffAspen Smith1-0/+1
Change-Id: I86a18fb3fa135c4324064e6acde06bd4dcfbb94d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11294 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7832 fix(aspen/system): Use suspend-then-hibernate for lid closeAspen Smith1-1/+2
Change-Id: I07b8cea035050ff90fbb851e4f6401285514db1a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11293 Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7831 feat(aspen/system): Weather in i3status barAspen Smith3-108/+123
Change-Id: Ib2572fea5fc81d6b4d321a2e317a02398d0ae612 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11292 Tested-by: BuildkiteCI Reviewed-by: aspen <root@gws.fyi> Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7830 feat(aspen/system): Add luscaAspen Smith5-0/+186
A Framework laptop Change-Id: I646e705d12b76c83e8cdcf11c618d07db3a21f0c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11235 Reviewed-by: aspen <root@gws.fyi> Tested-by: BuildkiteCI
2024-03-31 r/7829 chore(web/panettone): Make it easier to override oauth settingsAspen Smith1-4/+12
For local dev, it's nice to be able to set the oauth variables by hand before starting the server - in that case, we don't want to override them with the defaults. Change-Id: I530518b4d58df1edf55ce062cf7ff3290784a3ed Reviewed-on: https://cl.tvl.fyi/c/depot/+/11259 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7828 feat(web/panettone): Support full-text search of issuesAspen Smith7-36/+126
Support basic full text search of issues using postgresql's built-in text search. There's a new column on the issues table called `tsv`, which contains a tsvector of the title concatenated with the description, and a new search form on both the index and closed issues page which allows searching that tsvector with a user-supplied query. Results are ranked according to that text query in the case of a search. This works fine for now, but next up I'd also like to highlight the results according to the bits that matched the user's query. Change-Id: I25170bedbbbcdc3ed29a047962e9fcfe280d763a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11258 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7827 chore(web/panettone): Use postgres 16 in local devAspen Smith1-2/+2
This is needed for the GENERATED ALWAYS AS...STORED stuff we'll be doing for text search later on, but also just matches what's being run in prod Change-Id: I076ab88c9735f29b5f669107a339f99f80a00cc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11257 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2024-03-31 r/7826 feat(web/panettone): Add a system for database migrationsAspen Smith5-37/+228
Add a system for writing, running, and tracking database migrations (changes to the database schema) over time, inspired by but significantly simpler than postmodern-passenger-pigeon. Migrations can be generated by running (PANETTONE.MODEL:GENERATE-MIGRATION "name"), and are numerically ordered lisp files that define (at least) a function called UP, which runs the migration. The migrations that have been run against the database are tracked in the `migrations` table, and when the `(PANETTONE.MODEL:MIGRATE)` function is called (as it is on startup), all migrations that have not yet been run are run within a transaction. This includes one migration `1-init-schema.lisp`, which migrates the database (idempotently) to the current state of the schema. Change-Id: Id243a47763abea649784b12f25a6d05c2267381c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11253 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2024-03-31 r/7825 feat(3p/lisp): Add str package and dependenciesAspen Smith3-0/+83
Change-Id: Iffb66f4580517b1dbfee8c79e766552508695e5f Reviewed-on: https://cl.tvl.fyi/c/depot/+/11252 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi>
2024-03-31 r/7824 feat(aspen/system): Make battery index configurableAspen Smith2-7/+7
My new laptop has the battery at index 1, not index 0 Change-Id: I64fa16e7f0eecf6b623361645d73b1176e1e5d48 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11311 Tested-by: BuildkiteCI Autosubmit: aspen <root@gws.fyi> Reviewed-by: aspen <root@gws.fyi>