Commit graph

20618 commits

Author SHA1 Message Date
William Carroll
d56b2210cd Debug build-socrates.sh
- using `set -euo pipefail` for setting recommended failure-modes
- using `set -x` and `echo "$PATH"` to debug my failing build

Sidenote: I find BuildKite's documentation quite helpful!
2020-08-20 11:26:31 +01:00
William Carroll
208883243f Attempt to build Socrates using BuildKite
Let's see what happens...
2020-08-20 11:26:31 +01:00
William Carroll
334616392b Set -Wall and cleanup warnings
I should have done this from the start.
2020-08-20 11:26:31 +01:00
William Carroll
6c0777aada Create an assessment directory
I've been doing a few take-home assessment recently, all of which I've attempted
to solve using Haskell. I'm having a good time, and I'm noticing strong and weak
points with my Haskell programming. I always attempt to apply any feedback a
reviewer gives me, and I'm storing my first drafts, second attempts, and
feedback here for now.

This recently attempt was for a role at Jane Street.
2020-08-20 11:26:31 +01:00
William Carroll
f032eee79d List directories first in dired view
Ideally I'd use exa insted of ls, but I cannot seem to support that yet.
2020-08-20 11:26:31 +01:00
William Carroll
375c4a4c85 Restore shell.nix
I believe `use_nix` looks for shell.nix and then default.nix files, so I was
wrong earlier when I said that I could get rid of shell.nix files altogether.

I need to learn more about `use_nix` and getting environments from default.nix
files.
2020-08-20 11:26:31 +01:00
William Carroll
7e2dcc97cc Drop support for wpc/find-file
Cleaning things up...
2020-08-20 11:26:31 +01:00
William Carroll
56b503c573 Prefer direnv's use_nix to shell.nix
I find it bothersome to share the list of Haskell dependencies between my
default.nix and shell.nix files. A few days ago, I created a THIRD file,
shared.nix, that defined the shared code b/w default.nix and shell.nix. This
DRY'd things up, but it also added a new file, which I didn't like.

Today I learned that direnv integrates with Nix using a function called
`use_nix`. Voila! I typically already have .envrc files per-project, so this
doesn't add any unnecessary files, and it allows me to delete my shell.nix
files.

I would use `lorri`, except that I encountered issues using Lorri on my work
computer, which I'm not interested in attempting to resolve now.
2020-08-20 11:26:31 +01:00
William Carroll
b984a2d1e0 Change GET /mimi to GET /hello
Timing myself to see how long it takes me to publish a change.
2020-08-20 11:26:31 +01:00
William Carroll
d903afeb54 Define the monoserver as a systemd service
Much better than manually running:

```shell
$ cd ~/briefcase && git pull --rebase origin master
$ nix-rebuild switch
$ nix-build -A zoo
$ pkill zoo
$ ./result/zoo &
$ job -l
$ disown %<job-number>
```
2020-08-20 11:26:31 +01:00
William Carroll
ace08853e0 Add GET /mimi to zoo
Proving to my girlfriend that the zoo works.
2020-08-20 11:26:31 +01:00
William Carroll
309c5452e1 Add host field for nginx JSON logs
I'd like to filter logs from {blog,git,zoo}.wpcarro.dev, etc.
2020-08-20 11:26:31 +01:00
William Carroll
979cbda33c Remove logging prefix from Nginx logs
Problem: The JSON that Nginx outputs cannot be successfully parsed by
journaldriver because Nginx prefixes it with "socrates nginx:". Adding
`nohostname` to `access_log` should solve this problem.

