Commit graph

15526 commits

Author SHA1 Message Date
Vincent Ambo
ec38839c33 feat(git-serving): Configure josh to serve the depot over HTTP
Previously we served the dumb git HTTP protocol from code.tvl.fyi via
cgit. This CL disables this feature and instead runs josh in the same
location (by redirecting appropriately), but while also enabling
partial cloning of all subtrees of the depot.

For example, after this CL the following would result in an
independent clone of //nix/readTree:

    git clone https://code.tvl.fyi/depot.git:/nix/readTree.git

Note that there are no josh workspaces configured at all for now,
these references are only for static depot subpaths.

Please refer to the documentation for josh for more information on
available kinds of josh filters.

Josh state is kept in a systemd state directory in /var/lib/josh and
backed up to Restic. Backing this up is necessary, as josh uses
stateful information to do things like tracking merges and rewriting
history per subtree appropriately to avoid cloned repositories ending
up in peculiar states.

Change-Id: I156f0298c2aa42e3bdbf5a0e86109070d640c56e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3563
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2021-09-16 20:34:05 +00:00
Vincent Ambo
f35afb0e4a chore(cgit-taz): Disable HTTP git serving
We don't need this anymore as josh will be doing it instead.

Change-Id: I04324324fefa2b44604a8a5fad4dd3c7b7fe97a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3564
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2021-09-16 20:34:05 +00:00
Adrián Medraño Calvo
c6ad2b638e refactor(3p/exwm): Remove `exwm-input--skip-buffer-list-update'
* exwm-input.el: (exwm-input--on-buffer-list-update): Stop
	checking `exwm-input--skip-buffer-list-update'; it's no longer
	needed now that we keep track of the last selected window and
	buffer.
	(exwm-input--skip-buffer-list-update): Remove variable.

	* exwm-manage.el (exwm-manage--manage-window): Remove binding of
	`exwm-input--skip-buffer-list-update'.

Imported from https://github.com/ch11ng/exwm/pull/737

Change-Id: Iacbdb8b607a82352e5b55509b0aba93f1d87a9f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3562
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 11:33:42 +00:00
Qiang Fang
e74f12f85b refactor(3p/exwm): Improve detection of focus changes
* exwm-input.el: (exwm-input--on-buffer-list-update): Keep track
	of last selected window and buffer, update focus only when any
	of those changes.
	(exwm-input--update-focus-defer): Add commentary.
	(exwm-input--update-focus-window-buffer): Add
	variable.

Imported from https://github.com/ch11ng/exwm/pull/737

Copyright-paperwork-exempt: yes
Co-Author: Adrián Medraño Calvo <adrian@medranocalvo.com>
Change-Id: I3e53bcf45f04d0f9a88b757dffefe6de20daadfb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3561
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 11:33:42 +00:00
Vincent Ambo
6cfee7ef5a chore(3p/josh): Bump version to latest master
Change-Id: I01b58653a9d0067deb9644ecfa4d4b3bd75185a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3557
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-16 01:19:16 +00:00
Matt Beshara
2be5ed1d4a fix(3p/exwm): Use hash table to cache ‘exwm-workspace--client-p’
Commit imported from https://github.com/ch11ng/exwm/pull/848

Change-Id: I2b5509649b6933b52ed5df7f7fad7f3720f5facd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3560
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-16 01:18:59 +00:00
Vincent Ambo
d0f7c85eb6 chore(3p/overlays): Override EXWM sources with tree from depot
Change-Id: I6047ab634deb2f019bcdc9a76a2194997fc84b29
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3559
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-16 01:18:59 +00:00
tazjin
6012ac8c1e Merge "chore(3p/exwm): Subtree EXWM ... again" into canon 2021-09-16 01:16:56 +00:00
sterni
d7f60bcb04 feat(nix/readTree): record list of children added by readTree
This change adds a new attribute to readTree nodes, `__readTreeChildren`
which is a list of attribute names added to this node by readTree.

This is then used by `gather` for `ci.targets` to avoid evaluating
attributes unnecessarily. Especially since Nix is not as lazy as we'd
like when determining types (i. e. child ? __readTree needs to force
`child` even when it's not an attribute set), evaluating attributes
unnecessarily is sometimes problematic.

Change-Id: I0a98691d41f987e23ee7e9ba21fbe465da5fe402
2021-09-15 22:37:25 +00:00
sterni
d904724adf refactor(rust-crates-advisory): check type instead of blacklisting
`our-crates` can just check if the attributes in question are
derivation (i. e. have an `outPath`) instead of blacklisting the
`__readTree` attribute specifically.

Change-Id: I472692e89c0e9eff551372c72a73ab765b0b6599
2021-09-15 22:35:23 +00:00
Vincent Ambo
cefff2ca25 chore(3p/exwm): Subtree EXWM ... again
Upstream EXWM is now sort-of unmaintained[0], but some important PRs
are pending[1] which I would like to absorb here somehow.

[0]: https://github.com/ch11ng/exwm/issues/845
[1]: https://github.com/ch11ng/exwm/pull/848

git-subtree-dir: third_party/exwm
git-subtree-mainline: 7894d7e178
git-subtree-split: 0368127976
Change-Id: I078358c0ea1d2bac99111748ce9c137d2804ac4e
2021-09-15 22:35:39 +03:00
Vincent Ambo
7894d7e178 feat(3p/cgit): Highlight cheddar callout in about views
Change-Id: Ica055ab621608ff78dbbf9ea9a2c9d1cdf2ff21e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3556
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 13:53:28 +00:00
sterni
c0e4b863c7 refactor(web/tvl): translate to markdown
This is mostly equivalent, but we need to accomodate cheddar a bit:

* cheddar doesn't like markdown inside of HTML, so the <main> tag
  around the image needs to go.

* cheddar messes with a top-level SVG for some reason, so we need to
  wrap it in a <div> in order to prevent that.

Change-Id: If9ed516623e81e24f600ee9f1b6d4d611b5bcedd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3117
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:55:45 +00:00
sterni
922af58cce fix(bin): correct outdated attribute paths
* Mostly stale attribute specifications due to the third_party ->
  third_party.nixpkgs migration.

* kontemplate is ops.kontemplate.

* tazjin's rebuilder seems to no longer exist.

Change-Id: Ic97468f9e73cb0ba7df740c3807ca011e385e357
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3550
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:36:49 +00:00
sterni
a61d9608fa feat(bin): add nint to __dispatch.sh
Change-Id: I0e52a0e87ae15901aaabcc7196d2cd76a8b143aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3549
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:34:23 +00:00
Vincent Ambo
2c35244d16 feat(web/template): Link to CI in TVL page footers
Change-Id: I53229374605774f34d3cfda2b071f65b79227a24
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3555
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 12:32:50 +00:00
sterni
529ac7fd12 refactor(nix/nint): use stdout().write_all() over print!()
Change-Id: Ic372442c5156f1e13fea28c1b3e57d64e89ba49b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3546
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 12:28:27 +00:00
sterni
391a186d27 refactor(nix/readTree): remove unused assertMsg function
Change-Id: I4048a59ca3daeb541a7294ce72eebe32982d852c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3553
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:20:01 +00:00
Vincent Ambo
7b13aa62a8 feat(tazjin/tverskoy): Enable adb
Change-Id: I088d2b0526f10d848da56d8192e93b79d6297746
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3539
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-15 12:15:17 +00:00
sterni
eb65d13f5a feat(users/sterni/emacs): enable rust mode
Change-Id: I49c8f5c0c18ac7664f5f120ad23a55c3bc19bd5b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3545
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-15 10:25:57 +00:00
sterni
4ebab80b5a test(nix/utils): unit test path predicates
Change-Id: I85f38ef8f284c4accd1ea744f61358622785358d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3534
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-09-14 14:17:44 +00:00
sterni
987b9b551c feat(nix/runTestsuite): rebuild if test case list changes
If the result of the assertions changes for a successful test
suite (this happens if tests are reworded, added or removed), this
makes sure the no-op derivation is rebuilt.

This makes sure that test suites show up in buildkite on ocassions other
than channel bumps, since they are only added to the job list if their
`outPath` is missing nowadays (see cl/3427).

Change-Id: Ia1050cca5eeed8b7da84c40f6154b40760a3047f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3536
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-09-14 14:10:46 +00:00
sterni
3a8e8120de feat(nix/tag): add functions for querying a tag's name and value
Both are just trivial wrappers around assertIsTag to make these lookups
more ergonomic. This also allows us to demote assertIsTag to an
implemtation detail.

Change-Id: Ib6ba2a858f4839354a57b660042b418976c4b1d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3541
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-09-14 14:02:03 +00:00
sterni
1883159f92 docs(nix/tag): correct comment for assertIsTag
Change-Id: Id54cc3a1d7c83c6a94b9446c76b00ca2ce1ab48e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3540
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-09-14 14:02:03 +00:00
sterni
8e156e6b86 feat(sterni/mblog): convert apple note mime msgs to html
For now mblog only contains the mnote-html executable which takes a mime
message from a maildir and prints the equivalent HTML fragment to
stdout. It is intended to work with the mblaze(7) utilities,
i. e. mnote-html resolves all `object` tags to proper `img` inclusions
with the correct filename, so mshow(1)'s -x version can supply the
needed image files. A note created using Apple's Notes app (tested with
the iOS version) can be converted in a viewable HTML file like this:

    $ mnote-html path/to/msg > fragment.html
    $ mshow -x path/to/msg
    $ cat <(echo "<!DOCTYPE html>") fragment.html > document.html
    $ xdg-open document.html

Note that only the limited feature set of Apple Notes when using the
IMAP backend is supported. The iCloud-based one has more (quite neat)
features, but its notes can only accessed via an internal API as far as
I know.

This CLI is a bit impractical due to the big startup overhead of loading
the lisp image. mblog should be become a fully fletched static site
generator in the future, but this is a good starting point and providing
the mnote-html tool is certainly useful.

Change-Id: Iee6d1558e939b932da1e70ca2d2ae75638d855df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3271
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 21:39:49 +00:00
sterni
7f31562acf feat(3p/lisp/mime4cl): search for first (default) mime text part
Adds a simple generic function find-mime-text-part which returns the
first suitable text/* part in any MIME part it is given.

Has no meaningful alternatives handling at the moment: It will pick the
first text part and doesn't allow specifying a preference.

Change-Id: Id9b113b3ef3ca1a575ce8f3582a4f85e30edfb43
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3379
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 21:39:49 +00:00
sterni
62fa36c9c2 fix(nix/buildLisp): preserve argv[0] in buildLisp.program
I *thought* I was being clever with the (cdr (member …)) call, but
somehow completely forgot that *posix-argv* and
*command-line-argument-list* are equivalent to argv, so they also
contain the program name as the first element. Dropping that made
argument parsing completely break down, so let's revert back to the
older solution which works quite well.

Change-Id: If7d3321cda0ca512bc8c23b6541ce390b81a3e24
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3538
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-12 21:39:49 +00:00
sterni
e507b84291 feat(users/sterni/nix/string): very simple printf implementation
This is mostly to yet another silly idea which turns out to be
possible. This may be actually useful should I implement more
sophisticated format specifiers like "%xd" or "%f".

Change-Id: Ia56cd6f5793a09fe5e19c91a8e8f9098f3244d57
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3537
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-12 09:25:30 +00:00
sterni
2f750e4a14 refactor(grfn/xanthous): avoid unnecessary recompilation
hpack is a bit dumb when generating the list of modules for a cabal
file's component if multiple of them live in the same directory.
Specifically it seems to assume that all modules in the source-dirs
of a particular component are also necessary for its compilation.

This is quite bad in the case of xanthous since both library and
executable have source-dirs: src, so all modules will be compiled
twice: Once for the library and then again for the executable
despite it depending on the library (actually 4 times in total
since we need to build a unprofiled and profiled object for each
module…).

To fix this we just move Main.hs into its own directory and change
the executable's source-dirs, so hpack doesn't get confused anymore.
Since all components now have their own source-dirs, unnecessary
redundant compilation should be down to 0. The diff of the cabal
file shows quite nicely how many module recompilation we've gotten
rid of.

Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-11 16:00:12 +00:00
sterni
a63057414d chore(3p): bump NixOS channels to 2021-09-11
* sbcl: 2.1.2 -> 2.1.8

Change-Id: I3556d1f4c41fdaa40017cfe21c389ec121127b0c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3532
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-11 16:00:12 +00:00
Vincent Ambo
48091a3416 fix(deploy-whitby): Add jq to script $PATH
Change-Id: Ide669bce545394335b8643fa2896a242cac3df65
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3528
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-11 14:33:42 +00:00
Vincent Ambo
933edf7764 fix(deploys.*): Folder for diffs is in /diff/
... this was missing before.

Change-Id: I5b79cb78665f24fdb7cc6496e3782d3940dc77b6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3527
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-11 14:33:42 +00:00
Vincent Ambo
f5f0b80843 feat(sourcegraph): Upgrade 3.30.4 -> 3.31.2
This one seems a little more involved:
https://docs.sourcegraph.com/admin/migration/3_31

I believe we skip that corruption issue in the previous CL though, by
simply never deploying a version with that weird broken image.

See b/144

Change-Id: I3bbf1b719d00905e08a92011ace5485467f504ef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3525
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-11 14:11:52 +00:00
Vincent Ambo
4d0eb5037a feat(sourcegraph): Upgrade 3.29.1 -> 3.30.4
See b/144

Change-Id: Ied9490f3ce6fb3fda8cbb9983416b02ea451fb44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3524
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-11 14:08:36 +00:00
Vincent Ambo
90971e07a1 feat(sourcegraph): Upgrade 3.28.0 -> 3.29.1
See b/144

Change-Id: Ia62d4cbf581caaefa0dba455376eec60b8c817d6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3523
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-11 14:04:50 +00:00
Vincent Ambo
c148f89251 fix(sourcegraph): Temporarily comment out our syntax highlighter
We changed away from the default sourcegraph one because it didn't
support Nix, but it seems that there's been a change in the
interaction protocol.

Change-Id: I3a2691df6a87672cf83b819143f25d93d9cd6d13
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3531
Tested-by: BuildkiteCI
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-11 14:00:38 +00:00
Vincent Ambo
5e61c5d246 feat(sourcegraph): Upgrade 3.27.5 -> 3.28.0
See b/144

Change-Id: Ia09ad2af6043dcac6681c549103d1e6f52b4e0a0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3522
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-11 13:47:10 +00:00
Vincent Ambo
52c040eed5 feat(sourcegraph): Upgrade 3.26.0 -> 3.27.5
See b/144

Change-Id: I50d417c51b05bafcd3fe7e285f30079db8be499a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3521
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-11 11:30:37 +00:00
Vincent Ambo
164fc97b4f fix(deploy-whitby): Make diffs world-readable
Change-Id: I1610a8d189f95908bab4cd00057cc080ae47a21a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3530
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-11 01:41:36 +00:00
Vincent Ambo
3a80ab2ba5 fix(deploy-whitby): Add .html suffix to diff filenames
This makes nginx' content-type recognition work correctly.

Change-Id: I990b00f1e0f4ef311f53a8885718fa33d249c886
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3529
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-11 01:41:36 +00:00
Griffin Smith
9c038cbff0 feat(ops/deploy-whitby): Add the start of a script to deploy whitby
Add the beginnings of an auto-deploy script for whitby, intended to
be (eventually) suitable for running automatically in a systemd timer.
The current iteration of the script doesn't actually do any deploying,
but instead takes as an argument a revision, creates a new git worktree
in /tmp with that revision checked out, runs a nix-diff of whitby's
system derivation in the running system and at that closure, puts an
html-rendered version of that diff in the public directory used by
deploy.tvl.fyi, and finally sends a message to IRC via irccat with a
link to that HTML page.

Refs: b/110
Change-Id: Id40525567f8845590c909568befd8d00c07a481c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3145
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: kn <klemens@posteo.de>
2021-09-10 16:13:20 +00:00
Griffin Smith
79b39bb66e feat(whitby): Serve static HTML dir for deploys.tvl.fyi
Add a new domain and nginx virtual host at deploys.tvl.fyi, serving out
of a static directory on whitby which is created by systemd-tmpfiles.

This will be used to serve diffs rendered by nix-diff for
pending deploys for whitby

Since this contains stateful data, it is added to the restic backups
on whitby.

Refs: b/110
Change-Id: I5869d40800bbf5fb8fb39878a857f66ff5787830
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3144
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-10 14:37:36 +00:00
Vincent Ambo
6e8b6b3374 feat(tverskoy): Enable services.depot.automatic-gc
Change-Id: I5268ea93cf9727ad7fc1beedf9ec72a9d9e6eae8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3526
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-10 11:37:30 +00:00
Vincent Ambo
5e08f9b6c6 refactor(cheddar): Support multiple shortlinks & custom link sets
This makes it possible for users of cheddar as a library to supply
their own shortlinks. In practice it is unlikely anyone will do this,
but the change also allows us to (relatively) easily add additional
shortlinks to the set used by TVL.

Note that Cheddar is primarily intended for use by TVL and the default
rendering function interfaces have not changed, and will default to
using TVL shortlinks.

A new public function `format_markdown_with_shortlinks` has been added
with which users can use an alternative set of shortlinks. This
function should not be used in TVL depot code.

Change-Id: I4ddab28cbcf45d07c51323b7b730b96e62922816
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3083
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-09-10 11:32:33 +00:00
sterni
596344faf4 docs(nix/tag): fix example for discrDef
Change-Id: I8b7accb399448f57ace502642bd91fcfae416f15
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3507
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-09-10 11:08:03 +00:00
sterni
318d10e608 chore(nint): move from //users/sterni to //nix
Since //web/bubblegum depends on nint, we need to move it to a non user
directory to conform with the policy established via cl/3434.
Note that this likely doesn't mean greater stability (which isn't
really implied in depot anyways), since I still would like to use a more
elaborate calling convention to allow for additional useful features.

Change-Id: I616f905d8df13e3363674aab69a797b0d39fdd79
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3506
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-10 11:08:03 +00:00
sterni
5d5fb4e6a1 refactor(sterni/emacs): read extra feeds from ~/.config/emacs-extra
This allows me to add stuff without doing a commit for every feed. I can
always import them in bunches if I want to later.

Change-Id: I080f40b3627940a1f68cf13598c102953f4994b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3505
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-09 15:57:58 +00:00
sterni
3a8925239a refactor(web/bubblegum): only rebuild examples on dependency change
Using sparseTree we can make a (surprisingly long) list of things from
depot the examples depend on and create a stripped down depot version
which only contains them. As a result the examples are no longer rebuilt
on every commit.

Change-Id: I3693570ca4bdbbf9da795e552f278f3b1b1b77a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3504
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-09 15:57:58 +00:00
sterni
23dd8067c5 feat(nix/sparseTree): get a directory with only selected children
Given a path (which points to a directory and a list of paths which
are below that path, build a “sparse” version of that directory, so
that it only contains the listed paths (and their children):

    $ nix-build -E 'with import ./. {}; nix.sparseTree ./. [
        ./default.nix
        ./nix/readTree
        ./nix/buildLisp
        ./third_party/nixpkgs
        ./third_party/overlays
      ]'
    /nix/store/0ynj0gc613fs6mfp9snqcvdj5gfxbdzg-sparse-depot
    $ lr -t 'type == d' result/
    result/
    result/nix
    result/nix/buildLisp
    result/nix/buildLisp/example
    result/nix/readTree
    result/nix/readTree/tests
    […]
    result/third_party
    result/third_party/nixpkgs
    result/third_party/overlays
    result/third_party/overlays/haskell
    result/third_party/overlays/haskell/patches
    result/third_party/overlays/patches

This is useful if a derivation depends on depot.path (e. g. if it wants
to import depot at runtime). Usually this means that on every depot
commit (or even worse, every change of .git on a local machine), this
derivation has to be rebuild. By using sparseTree you can instead depend
on a stripped down version of depot which only contains the bits you
actually depend on, avoiding unrelated rebuilds.

Change-Id: I127b108c8b177c657fb46786d0a6256516fd2c52
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3503
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-09 15:57:58 +00:00
sterni
5f9c85a1b5 refactor(nix/readTree): use throw instead of assertMsg
This gives a slightly prettier error message and won't leak the error
message when builtins.tryEval is used. Currently an error message from
the tests is always part of the pipeline evaluation log.

Change-Id: I9b488a440368091ed42d707ba4124f592a64bd86
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3502
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-09 12:52:16 +00:00