No description
Find a file
sterni 5d5fb4e6a1 refactor(sterni/emacs): read extra feeds from ~/.config/emacs-extra
This allows me to add stuff without doing a commit for every feed. I can
always import them in bunches if I want to later.

Change-Id: I080f40b3627940a1f68cf13598c102953f4994b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3505
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-09-09 15:57:58 +00:00
.nixery feat(ops/modules): Add module for running Nixery 2021-08-12 14:55:59 +00:00
bin feat(tools/depot-nixpkgs-update): tool to update our pin 2021-07-28 12:14:52 +00:00
docs chore: Replace remaining mentions of ##tvl[-dev] with #tvl 2021-05-23 19:46:46 +00:00
fun feat(nix/buildLisp): add ccl 2021-08-24 22:00:15 +00:00
lisp feat(nix/buildLisp): add ecl 2021-08-24 22:00:15 +00:00
net feat(crimp): Add Nix build for crate 2021-08-15 14:18:59 +00:00
nix feat(nix/sparseTree): get a directory with only selected children 2021-09-09 15:57:58 +00:00
ops fix(ops/users): Another try at a working password hash for mdjnsn 2021-08-31 20:23:00 +00:00
third_party chore(3p): bump NixOS channels to 2021-09-06 2021-09-06 12:58:19 +00:00
tools fix(tvl.el): Fix compilation warnings 2021-08-24 17:22:47 +00:00
tvix feat(tvix/proto): Add evaluator communication proto 2021-05-08 22:50:34 +00:00
users refactor(sterni/emacs): read extra feeds from ~/.config/emacs-extra 2021-09-09 15:57:58 +00:00
web refactor(web/bubblegum): only rebuild examples on dependency change 2021-09-09 15:57:58 +00:00
.envrc chore: Unfuck NIX_PATH in the .envrc 2020-06-15 16:50:44 +00:00
.git-blame-ignore-revs chore: Add an ignoreRevsFile for git blame 2020-05-19 22:18:53 +01:00
.gitignore chore(gitignore): Ignore garbage/ folder 2019-12-20 20:05:40 +00:00
.hgignore chore(hgignore): ignore .git for hg 2020-06-14 18:23:13 +00:00
.mailmap chore(mailmap): add my name to mailmap 2020-07-18 18:15:05 +00:00
.rgignore chore: Only exclude //third_party/git from ripgrep 2020-05-17 23:58:22 +01:00
.rustfmt.toml feat: Add rustfmt configuration for the whole depot 2020-08-02 21:57:35 +00:00
buf.yaml feat(buf.yaml): add protobuf linter config 2020-07-17 20:01:29 +00:00
default.nix feat(depot): Prevent imports from NIX_PATH within the depot 2021-09-09 11:37:06 +00:00
LICENSE docs(readTree): Add SPDX license header on readTree 2021-04-12 13:56:44 +00:00
OWNERS feat: Configure OWNERS file for the depot root 2020-06-14 15:41:55 +00:00
README.md chore: Replace remaining mentions of ##tvl[-dev] with #tvl 2021-05-23 19:46:46 +00:00
RULES feat(whitby): Let sterni bear the wheel 2021-05-23 19:06:15 +00:00

depot

Build status

This repository is the monorepo for the community around The Virus Lounge, containing our personal tools and infrastructure. Everything in here is built using Nix.

A large portion of the software here is very self-referential, meaning that it exists to sustain the operation of the repository. This is the case because we partially see this as an experiment in tooling for monorepos.

Highlights

Services

  • Source code is available primarily through Sourcegraph on cs.tvl.fyi, where it is searchable and even semantically indexed. A lower-tech view of the repository is also available via cgit on code.tvl.fyi.

    The repository can be cloned using git from https://cl.tvl.fyi/depot.

  • All code in the depot, with the exception of code that is checked in to individual //users folders, needs to be reviewed. We use Gerrit on cl.tvl.fyi for this.

  • Issues are tracked via our own issue tracker on b.tvl.fyi. Its source code lives at //web/panettone/.

  • Smaller todo-list entries which do not warrant a separate issue are listed at todo.tvl.fyi.

  • We use Buildkite for CI. Recent builds are listed on tvl.fyi/builds and pipelines are configured dynamically via //ops/pipelines.

  • A search service that makes TVL services available via textual shortcuts is available: atward

All services that we host are deployed on NixOS machines that we manage. Their configuration is tracked in //ops/{modules,machines}.

Nix

  • //nix/readTree contains the Nix code which automatically registers projects in our Nix attribute hierarchy based on their in-tree location
  • //nix/yants contains Yet Another Nix Type System, which we use for a variety of things throughout the repository
  • //nix/buildGo implements a Nix library that can build Go software in the style of Bazel's rules_go. Go programs in this repository are built using this library.
  • //nix/buildLisp implements a Nix library that can build Common Lisp software. Currently only SBCL is supported. Lisp programs in this repository are built using this library.
  • //web/bubblegum contains a CGI-based web framework written in Nix.
  • //tvix contains initial work towards a modular architecture for Nix.
  • //third_party/nix contains our fork of the Nix package manager.

We have a variety of other tools and libraries in the //nix folder which may be of interest.

Packages / Libraries

  • //net/alcoholic_jwt contains an easy-to-use JWT-validation library for Rust
  • //net/crimp contains a high-level HTTP client using cURL for Rust
  • //tools/emacs-pkgs contains various useful Emacs libraries, for example:
    • dottime.el provides dottime in the Emacs modeline
    • nix-util.el provides editing utilities for Nix files
    • term-switcher.el is an ivy-function for switching between vterm buffers
    • tvl.el provides helper functions for interacting with the TVL monorepo
  • //lisp/klatre provides a grab-bag utility library for Common Lisp

User packages

Contributors to the repository have user directories under //users, which can be used for personal or experimental code that does not require review.

Some examples:

  • //users/tazjin/homepage && //users/tazjin/blog: A Nix-based static site generator which generates the web page and Atom feed for tazj.in
  • //users/grfn/xanthous: A (WIP) TUI RPG, written in Haskell.
  • //users/tazjin/emacs: tazjin's Emacs & EXWM configuration
  • //users/sterni/nint: A shebang-compatible interpreter wrapper for Nix.
  • //users/tazjin/finito: A persistent finite-state machine library for Rust.

Licensing

Unless otherwise stated in a subdirectory, all code is licensed under the MIT license. See LICENSE for details.

Contributing

If you'd like to contribute to any of the tools in here, please check out the contribution guidelines and our code of conduct.

IRC users can find us in #tvl on hackint, which is also reachable via XMPP at #tvl@irc.hackint.org (sic!).

Hackint also provide a web chat.