I borrow this from @tazjin's most recent definition of `commonHttpConfig`.
2020-08-20 11:26:31 +01:00
William Carroll
2eb52379b6 Use journaldriver to view journald logs from Socrates
Attempting to use @tazjin's delightful simple logging library!
2020-08-20 11:26:31 +01:00
William Carroll
4a836f363b Disabling the monzo-token-server
I haven't used this since I wrote it... and now the .tokens attribute is missing
and it's screwing up my other deployment... *sigh*
2020-08-20 11:26:31 +01:00
William Carroll
0b34482b6d Forward zoo.wpcarro.dev connections to :8000
Right now the 8000 port is hard-coded into the zoo server, which isn't ideal,
but "it works" (TM).
2020-08-20 11:26:31 +01:00
William Carroll
f895cb417a Move shift-time into top-level //zoo
I'm still unsure whether or not this is a good idea, but experimenting is a good
way to find out!
2020-08-20 11:26:31 +01:00
William Carroll
3fdfa14355 Support parsing and shifting time
TL;DR:
- Adds string-conversions library
- Adds tests for remaining units and repeating requests
- Adds a REPL in main
2020-08-20 11:26:31 +01:00
William Carroll
5fd79ce0ff Support parsing second shifts
Parse inputs like -10s into 10 second shifts back in time.
2020-08-20 11:26:30 +01:00
William Carroll
81aa32fe71 Support POST /create-payment-intent
Interact with Stripe's payment_intents API endpoint.

I'm not committing the index.html that contains client-side code that interacts
with the /create-payment-intent endpoint, but it contains sensitive information,
so I'm omitting it for now.

TL;DR:
- Define POST /create-payment-intent endpoint
- Include envStripeAPIKey in Context record
- Define a top-level Stripe module for making API calls
- Define types and instances that align with Stripes request and response types
- Depend on the Req library: a higher-level library than http-client
2020-08-20 11:26:30 +01:00
Kane York
dfc351b463 feat(tools/depot-scanner): init project
depot-scanner is a tool that runs Nix and parses the --trace-file-access output to deduce what files are necessary to evaluate a derivation.

Take DEPOT_ROOT from the environment. If depotRoot doesn't exist, print an error early.

Fix the build of the protobuf library. Switch to the GRPC build rule, as a service is in this proto file.

Create the PathType enum and parse it from cmdline flags.

Change-Id: I537b5c6bceecf76ca510f7ac04ab9dad7785feb1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1769
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-08-20 03:05:40 +00:00
edef
50b200f21a chore(3p/loxy): add OWNERS
Change-Id: I054711b07307ce9c0b3ce0f85319e58616db3639
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1790
Tested-by: BuildkiteCI
Reviewed-by: V <v@anomalous.eu>
Reviewed-by: tazjin <mail@tazj.in>
2020-08-19 13:20:04 +00:00
Kane York
92d4554b62 feat(tools/tvlc): init project
tvlc is a tool for managing sparse git worktrees of the TVL depot.
It is still in development; near-term tasks include a setup script,
Nix dependency resolution, worktree removal, and the dispatch
script.

See cs.tvl.fyi/depot/docs/designs/SPARSE_CHECKOUTS.md for more info.

Change-Id: Iad96656f0206178980fe7dcadd3dffe70d690f8f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1760
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-08-19 01:23:54 +00:00
V
d6f17f48de chore(tvl-slapd): decapitalise V's username, use displayName instead
Change-Id: I59cf5e1c850960ae639c6a3ebeb273a4441c48bb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1788
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
2020-08-19 01:23:39 +00:00
V
b8fe5469c6 feat(whitby): add V
Change-Id: I887760edd67135df4e2f58a874314b317838d2e8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1787
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-08-19 01:08:33 +00:00
V
8179fb6285 feat(tvl-slapd): add V
Change-Id: Id9253635b73b0eac7871a6baa4f0c7417d135cfe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1786
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-08-19 00:12:04 +00:00
Vincent Ambo
b051148473 fix(tazjin/emacs): Use 'Semi Light' font weight on frog
The font weight rendering issue on frog is, for now, undefeatable and
I'm resorting to just using a lighter font base weight which makes it
possible to actually see bold things.

