Commit graph

13283 commits

Author SHA1 Message Date
Griffin Smith
909c1d02a2 fix(gs/emacs): Return empty string if nothing in inbox
otherwise we'd return the string "nil", which with the substring-ing
that was happening would end up as "Inbox: i" in the status bar

Change-Id: I567a6042b592dd9313bfa22d480c22936494a8c1
2021-12-03 12:23:54 -05:00
Griffin Smith
9eec83843e fix(gs/emacs): Fix title of clocked-in task
For the i3 status bar - this API changed to return a list recently,
which is super frustrating

Change-Id: Ib921b6431331c766b67ea5053f2d9f3d86cf54b4
2021-12-03 12:23:54 -05:00
Vincent Ambo
4adab5f7b9 feat(tools/passively): Bootstrap new Emacs package 'passively'
Passively is a tool to help people learn information via Emacs,
designed for language learning.

As of this CL, the actual implementation still lives in
//users/tazjin/russian/russian.el but I am generalising it here.

Change-Id: Iac5a8cfc78415496637a7ba5ddc4c2a1aa6bee26
2021-12-03 11:26:12 +00:00
Vincent Ambo
b679bb4034 refactor(ops/besadii): Get config from home directory by default
Slightly more ergonomic in some setups.

Change-Id: I565f2d242852ffd299ef5d5740a47520187dd4b4
2021-12-02 17:13:49 +03:00
Vincent Ambo
dcb2410982 refactor(ops/besadii): Generalise for use with non-TVL URLs
This makes it possible to use besadii for any TVL-ish setup using
Gerrit and Buildkite, with the same hook functionality as for TVL.

Change-Id: I1144b68d7ec01c4c8e34f7bee4da590f2ff8c53c
2021-12-02 13:10:21 +03:00
Vincent Ambo
e48ae26e8e feat(ops/besadii): Add other missing configuration keys
Adds configuration keys and rudimentary validation for all other
besadii settings that are currently hardcoded.

This adds the config options:

* repository: Name of the repository in Gerrit.
* branch: Name of the HEAD branch in the repository.
* gerritUrl: Base URL of the Gerrit instance
* gerritUser: Username of the Gerrit user
* gerritPassword: Password of the Gerrit user
* buildkiteOrg: Name of the Buildkite organisation
* buildkiteProject: Name of the pipeline inside the Buildkite
  organisation
* buildkiteToken: Auth token for Buildkite access

All of these configuration options are required.

Change-Id: Ie6b109de9cd8484a3773c6351d7fd140f39a49ed
2021-12-02 13:10:21 +03:00
Vincent Ambo
ee635d4645 chore(ops/modules): Configure besadii call sites to load config
On whitby, the besadii config will live in
/etc/secrets/besadii.json. This CL updates the call sites to pass this
config path to besadii so that it can load Sourcegraph configuration.

Change-Id: Ia139b9fa3b827e7a5f2386214390acc6fe19a75a
2021-12-02 13:10:20 +03:00
Vincent Ambo
168114df52 refactor(ops/besadii): Move Sourcegraph config to a file
Initial step towards moving besadii away from hardcoded values and
onto config files. This is required because I want to reuse besadii
outside of the TVL context.

Change-Id: Id4fa7a49c5d4f876a02b202f04a421ab5ba0dcc4
2021-12-02 13:10:20 +03:00
Vincent Ambo
c53d6d3453 fix(ops/nixery): Temporarily stop serving depot packages in Nixery
Change the Nixery configuration to use the plain nixpkgs package path
instead of the depot path. AFAIK, nobody uses this to fetches depot
packages at the moment - but plenty of people fetch non-depot
packages.

This means that Nixery is cache-busted less often (previously on every
commit => every deploy).

We'll figure out another way to have a depot Nixery later.

Change-Id: Iba632333346181c3d2ce992fbab396ed0d9f86aa
2021-12-02 09:16:52 +03:00
Vincent Ambo
433f0ae5cd fix(ops/www): Redirect tvl.fyi/blog -> tvl.fyi
The blog index page is at the root and people may manually edit the
URL.

Change-Id: I6cdaaaee6223524a9e950584379cfac34f8be160
2021-12-01 23:41:23 +03:00
Vincent Ambo
5b46c6c234 feat(web/tvl/blog): Add a small footnote about Moscow in the post
... the idea being that this might lead to some people from the Moscow
Nix community to reach out, which would be beneficial for me in terms
of having some IRL people to bounce ideas around with.

