This changes the logic for build pipeline generation to inspect
an (optional) parentTargetMap attribute which contains the derivation
map of a target commit.
Targets that existed in a parent commit with the same drv hash will be
skipped, as they are not considered to have changed.
This does not yet wire up any logic for retrieving the target map from
storage, meaning that at this commit all targets are always built.
The intention is that we will have logic to fetch the target
map (initially from Buildkite artefact storage), which we then pass to
the depot via externalArgs when actually generating the pipeline.
Change-Id: I3373c60aaf4b56b94c6ab64e2e5eef68dea9287c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4946
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Always create a structure that maps all targets to derivations, and
persist it as a JSON file.
This relates to some of the ideas expressed in:
https://docs.google.com/document/d/16A0a5oUxH1VoiSM8hyFyLW0WiUYpNo2e2D6FTW4BlH8/edit
The file is always uploaded to Buildkite as an artifact. This allows
for retrieving it based on the commit ID in a Buildkite GraphQL query.
By default, Buildkite stores artefacts for 6 months. Storage location
can be overridden (with custom retention) through some environment
variables, but for now at TVL the Buildkite-managed storage is fine.
See also: https://buildkite.com/docs/pipelines/artifacts
In the subsequent filtering implementation, when diffing commits
across a time-range that exceeds artefact retention time, we should
simply default to building everything.
Change-Id: I6d808461cd1c1fdd6983ba8c8ef075736d42caa7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3662
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
It would left-associate in some nix version, this way it’s clear that
you want to join a path segment.
Change-Id: I82a00de720187d1faf908c842e396301ea435a97
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4886
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
We can't use cl-lib as that apparently doesn't contain lexical-let*.
Change-Id: I8e65d20215ae5667bb92b71e6318ad9d66125320
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4941
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Since we now group patchsets inside of Buildkite, the results are no
longer guaranteed to be for the right patchset.
There might be some metadata passed in from Gerrit that would let us
do this with the commit ID instead, but I haven't checked.
Change-Id: I5b74a17697511160fcc89d3dbef23517d974dc6f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4890
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Autosubmit: tazjin <tazjin@tvl.su>
I'm not sure where the previous list originated, but it was missing
some officially documented statuses. However, the API definitely
returns statuses that are documented to only appear in other types, so
this commit simply maps ALL statuses that Buildkite has documented for
any type.
Also adds a log statement in case we encounter a brand new, unknown,
undocumented status.
Change-Id: Iff003a3bd2608702019ae0f4137958435ad0856f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4888
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
... and remove a spammy log statement.
This changed in besadii a while ago and lead to the behaviour of
failing silently, instead of failing with an error saying "undefined
undefined".
Note that with this change merged the plugin probably still won't work
again, but it gets us a step closer to the real error.
Change-Id: I3db25d246f4b1c634d316cd92574e27fb220d769
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4887
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Currently Gerrit is configured to copy forward the scores of the
'Verified' label if the tree of the commit does not change (e.g. only
author information or commit message is modified).
Besadii still triggers builds for these patchsets though. With this
change it will inspect the (previously ignored) "kind" of the patchset
and skip patchsets with the same tree as their predecessor.
See Gerrit docs for the semantics of "kind":
https://gerrit-review.googlesource.com/Documentation/json.html#patchSet
Note that an argument can be made that we should do the exact opposite
- stop carrying over 'Verified' at all and always build all patchsets.
I think this depends on whether we intend to use commit metadata in CI
runs at all. Adding a few people to the review for opinions.
Change-Id: I48a96a1ad1e07d92330d84e5cfdc820a39395297
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4867
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: asmundo <asmundo@gmail.com>
Reviewed-by: sterni <sternenseemann@systemli.org>
(who:html-mode) needs to be set at macro expansion time to properly take
effect which wasn't the case before, but is ensured now by
:compile-toplevel. :load-toplevel ensures that who inside the repl will
behave the same.
Since the :html5 behavior is now actually used, we need to adjust some
of the test cases to account for the different :html5 escaping mode.
Change-Id: I4dfe1d2db38da6a2486fde86596f7e5f50ed8b9f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4885
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Adds more things I keep using via nix-shell, as well as the
deploy-whitby script (which is independent of a particular depot
checkout).
Change-Id: I36f87de7645768a05268c90ba9b3ab833bacca05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4881
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
nvd only shows us changed versions of packages, as well as
added/removed packages, which means that for the majority of depot
packages nothing will be displayed
however, the current output of nix-diff is not usable anyways, so
having something that can be looked at is better than nothing
Change-Id: Iefbd8139c7ccf5c88ed1209897abdb2ae9302e91
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4868
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Temporarily use a master commit as some interesting failures have been
fixed there (yubikey-manager and notmuch).
* //users/tazjin/nixos/camden: The acme module was moved around, so we
need to adjust the disabled module path.
Change-Id: I21c6a1963ffe4205f3577f531ce10b778a82e2ff
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4865
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
We have a new channel visitor who joined via Matrix and pointed this
out. Apparently hackint reestablished the Matrix bridge.
Change-Id: I25ec7fdc5c1b68a9b0bc92b6c19ffe12ecb93c5f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4864
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
The comment posted to the Gerrit change do not need to contain the CL
number as it is given by the context of the Gerrit UI.
Change-Id: I172645e7f4d82e2fbebe179578babd42ea29737f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4826
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: asmundo <asmundo@gmail.com>
I no longer need the bright theme since I'm no longer in sunny Saint Lucia.
Change-Id: I22c436875bab93fa569541a6ff05bdc6869f521e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4861
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Now baba can start using it to populate config files from depot.
It’s not entirely working as expected, if stow finds a symlink dir
coming from a different stow, it won’t know how to split it up, so
some manual intervention is required in the beginning.
Change-Id: Ia2271308bf7994ea42e6d7c81c2f3fd94ddf63f3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4838
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
nix-home is (hopefully) gonna be a home-manager alternative for my
home directory.
Files are symlinked into the home directory via GNU stow (since that
is a tried and tested tool), so first step is to set up the base code
for that.
Implements a small tool that reads a single environment variable and
prints it to stdout.
Change-Id: Ifa3fd9f9e1cedc52c3002196d3971b02cb840e80
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4832
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
mostly to persist the configuration, which pins the tmpdir to a
sensible (persistent) location
Change-Id: I69693ed3a198b4aec281e53c5f7add4d0d8df657
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4834
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Show the most recently published blog posts first.
Change-Id: Iacc9b2964552e8c0327a05a85c4fc5cbc8741f09
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4833
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
When `findSystem` attempts to evaluate `system.config.networking.hostName`,
diogenes (because I've refactored its definition) causes the following error:
> You're trying to declare a value of type `string'
> rather than an attribute-set for the option
> `system'!
Change-Id: Ib23cb9aa9cadc1f71ad3369c903e587762d12cc0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4830
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Now I can copy-paste without replacing the placeholder
date-string (i.e. "2020-04-02").
Change-Id: Ie4ee843b495447a2d4b7e6634114b81b3fc0a50e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4822
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
When I migrated to /depot I removed JetBrainsMono from my monorepo. This is fine
on NixOS machines because I'm depending on JetBrainsMono through Nix
configuration. But for non-NixOS machines (my work machines), I cannot do
this.
Until I've thought of how I'd like to support this, I'm doing to use Monospace,
which should be available on all of my machines.
Change-Id: Icd0cd641526246d40b8d971907c63c7f32ef1c3d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4821
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
I originally refactored this by inlining it as a lambda function, but I was
ignoring the fact that my work machines relied on it because I have Elisp code
in google-briefcase that calls `bookmark-install-kbd`.
Change-Id: I03804250fdfdc22be1445718a061a46461eb9af8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4820
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Small blog post about how I configured myself out of my personal email.
Change-Id: Ibb8834b2150f94dba5f46a8ea634e7e9813b76a5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4817
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
This makes the UI a bit more interactive.
Change-Id: I756e098fff78d2a71a56cf0ea73240f90821dbab
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4813
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
I'm still a bit confused about the nuances between the myriad of ways to handle
variables in Emacs...
- `setq`
- `setq-default`
- `setq-local`
- `defvar`
- `defcustom`
- `defconst`
- `customize-set-variable`
- `make-local-variable`
- `make-variable-buffer-local`
- `kill-local-variable`
...but after running some experiments, this triggers the Emacs debugger when an
error is encountered (e.g. either *in* `init.el` or another package that is
evaluated during `init.el`'s evaluation).
Change-Id: I00d543735b1d816462ba18bad23867865d7af80e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4812
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
...so that I can move left while debugging.
Change-Id: I7124da76dc51b0b5ca22a7e4a13482fc8da30150
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4811
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
From `man gpg`:
> --secret-keyring file
> This is an obsolete option and ignored. All secret keys are stored in
> the ‘private-keys-v1.d’ directory below the GnuPG home directory.
Change-Id: I1178c3d4a1aafa10e058db15d293b906ea402a05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4807
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
In my opinion the following versions of compound words should be searched
similarly...
- `testingThisOut` (camel case)
- `TestingThisOut` (class case)
- `testing_this_out` (snake case)
- `testing-this-out` (kebab case)
...but Emacs's default searching treats the snake and kebab cases differently,
which makes it difficult to search for buffer-local occurrences of symbols in
Python, Elisp (among other languages).
This has been bothering me for some time. I must've attempted to fix this awhile
ago by using `setq` (when I should've used `customize-set-variable`, which makes
me wonder: how much of my configuration is flaky because I'm using `setq` where
I should be using `customize-set-variable`?
For more context about this change, see `describe-variable` for
`evil-symbol-word-search`.
Change-Id: Ie03f0da119f59e04abc5de3143aa6edaf6115168
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4804
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
See comments in the code for context.
Change-Id: I0791222881788b89612359c0b3b263dc7dc9bd63
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4803
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
> You cannot get educated by this self-propagating system in which people study
> to pass exams, and teach others to pass exams, but nobody knows anything. You
> learn something by doing it yourself, by asking questions, by thinking, and by
> experimenting.
> - Richard Feynman
In the spirit of learning by doing, I decided to implement a simple blockchain
server. More work remains, but I'm tired after working on this for ~2-3h. I'd
like to reimplement this from memory using a statically typed language like
Haskell. I'd also like to implement node
discovery (https://en.bitcoin.it/wiki/Satoshi_Client_Node_Discovery) because
that is still something I don't quite understand. But I'm signing-off for
now...
Change-Id: I74f424e7f52ffbf81eaad420d7d5205da66d33b5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4802
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
While these aren't technically source code buffers, but the purpose of
`buffer-ivy-source-code` is to create a list of buffers I likely want to switch
to, which includes these.
Change-Id: If3f7b6afa6282a3fb8d0d4a3f7aa4ee64287df65
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4799
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>