Change-Id: Ida10f2e8d728039c9ab76bfab1fd0d36340fbac7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1785
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2020-08-19 00:11:30 +00:00
kanepyork
32d9e6c8d0 revert(3p/loxy): Add link to source repository
This reverts commit 4d113ae9f9.

Reason for revert: Source repository link has been added to the homepage

Change-Id: I21667fab928621ba8973c8598d01920ecbf512ef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1801
Reviewed-by: lukegb <lukegb@tvl.fyi>
Tested-by: BuildkiteCI
2020-08-18 22:36:18 +00:00
Vincent Ambo
4ed096b7d7 chore(3p/emacs): Enable cairo for Emacs 27.1
... this in turn enables support for Harfbuzz, which enables support
for ligatures - maybe this will make grfn happy!

Change-Id: I331c5171a829800fe532ca0b0d4910478e63ef1b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1783
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-08-18 22:06:16 +00:00
Kane York
290df663af fix(tvix/config): properly handle nonexistent config files
If the global nix config, or any available user nix config location, does not exist, then the loadConfFile() function will throw and not finish initalizing the Nix configuration.

Change-Id: I6db83bca54d9b66699356d107720603476e32c23
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1657
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-18 12:05:41 +00:00
Kane York
b76cd7253a feat(tvix): Re-enable language tests that needed a store
Now that we have access to a store in tests, we can enable the tests that needed a store.

Additionally, move the expected output files for disabled tests into the disabled folder.

Change-Id: I2492d49d43b93c7c9b0463e4d3d2855a5a51365d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1758
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-18 03:58:13 +00:00
Kane York
fea4df560b chore(tvix/tests): port upstream add.sh test
Change-Id: I5151d142d6b2b7f1df37b170b0160b8f77a89120
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1755
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-18 03:58:13 +00:00
Kane York
010dba3495 chore(tvix/tests): Add OpenTemporaryStore() helper
Change-Id: Ia655175c255f9cf5a47e4e7a20373a4ba4315ed9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1753
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-18 03:58:13 +00:00
eta
737d192aec feat(whitby): add eta
Change-Id: I7aa2bd2cb2c001b48ebd25b20f28cdfb0883ba3f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1782
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2020-08-17 22:27:25 +00:00
Vincent Ambo
f7687b1ea7 docs: Update README for the repository itself
Adds a lot more information about what is actually going on here, as
well as links to relevant things such as our Monorepo document.

I'm aware that I didn't make all `//...` links clickable, but I
realised at some point that it might be easier to just update cheddar
to support highlighting those natively :-)

Change-Id: Icbb212a6c07a5cf38ab8e65d83a64bec783eb8d0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1768
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-08-17 21:52:58 +00:00
Vincent Ambo
85f53a45db chore(nixos/sourcegraph): Bump version to 3.18.0
Change-Id: I5cb8b2da7e40075c99fab6bd57295c8c1d770e86
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1781
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
2020-08-17 21:52:48 +00:00
Vincent Ambo
a7868e4e17 feat(nixos/clbot): Add ability to post in multiple channels
Adds the ability to post to multiple channels by simply running
multiple instances of clbot.

We should probably implement support for this in clbot itself, but
right now I can't be bothered to write Go.

Change-Id: I5cffd0dc10a7f6cc19c37c5834c5610166b4ae23
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1771
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: lukegb <lukegb@tvl.fyi>
2020-08-17 21:50:45 +00:00
Vincent Ambo
1da8ace6a2 chore(tazjin/emacs): Bump my personal Emacs to 27.1
Change-Id: Ib7e9ac97830427b962b02cd5ea6151a67c387936
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1765
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2020-08-17 18:14:40 +00:00
Vincent Ambo
c344e03705 chore(3p): Provide Emacs 27.1
This is now available in the upstream channel, and I need it on one
machine for $reasons.

Normally the Emacs attribute is versioned to make it clear which
version we're dealing with, but not in this case. I've added an assert
to check that it is indeed 27.