Change-Id: Ib41f54609e9ec9d7fdafbf7024fb5df7034afd87
2021-12-01 23:28:38 +03:00
sterni
ca159626dd feat(sterni/emacs): subscribe to the TVL feed
Change-Id: Iac08e992a4c610a6f152c1dc5e681b17298b8834
2021-12-01 18:17:29 +00:00
sterni
9472bb6b04 feat(sterni/aoc/2021): day 1 solution
Change-Id: I0781b2aa3624df9a3158296edcbbbf2ee845102b
2021-12-01 18:17:29 +00:00
Vincent Ambo
236b2bcd74 fix(web/tvl/blog): Fix Tvix post publication date
Change-Id: I6f69507c75436e882f2248430eb894b1310bfca8
2021-12-01 20:57:53 +03:00
Vincent Ambo
1f98cea9b2 feat(web/tvl/blog): Publish introductory Tvix blog post
Change-Id: I16c565ac1194cec44382b77f1c65c5ff569fdcca
2021-12-01 17:38:32 +00:00
Vincent Ambo
c1aab56a02 feat(besadii): Support invocation as different Gerrit hooks
Removes besadii support for the previously used 'ref-updated' hook and
instead introduces support for the 'change-merged' and
'patchset-created' hooks.

These hooks more accurately capture the semantics of when besadii
should trigger CI builds and using them will avoid problems such as
skipping 'canon' builds if chains of CLs are submitted together.

Change-Id: Ib90356c069780bf0c0250e56b927e46a5b31ce7f
2021-12-01 12:49:31 +03:00
Vincent Ambo
8318178b5f feat(web/tvl): List blog posts on homepage
Change-Id: Ic0ee18466fbaca1a374e7489be640f49571eb9c5
2021-12-01 12:37:50 +03:00
Vincent Ambo
79681c9e21 fix(web/tvl/blog): Include only published posts in listings & feed
Change-Id: I76c9c2c5cc82c7d0f59f907b6f1abee92a92cbf7
2021-12-01 12:37:50 +03:00
Vincent Ambo
c725f89d8b refactor(web/tvl/blog): Update Tvix intro blog post
This incorporates feedback from sterni from cl/4052 and chipb on IRC.

Change-Id: I0547d130dcd578746d5183c563be4b1d042cb5f8
2021-12-01 01:50:57 +03:00
Vincent Ambo
698ec0565a docs(CONTRIBUTING): Mention new subtree commit type
See cl/4049

Change-Id: I583e4bcf88342a998d7a5a9fd92f73d0710ee2e9
2021-11-30 22:42:34 +00:00
Vincent Ambo
f641378948 fix(web/tvl/blog): Fix link to embedded image
Change-Id: I8bec643267785c6d3523380a2a17ab5e9213b51c
2021-11-30 18:52:53 +03:00
Vincent Ambo
8133fed255 feat(web/tvl/blog): Write Tvix introduction blog post
This post is intended to just let people know about the existence of
Tvix, tell them a bit about the background and how to follow along.

Change-Id: Ib5194d3aa385a0e30b4768ba28cb063784f6e0a3
2021-11-30 18:45:44 +03:00
Vincent Ambo
68d1f834a3 fix(ops/www): Strip .html from TVL blog post URLs
Change-Id: I4d1f9284ec004931c07c04d614b01f28eedea508
2021-11-30 13:56:29 +03:00
Vincent Ambo
e61b50baf9 chore(web): Correct URLs for assets & feeds on TVL blog
Change-Id: I8720d49f8f3f4010f57a53e763a4f246bf4eb3d8
2021-11-30 12:51:30 +03:00
Vincent Ambo
6edfdd0773 refactor(ops/pipelines): Query build status from Buildkite API
Instead of manually tracking the build status through Buildkite
metadata, use the Buildkite GraphQL API in the `🦆` build
step (i.e. the one that determines the status of the entire pipeline
to be reported back to Gerrit) to fetch the number of failed jobs.

This way we have less manual state accounting in the pipeline.

The downside is that the GraphQL query embedded here is a little hard
to read.

Notes:

  * This needs an access token for Buildkite. We already have one for
    besadii which is also run by the agents, so I've given it GraphQL
    permissions and reused it.

  * I almost introduced a very rare bug here: My initial intuition was
    to simply `exit $FAILED_JOBS` - in the extremely rare case where
    `$FAILED_JOBS % 256 = 0` this would mean we would ... fail to fail
    the build :)

