Commit graph

363 commits

Author SHA1 Message Date
Vincent Ambo
1094306aa9 refactor(web/cgit-tvl): Move cgit config back out of module
It occured to me yesterday that with the config inside of the module
it is kind of difficult to test cgit locally.

This moves it back to a separate location (//web/cgit-tvl) and makes
the most important things configurable via overrides.

Change-Id: I9b0f4c60b75c31441e1718e63b5b55aba3100aae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5893
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-06-27 14:15:07 +00:00
Griffin Smith
8ae5c7a781 feat(web/panettone): Redirect to created issue after creation.
Fixes: b/54
Change-Id: I5ae6c8aa2a4448554a8ba4cb41185ada1ecf8cb0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5784
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-05-28 18:47:19 +00:00
Vincent Ambo
8b01911e94 fix(panettone): Correctly extract user email
Change-Id: I30c83f93006eed63c20440faf7118c8d22c1a239
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5783
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-05-28 18:36:36 +00:00
Griffin Smith
1fbed8e317 fix(web/panettone): Don't add extra padding when already padded
Because of math being upsetting, we were adding 4 padding characters to
an already-properly-padded base64 string, which broke tazjin.

This also breaks this function out into panettone.util, and adds a test
for it.

Change-Id: I7bc8a440ad9d0917272dd9f2e341081ea14693da
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5782
Autosubmit: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-05-28 18:30:35 +00:00
Griffin Smith
b39ca017c0 fix(web/panettone): Properly handle un-padded base64 in jwts
The JWT spec apparently specifies that base64 strings in jwts aren't to
be padded - but the common lisp base64 library doesn't know how to
decode unpadded base64 (it signals a condition in that case). This adds
the extra padding characters (a number of `=` characters such that the
length of the string is a multiple of 4) using some FORMAT wizardry (?).

Change-Id: Ic6b66f05db2699bf1f93f870f5dd614c37eccc2d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5781
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: grfn <grfn@gws.fyi>
2022-05-28 18:00:30 +00:00
Vincent Ambo
c1bddf191f feat(web/panettone): Implement OAuth2-based authentication
Instead of directly connecting to LDAP and attempting to bind
usernames/password, authenticate users through an OAuth2 flow to
Keycloak.

This has the advantage of reusing the same SSO we already have for
Gerrit, Buildkite, ...

However, much of panettone's functionality makes assumptions about
LDAP being used. As a result there are some warts introduced by
this (for now):

* Since LDAP DNs are used as primary keys for users, we have to
  construct fake DNs based on LDAP usernames

  It might be sensible to migrate this to the UUIDs used by Keycloak
  eventually.

* LDAP is part of the serving path for issues (for fetching user
  information), however panettone no longer has a way to fetch
  arbitrary user information unless it is persisted in its database.

  To work around this, we construct a "fake" user based only on its
  DN (i.e. only the username is going to be "correct") and use that to
  serve issues.

* Email notifications no longer work (panettone can not access email
  addresses)

Some of these need to be worked around by persisting some of that
information in the panettone database instead, as we don't want to
give the service the ability to access arbitrary user information
anymore.

We can probably do this with the user settings feature that already
exists and populate it on launch, but as of this commit email and
displayName functionality is simply broken.

Change-Id: Id32bf5e09d67f0f1e883024c6e013eb342f03b05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5772
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2022-05-28 18:00:02 +00:00
Vincent Ambo
10768741cd fix(web/panettone): Only send emails if the email is known
Upcoming changes to the authentication model may mean that user
objects do not have an email address attached.

Change-Id: I4fddb810f723c790d243f779714ca7f189a02aeb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5770
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2022-05-28 17:03:36 +00:00
Vincent Ambo
71b307ffe2 chore(web/converse): Bump dependencies
Change-Id: Id2786ae93d9bc45ce98834fb4c444510b1beb22f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5474
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-04-17 13:16:34 +00:00
Vincent Ambo
70972c8fd9 chore(atward): Bump dependencies
Change-Id: I949d71648e82aaed2f1f571c4c537f0a1c075225
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5473
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-04-17 13:16:34 +00:00
Griffin Smith
6ae0f53a40 fix(web/panettone): Fix shell.nix for new third_party format
Change-Id: I16dfe9295866afdd62802b6c35be66646f3f26c8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5446
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-04-14 14:26:50 +00:00
Griffin Smith
47d075924e fix(web/panettone): Dont double up on borders
Don't render the <ol class="issue-history"> when we have nothing to put
in it, which is the case when there's no issue history and the user is
not logged in. This avoids an awkward-looking double bottom border on
issues with no comments for unauthenticated users.

Change-Id: I1c6aac40e4ba93e9428a0da589c67582b1589c17
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5445
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-04-14 14:26:50 +00:00
Vincent Ambo
4be5aaa001 refactor(atward): Split tests into separate file
Change-Id: I447bc95b60a7dca912ca75e118c075e52f8c8ebe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5402
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-04-11 21:45:02 +00:00
Vincent Ambo
cb8f050b9c refactor(ops/modules): Move cgit configuration into a module
The ancient `//web/cgit-taz` path stems from the time I had
code.tazj.in serving my initial version of the depot.

I've been meaning to clean this up for forever, so here we go.

Note that this leaves the git-serving module in a strange state where
it only deals with josh. I'll rename it accordingly.

Change-Id: I47ed1e9d90958299b5440a18a1b9075274754e33
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5294
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-16 23:03:06 +00:00
Vincent Ambo
fe290a5ff8 refactor(web/panettone): Use postmodern connection pools
Instead of managing Postgres connections on our own, use the
`with-connection` postmodern function with pooling enabled as a route
decorator.

This should resolve at least some of the issues from b/113 with
leaking connections, and an unreported issue with connections being
reused while transactions are in progress.

Change-Id: I1ed68667a3240900de1ae69df37d2d3018caf204
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5198
Tested-by: BuildkiteCI
Reviewed-by: eta <tvl@eta.st>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-13 17:20:26 +00:00
Vincent Ambo
3d8ee62087 style(rust): Format all Rust code with rustfmt
Change-Id: Iab7e00cc26a4f9727d3ab98691ef379921a33052
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5240
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-08 12:06:39 +00:00
Vincent Ambo
67a31e7252 fix(web/panettone): unbind LDAP connections after auth
unbind & close the stream of newly created LDAP connections after
auth, which might prevent some of the resource leaking we've got going
on

i did actually verify in sly that this still works. yay.

Change-Id: I92c8ca20de642585ae4c24aa455d051ee6e44a87
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5193
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2022-02-07 17:13:41 +00:00
sterni
a2ecd53f58 chore: clean up some obsolete TODOs
* //3p/nix: probably not worth investing time into this anymore

* //users/sterni/emacs: The emoji problem disappeared by itself with a
  newer emacs version, however a different one remains…

* //web/panettone: If we ever want to change the behavior, we should
  just decide the behavior statically instead of using conditions and
  restarts, as we only call it in one place, so making different
  decisions depending on call sites is not really a use case we have.

Change-Id: Iff9d439ce356db41ce34d690fb7b6a01822022fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5223
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-04 15:55:19 +00:00
sterni
32da9861d5 refactor: expose cheddar-about script from cheddar
Any other cgit configuration in depot would need this script wrapper as
well.

Change-Id: Ifa04e1c9de9c925eb3f60c5d3854221ae02ef06c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5206
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-03 23:41:08 +00:00
Vincent Ambo
aa122cbae7 style: format entire depot with nixpkgs-fmt
This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
2022-01-31 16:11:53 +00:00
sterni
0d24efcdc9 fix(web/panettone): make (who:html-mode) stick
(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>
2022-01-13 23:19:31 +00:00
Vincent Ambo
b6496b8e60 docs(web/tvl): Document that channel is now reachable via Matrix
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>
2022-01-12 10:18:25 +00:00
Vincent Ambo
59134253db chore(web/atward): Bump all dependencies
Change-Id: I4a79204e50cf519dce729e5c86bc397b82715008
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4758
Tested-by: BuildkiteCI
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-01-01 15:30:16 +00:00
zseri
ee62cda9a5 refactor(web/todolist): omit unnecessary intermediate drv
also import yants functions explicitly

Change-Id: Idd16d130a95efc30216cb54051c7193a42978003
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4689
Tested-by: BuildkiteCI
Reviewed-by: zseri <zseri.devel@ytrizja.de>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Autosubmit: zseri <zseri.devel@ytrizja.de>
2021-12-27 01:32:04 +00:00
Vincent Ambo
e6d7710c45 fix(web/static): Publish logo in all colours
Easier to link to for the sock people.

Change-Id: I5ea5c20ca98e3a4eb7eac41fdcf2e81b026786db
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4522
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-12-22 14:20:12 +00:00
Griffin Smith
a8ec166c72 fix(panettone): Fix export of issue status to SQL
Postmodern changed[0] how users customize the way lisp values get exported
to SQL - now, in addition to defining methods of
`cl-postgres:to-sql-string`, we have to pass `:col-export` and
`:col-import` args to the field itself in the dao class.

I'm not *entirely* sure why both are necessary, but without both this
doesn't work.

[0]: https://github.com/marijnh/Postmodern/blob/v1.33.1/CHANGELOG.md#changelog-v-1331

Change-Id: Iae8fb63c34fb6c79b9dfa350129032aab5cd2233
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4383
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: grfn <grfn@gws.fyi>
2021-12-16 18:59:01 +00: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
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
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
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
e61b50baf9 chore(web): Correct URLs for assets & feeds on TVL blog
Change-Id: I8720d49f8f3f4010f57a53e763a4f246bf4eb3d8
2021-11-30 12:51:30 +03:00
Vincent Ambo
4f1249e46f refactor(readTree): Move 'drvTargets' into readTree
This function is also generally useful for readTree consumers that
have the concept of subtargets.

Change-Id: Ic7fc03380dec6953fb288763a28e50ab3624d233
2021-11-23 14:42:08 +00:00
sterni
3d4e992c6f feat(web/tvl/template): add title to derivation name
This should help when debugging template generated derivations.

Change-Id: I9958a7e67c8442c5ad97da2a9d3622a0556b6a1a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3861
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-11-13 13:28:06 +00:00
sterni
53ab5716aa fix(web/static): avoid drvHash unnecessarily inflating closures
The string context of drvPath apparently causes a derivation to
_directly_ reference the whole dependency closure of the derivation
drvPath belongs to. This not only is unnecessary in this case (since we
are using drvHash to construct HTTP URLs which are primarily contigent
on the deployed configuration and not the shape of the nix store), but
also creates a very confusing derivation (e. g. web.tvl's index.html
would *directly* reference pandoc).

Change-Id: I6e9900e9e35fbd639061e53322e4ccb3fbb7e7ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3862
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-11-13 13:27:59 +00:00
Vincent Ambo
1fbb960acf fix(tvl/logo): Fix rendering of PNG files
The previous format for entering the shape of the 'V' (as exported by
Inkscape) is incompatible with the PDF rendering process, somehow.

This reverts the letter back to the old path definition format with
the offending point manually removed.

Change-Id: I6ff3310afb5a757d657f2f0d8a761f355a8e50c9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3843
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-11-12 15:18:41 +00:00
Vincent Ambo
a3d0beceaf fix(tvl/logo): Fix shape of 'V'
There was an additional point in this letter's path, which led to a
small fragment of the "buttcrack" remaining.

Change-Id: I4aa25190c2f2d5fbae55d85c499939ec72a25add
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3842
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-11-12 08:39:13 +00:00
Vincent Ambo
875ef0a605 fix(web/blog): make base URL configurable for atom feeds
This was previously hardcoded to tazj.in, which is not going to work
of course.

Instead it now takes the blog config which has a new baseUrl
parameter. For ease of use, the configs of my and the TVL blog have
been moved into a location that is accessible in the tree for reuse.

Change-Id: I94e71aaa7859db4380eb7013740a17f6b6a02620
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3777
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-11-08 10:39:04 +00:00
Vincent Ambo
4f71638e49 docs(atward): Document availability of new query types
Change-Id: Ie96eae39722c0bd22f3801cc9e24c28148f0a0cd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3779
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-07 14:08:38 +00:00
Vincent Ambo
674603f6c8 feat(web/tvl): Render blog posts and atom feed for TVL
Includes the blog posts and feed in the $out directory, but without
linking them from the TVL homepage yet.

Change-Id: If9c094b29e43e9a81b0cc3d731261dc4b10557c1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3776
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-11-05 14:24:53 +00:00
Vincent Ambo
4482bc2c82 feat(web/tvl/blog): Add scaffolding for first blog post
No content yet, but I need this in place to chop up the other changes
nicely.

Change-Id: I4302e14ab513d6d4dd23e9e8ab5493223b9a80b4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3774
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-11-05 14:24:53 +00:00
Vincent Ambo
4baf633622 refactor(web/tvl/template): Move footer into a separate target
This makes it possible for the footer to be reused in other places,
e.g. when templating blog posts (which do not go through
//web/tvl/template (yet)).

Change-Id: Ia8ab0e1c6db4f76b4de49239e11a4474038f60ae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3773
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-05 12:51:36 +00:00
Vincent Ambo
10e279ac13 feat(atward): Support depot revision queries (r/...)
Redirects these to the cgit commit view. Only supports cgit because we
don't have a good way to coax Sourcegraph into fetching these refs.

Change-Id: I8c28ed015ba37c04eb4b7a667bde70ff6a92bf4c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3772
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-05 12:26:44 +00:00
Vincent Ambo
0e5730a26f fix(web/blog): Correctly wrap footer content
Name clash went undetected because I called this variable the same
thing, oops.

Change-Id: Iafa508f26887302b1c256088c50c68cd0ed7eea2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3771
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-05 10:39:14 +00:00
Vincent Ambo
f360bbdcf0 refactor(web/blog): Move atom feed creation logic to //web/blog
This was previously all inside of my personal homepage configuration,
but that's not really where it belongs.

This moves the blog post -> feed entry logic to //web/blog and moves
some other minor logic (like entry order) into the atom feed
implementation itself.

Change-Id: Idde0241c48e979580de73f2b9afd04e6ca7f4c9a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3770
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-04 15:57:56 +00:00
Vincent Ambo
bbf92dcdea refactor(web/blog): Configurable blog name and footer
Required for actually using this generically for the TVL blog.

Change-Id: I92d8d10341f9ab4f92c90f7976be261b3255a0f0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3768
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-11-03 15:43:57 +00:00
Vincent Ambo
08d46ad293 chore(web/blog): Move out of //users/tazjin
This will also be used for the TVL blog, with status updates of
projects like Tvix.

Note that while this commit evaluates, there are still some things
specific to my blog in this code which I'll untangle in a future commit.

Change-Id: If59431161b165d7249cbb856073a4cae84a1bfbf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3732
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-22 09:56:31 +00:00
Smitty
4ea7fc392a feat(web/panettone): support dark mode
When the system is set to dark mode, this is detected through
prefers-color-scheme and the color scheme is adjusted accordingly. This
fixes #18.

The colors are set using CSS variables on the body that are overrridden
based on the current color scheme.

Change-Id: Id2f95dee4d6968e1b62ce37534f623e489fabde4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3722
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-20 19:52:13 +00:00
Vincent Ambo
8301825124 chore(web/atom-feed): Move feed generator out of //users/tazjin
I intend to use this for updates on TVL projects, which will end up on
the homepage, which is outside of //users.

Change-Id: I03542d1bcef3d9fc4599294655caab5ed22ba5d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3728
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-16 08:47:16 +00:00
sterni
e7c0d6eb12 refactor(web/bubblegum): avoid dumping depot into store
cleanSource needs to import the path into store which is quite slow at
this point. Since we are filtering the path later anyways, using the
original path is probably perfectly fine and speeds up builds (which is
nice when iterating on something).

Change-Id: I0628854d754b5903eb4ae93a3c3e2539b2c1c7e9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3705
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-10 10:03:03 +00:00
sterni
2397fd8d56 feat(nix/sparseTree): allow specifying subtrees as relative paths
Passed strings will be treated as a relative path below the given root,
which is quite convenient when using depot.path by eliminating a lot of
repetition.

Change-Id: I3da6058094484f4a6ffbb84f89ad4472b502a00c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3704
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-10 10:03:03 +00:00
Vincent Ambo
26f0ba5464 refactor(web): use static.tvl.{fyi|su} for static assets
Replaces all uses of relative static paths in TVL pages with the
static.tvl.fyi domain. Where possible, the drv hash is directly
embedded in the content.

Change-Id: Ia882dd37ceae9d047cd81cf1eb37a856b339643a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3682
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-07 14:21:18 +00:00
Vincent Ambo
348cf5ae73 refactor(web/tvl/template): default staticUrl to static.tvl.{fyi|su}
Change-Id: Ibccb690dc1371499e9800d4414002ce586490a91
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3681
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-05 13:18:48 +00:00
Vincent Ambo
69ed4984e3 feat(web/static): Add TVL logo to static files
Change-Id: Ie5ee4fe9d137cde9502ded1558fae3ad685b8863
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3661
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-01 15:59:38 +00:00
Vincent Ambo
b1f52b2617 feat(web/static): Expose drvHash attribute on derivation
This can be used for easy cachebusting of static assets, so that we
can serve them all with a really long cache-time easily.

Change-Id: I7c9f6beddec58e1caf02cda33bc587590217a939
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3660
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-01 15:33:47 +00:00
Vincent Ambo
5c9c4aa566 refactor(web/tvl/template): Make static asset URL configurable
Change-Id: I168924cd7b15103d64c9ad72172f72304e1d3a7d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3659
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-01 15:33:47 +00:00
Vincent Ambo
0ec6b4fad6 feat(web/tvl/template): Support extraFooter argument
Change-Id: If42bb8476cd513d7844ef3494e82563a5786c670
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3649
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-28 22:04:10 +00:00
Vincent Ambo
c0f2ec2f70 fix(web/tvl/logo): Make the logo slightly ... faster
grfn pointed out that the previous animation was so subtle that it
could be mistaken for a symptom of perceptual distortion, which is not
ideal.

This doubles the speed of the animation to make it more obvious that
animation is not taking place in the viewer's head.

Change-Id: Icd836e91677dfab44357932b53673d701ac6b9f3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3647
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-09-27 20:42:46 +00:00
Vincent Ambo
3e7ed05887 docs(web/tvl): Update copy on the TVL website
Pointing people at IRC and mentioning that there's technology
involved, etc.

Change-Id: I414c006952d60b1fff619edda5016bb2a8714dfb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3640
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 20:11:21 +00:00
Vincent Ambo
c4b718538b chore(web/tvl): Prune urbint from TVL graph
This isn't really adding anything and I don't think anyone
particularly wants us to link to them.

Change-Id: I6c1c8949d8e64e8c50cc8220a911183b2a166232
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3632
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 15:42:25 +00:00
Vincent Ambo
e5c3b9d391 feat(web/cgit): Use new logo in cgit page
Change-Id: I5212b235aa2a72c90e4795dce4c9fccfa00ddec3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3629
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-09-27 15:41:29 +00:00
Vincent Ambo
6c2e157264 refactor(web/tvl/logo): Convert lambdas into <use> elements
Some mostly manual refactoring of the logo, assisted by inkscape to
determine some details.

Changes:

* grid-aligned lambda & virus body shape
* replaced all lambdas except the top-left one with <use> statements
  of that lambda, this ensures that they actually have the same shape
* flipped the feet ... I think it looks better like this?
* split the virus body and lambda into different groups, which also
  easily allows styling them separately

Change-Id: Idaf1e3fe273b8c5461f5e433c1b0124fc534d9c5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3634
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-26 10:33:24 +00:00
Vincent Ambo
ddb21647e4 style(web/tvl/logo): Add dark & light versions, dim background
Currently the pitch black colour of the logo outline looks a bit
strange on the homepage, dimming this to the same colour as the text
is nicer.

While poking around in that colouring segment I also made a way to
spit out light logos instead (to use on dark backgrounds).

Note: The light colours are just picked from our web CSS, but they
don't actually look good yet - it also needs a different palette. For
now nothing uses the light version.

Change-Id: Ibfe7fa252cd40b803ac96047d0627dad0d6d9ac2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3633
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-09-26 10:33:24 +00:00
Vincent Ambo
289de14fc4 feat(web/tvl): Use new TVL logo on the main homepage
Change-Id: I4b12b33bab54dbb099d97eaa4c14ca3072c4cd66
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3628
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-24 15:31:01 +00:00
Vincent Ambo
2229a32ae9 fix(web/tvl/logo): Fix bounding box of the SVG file
This trims the huge amount of whitespace on all sides of the logo.

Change-Id: Ic14247e002839db729131550f7c7528d080ab519
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3627
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-24 15:31:01 +00:00
Vincent Ambo
8d40c84408 feat(web/tvl): Check in first version of new TVL logo
The exported SVG was hand-edited to make it as understandable as
possible, the components within it are grouped sensibly.

We noticed that it looks best with different fill colours for the
armchair, so some included Nix code generates a colour animation (e.g.
for the homepage) and differently coloured export PNGs (for different
places).

Thanks Varia <3

Change-Id: Ifdb5f4ff7827caf10d193b99e81b7c8498b35ce4
2021-09-22 21:28:43 +03:00
Vincent Ambo
d0c0227a7b refactor(web/tvl/template): Don't forcefully embed title in page
This hands more layout control back to the page content instead of the
template. There are cases (currently experimenting with logo layout)
where it's visually nicer if there isn't a page title, but the rest of
the template still applies.

Change-Id: Ia3cd0c750beec5408e631760f1faeea8efec91db
2021-09-22 21:28:43 +03:00
sterni
9a89446478 fix(web/tvl): consistently uppercase Profpatsch
Him and me floating on our own is kinda cute, but breaks the graph.

Change-Id: I043b327172781447bd0ce923e78e72f34bbff41b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3573
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-09-18 14:25:18 +00:00
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
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
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
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
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
Vincent Ambo
0dbad73ff1 chore(web/tvl): Update some of the members in the TVL graph
Some leavers, some newcomers (some of which aren't actually new) and
so on. There are some lurkers in the IRC channel who I didn't include.

Change-Id: I9bf6b83ef1fadfb19bc6836f6f5946f115af30f5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3482
Tested-by: BuildkiteCI
Reviewed-by: Mike Johnson <mdj@mikejohnson.xyz>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-31 23:29:35 +00:00
Vincent Ambo
f6638ce62c fix(web): tazjin.css -> tvl.css
Bug introduced by the previous static asset move.

Change-Id: I827976e468e4ce877a12dfbca6126b3a7445e783
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3440
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 20:57:02 +00:00
Vincent Ambo
72ebd3411b fix(atward): Redirect // queries to depot root
Makes it possible to open the default code viewer for the user at the
depot root by searching for `//`.

Fixes b/134.

Change-Id: I409ad36cea28de27cd1789a84eda71f8979d3133
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3437
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 19:02:23 +00:00
Vincent Ambo
da0b330756 chore(web/tvl): Move TVL static assets out of //users/tazjin
It's now more like my personal homepage depends on TVL assets, not the
other way around.

Change-Id: Ifb9d61aa8ec2cab549e25de3a3dfbbd08f3d336c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3435
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-08-26 17:46:06 +00:00
sterni
d7e70b1d72 feat(nix/buildLisp): add ccl
This adds support for Clozure's CL implementation to buildLisp. This is
quite trivial in comparison to ECL since SBCL and CCL have very similar
in how they work (so much so that CCL also suffers from b/136).

Also the similarities in the code actually added here are striking, so
I'll try to make an effort to reduce the code duplication in the
future.

To fix builds with CCL the following changes were made:

* //3p/lisp/nibbles: The double inclusion of the types.lisp file was
  fixed. CCL doesn't like double definitions and refuses to compile
  otherwise.

* //3p/lisp/physical-quantities: Update to a new bug fix release which
  contains a compilation fix for CCL.

* //3p/lisp/routes: apply a patch fixing the build which was previously
  failing due to a double definition.

* //3p/lisp/usocket: only depend on sb-bsd-sockets for SBCL and ECL, the
  latter of which seems to have a SBCL compatible implementation of the
  package.

* Conditionally include a few CCL-specific source files and add
  `badImplementation` entries for the remaining failures which are
  //fun/gemma (to be expected) and //web/panettone which fails with an
  incredibly vague message.

Change-Id: I666efdc39a0f16ee1bb6e23225784c709b04e740
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3350
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-08-24 22:00:15 +00:00
sterni
02566cdcfb feat(nix/buildLisp): add ecl
Adds ECL as a second supported implementation, specifically a statically
linked ECL. This is interesting because we can create statically linked
binaries, but has a few drawbacks which doesn't make it generally
useful:

* Loading things is very slow: The statically linked ECL only has byte
  compilation available, so when we do load things or use the REPL it is
  significantly worse than with e. g. SBCL.

* We can't load shared objects via the FFI since ECL's dffi is not
  available when linked statically. This means that as it stands, we
  can't build a statically linked //web/panettone for example.

Since ECL is quite slow anyways, I think these drawbacks are worth it
since the biggest reason for using ECL would be to get a statically
linked binary. If we change our minds, it shouldn't be too hard to
provide ecl-static and ecl-dynamic as separate implementations.

ECL is LGPL and some libraries it uses as part of its runtime are as
well. I've outlined in the ecl-static overlay why this should be of no
concern in the context of depot even though we are statically linking.

Currently everything is building except projects that are using cffi to
load shared libaries which have gotten an appropriate
`badImplementations` entry. To get the rest building the following
changes were made:

* Anywhere a dependency on UIOP is expressed as `bundled "uiop"` we now
  use `bundled "asdf"` for all implementations except SBCL. From my
  testing, SBCL seems to be the only implementation to support using
  `(require 'uiop)` to only load the UIOP package. Where both a
  dependency on ASDF and UIOP exists, we just delete the UIOP one.
  `(require 'asdf)` always causes UIOP to be available.

* Where appropriate only conditionally compile SBCL-specific code and
  if any build the corresponding files for ECL.

* //lisp/klatre: Use the standard condition parse-error for all
  implementations except SBCL in try-parse-integer.

* //3p/lisp/ironclad: disable SBCL assembly optimization hack for all
  other platforms as it may interfere with compilation.

* //3p/lisp/trivial-mimes: prevent call to asdf function by substituting
  it out of the source since it always errors out in ECL and we hardcode
  the correct path elsewhere anyways.

As it stands ECL still suffers from a very weird problem which happens
when compiling postmodern and moptilities:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/651

Change-Id: I0285924f92ac154126b4c42145073c3fb33702ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3297
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <tvl@eta.st>
2021-08-24 22:00:15 +00:00
Vincent Ambo
6f238c1c90 feat(atward): Handle plain host queries
Redirects host queries with no parameters (e.g. `cs`, `todo`, `b`) to
the start page of the appropriate host.

Fixes: b/133

Change-Id: I9d9dee753cfb460a97b73f39bbfe3cae54aae89b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3184
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-06-12 19:14:55 +00:00
Cynthia Revström
0491fb24bf fix(atward): Update link to use at.tvl.fyi
The link for atward's source code was using atward.tvl.fyi,
this makes the cs cookie (if set) for at.tvl.fyi not work.

Change-Id: I644f0341ecaf2caea0b71a950686579dfd18d092
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3155
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-24 20:34:07 +00:00
Vincent Ambo
224c9ca0bb chore: Replace remaining mentions of ##tvl[-dev] with #tvl
... and fix the capitalisation of hackint

Change-Id: I800aef75152d2dc77a33876888e36530143e9d3e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3148
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 19:46:46 +00:00
Griffin Smith
43e3355eae fix(panettone): Don't display the full before/after of issue bodies
Issue bodies tend to be very long, so displaying the full diff whenever
the issue is updated takes up a lot of visual room and is very hard to
read. Specifically for this field, this changes the display to only show
"updated the body of this issue", hiding the previous and new values.

At some point in the future, I'd love to have some CSS fun with active
anchor links to have an "expanded" view that *does* display the previous
and new value, but for now this should be fine - the data isn't gone,
after all!

Fixes: b/111
Change-Id: I0188540188729142e0b9205ff5cc9ea576c4edb6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3142
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 14:46:03 +00:00
Griffin Smith
a7d07e1a8a fix(panettone): Fix username display on issue events
7aebba7, which added anchor links to comments, also incorrectly added
only the *key* for the `:id` attribute to the `li` element for
issue *events*, swallowing up the next form (which happened to be the
username) as the value. this adds a *proper* value for the `:id`
attribute, bringing back the actual display of the username.

Fixes: b/97
Change-Id: I33ee628ddfd4a291e069980512fcc5f74014aac4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3141
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-23 14:41:15 +00:00
Griffin Smith
ba6bee80fb fix(panettone): Fix handling of issue-not-found
The accessor function to get the ID of the `model:issue-not-found`
condition is `not-found-id`, not `id`! Also, add a missing space to the
title.

Fixes: b/127
Change-Id: I91c71feaf1fe877e6a14453a9e75cf27d56fee31
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3140
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2021-05-23 14:16:58 +00:00
sterni
5177743f77 feat(tvl/template): use atward for dispatching to README.md
Ideally this means everyone gets to use their preferred code viewer.

Change-Id: I11005023c33eb111afd6c19b36d05dc581494ceb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3118
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:37:40 +00:00
sterni
1da235518a feat(web/atward): make checkbox label clickable
Change-Id: I147f1f2eee4f6b8f7ecea1b341d192477182d61c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3116
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:36:44 +00:00
sterni
c92f4ceacc refactor(web/atward): translate index page to markdown
Change-Id: I03ccbec1dd8ba58d80bd97eb40148dd395e500b2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3115
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:36:44 +00:00
sterni
25ff41452b feat(tvl/template): support markdown via cheddar
Since the template already was a derivation we can just reimplement a
specialized writeText which runs cheddar on parts of its input to avoid
import from derivation.

Change-Id: I0cffd0e86fd23a749599174260d04269379f4b5f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3114
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:36:44 +00:00
sterni
513e733f8a feat(tvl/template): link to atward in footer
Change-Id: I929b8344251ceaba5a22c735c599407a0ec162a6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3113
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:36:44 +00:00
sterni
040416b3eb refactor(web): common template for index pages of tvl and atward
Use simple string interpolation based approach to templating and allow
changing the main body, the title and to inject extra HTML into the head
element. Additionally we can use `https://tvl.fyi/` instead of `/` when
referring to assets.

One limitation currently is that the template only works for index pages
(it link to self using `href="/"`), but this should be easy to fix.

For atward, instead of using the `onload` attribute of `body`, we now
register an event listener in JavaScript which makes the template code
less complicated. When building the derivation the template is rendered
to HTML and injected into the source.

Change-Id: I2ea0c5bf5f6286e781285ade7751a348bab3bdc8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3112
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-12 15:36:44 +00:00
Vincent Ambo
ebf6301941 feat(atward): Support reading configuration from cookies
Adds support for reading configuration (currently only the `cs`
parameter) from cookies and from URL query parameters. The latter take
precedence if set explicitly.

This is useful for users which can not edit their search query
parameters.

To make this easier to use the atward landing page has been updated
with a simple form where settings can be toggled. This requires
Javascript, but the script is small, embedded and MIT licensed (as is
the rest of this project). Users without Javascript will be shown a
notice about this.

It is of course possible to set the cookies manually, too.

Change-Id: Ie9a9dbeab4d9a97a349d7988e21f1b46037e1f72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3110
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-05-12 13:19:11 +00:00
Florian Klink
85001c3540 fix(web/tvl): add two pixels to make favicon square
Fixes b/126.

Change-Id: I5caac45797738bccdbc346288fdf891dafdcefbb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3106
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-05-11 22:50:58 +00:00
Vincent Ambo
cb497a0cca feat(atward): Serve OpenSearch XML file to support Firefox
Firefox users can not easily add search engines to the browser unless
the page serves an OpenSearch description. This CL adds said
description according to the documentation:

https://developer.mozilla.org/en-US/docs/Web/OpenSearch

Change-Id: I358c5940304f4abd9e45dd72a64e46d3ce44b3e3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3105
Tested-by: BuildkiteCI
Reviewed-by: cynthia <cynthia@tvl.fyi>
2021-05-11 22:45:08 +00:00
Vincent Ambo
99d11bef5f feat(atward): Add an index page with setup instructions
Adds an index page that is rendered when there is no query parameter
in the URL. This means that going to at.tvl.fyi / atward.tvl.fyi
yields an actually useful page.

Change-Id: I018973a3c3e8b7b7167876fa99f34a008a17a4f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3104
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2021-05-11 22:45:08 +00:00
Vincent Ambo
13336c6057 feat(atward): Add 'cs' query parameter to toggle Sourcegraph support
Users can set `?cs=true` to be sent to cs.tvl.fyi instead of
code.tvl.fyi for things that look like code paths.

Change-Id: I7c8f9b71cde25d35787c941e5308330c6f16f8d7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3102
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-11 14:20:31 +00:00
Vincent Ambo
d4bdfe8127 refactor(atward): Construct an atward query type from user requests
Rather than dealing with passing down the rouille request to
handlers (which would have become necessary as we start supporting
more user-controlled features), a new `atward::Query` type is
constructed from requests and passed to the dispatching logic instead.

For now this introduces no new features, it just shuffles things
around to prepare for that.

Change-Id: I08e18422c1fdbac4712c739a7acbb810ada697ca
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3101
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-05-11 14:20:31 +00:00