Change-Id: I827df0d36350066bf4e177150d32af0c8d123b9b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1764
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-17 18:14:40 +00:00
Griffin Smith
708b0e1c2e fix(gws.fyi): use www subdomain
Change-Id: I2ff2d8cf8d2c9138497fb3fdbaed62300057b1ba
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1767
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-08-17 18:00:55 +00:00
Griffin Smith
16302df20a feat(gs/emacs): Extract lisp config
Change-Id: I278c79e6e59c18c2f0e2d5307eefd9ff3c92a4be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1766
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-08-17 18:00:55 +00:00
Vincent Ambo
6f5659c88b chore(3p): Bump nixos-unstable channel
This bumps the channel to a commit that includes fixes for an nginx
issue we have been seeing:

https://github.com/NixOS/nixpkgs/pull/95264

Includes the following compatibility fixes:

- tests disabled in third_party.bufbuild: These were enabled
  unexpectedly by the update, but don't run in the sandbox because
  they want to download things from github

Change-Id: I98a3b5de57f62f1fd3a37701fa1896eddeedff85
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1759
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2020-08-17 09:54:18 +00:00
Vincent Ambo
711a20620d feat(glittershark/kernel): Use linuxPackages_latest
Welcome to the future, baby!

Change-Id: I23124d27df1f7597dbd2b28afd5882e62085665e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1763
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
2020-08-17 09:54:18 +00:00
Vincent Ambo
d29bb5cbf8 refactor(glittershark/chupacabra): Move boot config into a block
This is kind of difficult to read otherwise because the boot
configuration is scattered throughout the file.

Change-Id: I8977b1bd2b9162c898c96aa249c40749b3d46180
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1762
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-17 09:54:18 +00:00
Vincent Ambo
4d113ae9f9 chore(3p/loxy): Add link to source repository
This is not obvious otherwise.

Change-Id: Ic07993a58e545345dae4529d281d6fdae35c19aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1761
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-17 09:54:18 +00:00
Kane York
1fc9ba4885 refactor(tvix): always pass Bindings by ptr, use shared/unique_ptr
Value now carries a shared_ptr<Bindings>, and all Bindings constructors return a unique_ptr<Bindings>.

The test that wanted to compare two Bindings by putting them into Values has been modified to use the new Equal() method on Bindings (extracted from EvalState).

Change-Id: I8dfb60e65fdabb717e3b3e5d56d5b3fc82f70883
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1744
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
2020-08-17 02:23:49 +00:00
Kane York
38f2ea34f4 refactor(tvix): add explicit copy/move constructors for Value
This is in preparation for making some of Value's members into refcounted ('smart') pointers.

Change-Id: Ibc54e23ac35766a2fd4e14871c9a7c936a603778
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1743
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-17 02:23:49 +00:00
Vincent Ambo
cbebc75d94 chore(3p): Remove telega derivation
The upstream telega.el derivation (under emacsPackages) now includes
the server component.

Change-Id: I49d85ea16d2fce10a505e2459fcd396706e39923
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1748
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-15 12:11:36 +00:00
Vincent Ambo
1a48f39078 fix(tvix): Ensure prim_sort actually uses the right outlist
Previously the outlist would not be used, and it would sort god knows
what in the out value.

This was probably introduced by the std::vector refactoring, and the
language test for builtins.sort was disabled. Whatever reason there
was for disabling it seems to be gone, so we're re-enabling it.

Change-Id: I98941c2cad78df58ff7bea1ece3aaa4133e94bf8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1757
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Tested-by: BuildkiteCI
2020-08-15 01:58:44 +00:00
Kane York
e458e5255a feat(tvix/tests): add gtest matchers for absl::Status
This allows you to write EXPECT_OK(statusor), as well as
EXPECT_THAT(status, IsStatusCode(StatusCode::kInvalidArgument).

Change-Id: I53bed694d812c501eb305ed4ddb358e1f9a68277
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1704
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
2020-08-15 00:52:54 +00:00