Change-Id: I61976b11b591d722494d3010a362b544efe2cb25
2021-11-29 23:38:24 +03:00
Griffin Smith
8de6c07153 refactor(gs/emacs): Switch to doom's built-in fuzzy ivy
This seems to do sorting slightly better.

Change-Id: I0d354a77b45b1a83d4bb5eb0acd024187b06929f
2021-11-29 10:52:47 -05:00
Griffin Smith
ac2fa80f75 feat(gs/home): Add shell alias for graphvizzing
for work

Change-Id: Ib8a8928f8315823a34b653d3e3dff46d10f930e6
2021-11-29 10:52:21 -05:00
Griffin Smith
e1e78f7abc feat(gs/system): Install dev man pages
I wanna be able to man libc stuff

Change-Id: Ie38e6751af24ffcffa912621dc217dcef5c84dda
2021-11-29 10:50:04 -05:00
Profpatsch
f1a75e88cf fix(third_party/nix-diff): use version which handles non-utf8 drvs
We had a problem on whitby where decoding of the drv files would fail
with an utf8-decoding error.

This version of nix-diff will leniently input files as utf-8, with
replacement characters if necessary.

Change-Id: I5cb245923c6db0875e63e420cb0783e235b6859f
2021-11-29 15:41:47 +00:00
Vincent Ambo
4d57898af4 chore(ops/users): Update password hash for asmundo
... some issue snuck in on the first one, as is tradition.

Change-Id: I06ce4df82cde26231cd1ab3df500de02e981d9bc
2021-11-29 18:12:19 +03:00
Vincent Ambo
d143c3735f chore(tazjin/russian): Reduce timer interval to 4 seconds
Change-Id: I85025754695a6173a23c9ea2eb19ddc8e97e4dcd
2021-11-29 17:33:47 +03:00
Vincent Ambo
2789e013af feat(tazjin/russian): Function to look up last word in Wiktionary
For cases where a word raises more questions than are answered by my
existing notes, roots, translations and so on.

Change-Id: Ic9dd79ba4aef6e3c8e7e8e965195b67f7a0c65f3
2021-11-29 17:33:47 +03:00
Vincent Ambo
e4c82c2a34 feat(tazjin/russian): Exclude known words from random display
Adds a set of words that I consider "known" (but that should be in the
most frequent word list anyways). This set can be populated by
invoking `mark-last-russian-word-as-known` after display, and is
automatically persisted.

Right now there's nothing automatically loading it back in, just as
there is nothing loading any of this automatically, that's for the
future.

Change-Id: I51ee4f37114c6b95925e8ad5bdc5dc9b8657bdad
2021-11-29 17:33:47 +03:00
Vincent Ambo
7843363225 feat(tazjin/russian): Remember the last displayed word
This will make it possible to do operations on that word (i.e. marking
it as known, or opening the full definition page).

Change-Id: Ib77f7d2e4e96d6ab754b311a69f72e2b080657ac
2021-11-29 14:24:25 +00:00
asmundo
78f51edf8c feat(ops/users): Add user asmundo
Change-Id: Ie666b6556d91513babd884b2ed1140cd6c0ed2a9
2021-11-29 14:14:04 +00:00
Vincent Ambo
eca2bc572e refactor(besadii): Rename refUpdated -> buildTrigger
We are changing the Gerrit hooks which invoke besadii, but this
structure will be used for both kinds.

Change-Id: Idb1cb0c640d2c42db8e7af39f3ab372a97bfef91
2021-11-29 13:54:47 +00:00
Vincent Ambo
f7c87fd774 feat(tazjin/russian): Echo Russian words when Emacs is idle
This should keep up passive exposure to words, but needs a subsequent
function for filtering out things that are definitely known.

Since I'm keeping the frequent word list mostly intact the majority of
words are very basic, but it's those last 15-20% I'm interested
in (not completely imported yet).

Change-Id: I7a5684b8dca1fe5301e8b394be2627550a60e3c6
2021-11-28 17:39:23 +03:00
Vincent Ambo
48290298ad feat(tazjin/russian): Add macro to populate word table
Adds a stupid macro that populates a 'russian-words' hash table in
which merged definitions of words are available.

Change-Id: Ide7825577ba26d63ff564e54601541f39ab5a1a6
2021-11-28 17:14:15 +03:00
Vincent Ambo
104f002a07 fix(ops/besadii): Trim whitespace of auth tokens
This is causing failures when trying to update Sourcegraph at least,
for good measure I've trimmed both.

Change-Id: I40266ee83b4e266ffe50f16bb365eb2e51952513
2021-11-28 10:34:36 +00:00
Vincent Ambo
465f3d3f14 chore(tazjin/tverskoy): Minor config cleanups
Change-Id: I434c0b8d5e5ce2d077630de2dd71de309b7d076f
2021-11-27 20:56:21 +03:00
Vincent Ambo
67d7bc2fa8 fix(tazjin/tverskoy): Persist Zoxide state between reboots
Change-Id: Ib1e1fe9749e56eefc83016b1946e6fe0b1f72339
2021-11-27 17:53:24 +03:00
Griffin Smith
604319850c feat(gs/xanthous): Creatures drop their items when they die
When a creature is killed, it now drops all the contents of its
inventory on the ground.

Change-Id: Ie95c397308ba2c9861f10e58b99c91c9cc759c56
2021-11-25 17:31:01 +00:00
Griffin Smith
a3d220b631 feat(gs/xanthous): Creatures use their weapons to attack
If a creature has a weapon wielded, then they now use that weapon to
attack the player *instead of* their natural attacks. This uses a new
`creatureAttackMessage` field on the Item raw for the message to use.

Change-Id: I73614f33dbf88dd4c68081f15710fa27b7b21ba2
2021-11-25 17:31:01 +00:00
Griffin Smith
4b11859d04 feat(gs/xanthous): Allow generating creatures with items
Add an `equippedItems` field to the CreatureType raw, which provides a
chance for generating that creature with an item equipped, which goes
into a new `inventory` field on the creature entity itself. Currently
the creature doesn't actually *use* this equipped item, but it's a step.

This commit also adds a broken-dagger equipped 90% of the time to the
"husk" creature.

Change-Id: I6416c0678ba7bc1b002c5ce6119f7dc97dd86437
2021-11-25 17:31:01 +00:00
Vincent Ambo
bf4d8ab603 fix(3p/overlays): Avoid cache-busting EXWM on every commit
This is a bit silly, I assumed hte previous one would concatenate the
path before importing it into the store - but it doesn't.

Change-Id: Iebb4c9cb432751448deeac07d6b7ad8225711d30
2021-11-25 13:57:04 +00:00
sterni
397c3e70b3 chore(3p): bump NixOS channels to 2021-11-24
* The API for gradleGen changed which makes our override a bit simpler
  at least.

Change-Id: Ib5d7bc33d30a4545235a8a74eadbb418cd76d1d0
2021-11-25 13:19:04 +01:00
sterni
750ef6c693 feat(sterni/nix/utf8): check if codepoint valid/encodeable
* Enforce the U+0000 to U+10FFFF range in `count` and throw an error if
  the given codepoint exceeds the range (encoding U+0000 won't work of
  course, but this is Nix's fault…).

* Check if the produced bytes are well formed and output an error if
  not. This indicates that the codepoint can't be encoded as UTF-8, like
  U+D800 which is reserved for UTF-16.

Change-Id: I18336e527484580f28cbfe784d51718ee15c5477
2021-11-25 12:15:35 +01:00
sterni
8dc54f89cd fix(nix/runTestsuite): don't crash on big test suites
Having `prettyRes` in the execline script causes it to fail because of
the argv limit if your test suite is long enough. For the succeeding one
we can work around this by hashing it (since we only care that something
changes if the test suite changes), in the case of the failing one where
we want to print the results, we use runExecline's stdin mechanism.

Change-Id: I2489f76acfbe809351f51caefe2a477328a70ee3
2021-11-25 12:15:35 +01:00
sterni
0e9c770972 refactor(sterni/nix/utf8): let wellFormedByte check first byte
Previously we would check the first byte only when trying to figure out
the predicate for the second byte. If the first byte was invalid, we'd
then throw with a helpful error message. However this made
wellFormedByte a very weird function.

At the expense of doing the same check twice, we now check the first
byte, when it is first passed, and always return a boolean.

Change-Id: I32ab6051c844711849e5b4a115e2511b53682baa
2021-11-25 12:15:35 +01:00
sterni
87a0aaa77d feat(sterni/nix/utf8): implement UTF-8 encoding
This implementation is still a bit rough as it doesn't check if the
produced string is valid UTF-8 which may happen if an invalid Unicode
codepoint is passed.

Change-Id: Ibaa91dafa8937142ef704a175efe967b62e3ee7b
2021-11-25 12:15:35 +01:00