)]}'
{
  "log": [
    {
      "commit": "9e861a87775191faf1a027f603a0074446cd1319",
      "tree": "01fb624b542762594bad6e88d67c947263837769",
      "parents": [
        "5faa2fc7fb6266486183fdc1455e711079d33e37"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Sep 16 13:46:41 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Sep 16 13:46:41 2020 +0200"
      },
      "message": "//build/toolchain/musl-host-gcc: implement\n\nThis is a cc_toolchain which runs on x86 systems with Linux/gcc and\ntargets Smalltown via static musl builds.\n\nIt is currently unused, but can be tested by trying to build any\ncc_binary with\n--crosstool_top\u003d//build/toolchain/musl-host-gcc:musl_host_cc_suite .\n\nTest Plan: This has been tested manually by running it against a simple cc_binary. Another revision on top of this will attempt to build mkfs.xfs with it.\n\nX-Origin-Diff: phab/D623\nGitOrigin-RevId: ebdf51ee76d9d5a7fd94725c66ef53783f787df7\n"
    },
    {
      "commit": "a50e845df333a4d7531793e3fed61ca8411384f5",
      "tree": "d27ebc111fce076181d9ddda5c06882334f91823",
      "parents": [
        "ed0503cbe3c2d85d138f2604b87d73417be6c940"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Sep 09 17:09:27 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Sep 09 17:09:27 2020 +0200"
      },
      "message": "Introduce TPM event log infrastructure\n\nThis adds support for reading the local TPM event log and for parsing the\nresulting blob. Reading the log is implemented as part of our TPM library, but\nfor reading and processing the event log binary structure we rely on Google\u0027s\ngo-attestation. Since they don\u0027t separate their event log processing from the rest\nof the package, I imported the relevant files here directly.\n\nSince TPM event logs are really terrible (see included workarounds and\nhttps://github.com/google/go-attestation/blob/master/docs/event-log-disclosure.md)\nit\u0027s probably a bad idea to use them for anything where we can avoid it.\nSo this will likely only be used for EFI boot / secure boot attestation and\neverything we measure will be part of our TPM library with a much less insane format.\n\nTest Plan:\nManually smoke-tested using a custom fixture on a Ryzen 3000 fTPM.\nWe cannot really test this until we have a way of generating and loading\nsecure boot keys since an empty secure boot setup generates no events.\n\nX-Origin-Diff: phab/D622\nGitOrigin-RevId: e730a3ea69c4055e411833c80530f630d77788e4\n"
    },
    {
      "commit": "ed0503cbe3c2d85d138f2604b87d73417be6c940",
      "tree": "66fce41e479e22ba8a735fbcbb62d768c0307bd3",
      "parents": [
        "b9431c95082a3de6c87f96b700e69b72e4d87fdc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:21:25 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:21:25 2020 +0200"
      },
      "message": "Add Kubernetes CTS\n\nThis adds patches and build specifications for the Kubernetes Conformance Test Suite. This involves\ngating various cloud-specific tests behind the providerless flag (otherwise we\u0027d gain a ton of additional dependencies)\nand an additional 60MiB in test binary size.\nSince the CTS for weird reasons requires kubectl to be available in the path we first build a kubectl go_image and then\nstack the CTS on top of it. The output bundle is then preseeded for use.\n\nTest Plan: `bazel run //core/tests/e2e/k8s_cts`\n\nBug: T836\n\nX-Origin-Diff: phab/D615\nGitOrigin-RevId: 7d2cd780a3ffb63b217591c5854b4aec4031d83d\n"
    },
    {
      "commit": "b29e0b07048697a8e8b4b33adb98dd6d8e79eddf",
      "tree": "b0b9660a1a783aae391bafd1a9fbac56bcad5498",
      "parents": [
        "efb028fdc542dd2f19bf74a3be98506e7a15c7b7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:26:12 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:26:12 2020 +0200"
      },
      "message": "Add CoreDNS build\n\nThis adds CoreDNS and all relevant dependencies. Unused plugins are patched out\nto prevent excessive dependencies and binary size.\n\nTest Plan: `bazel build @com_github_coredns_coredns//:coredns`\n\nX-Origin-Diff: phab/D614\nGitOrigin-RevId: a897bc0e9f908218fd2f414d7e3b902c14e0a374\n"
    },
    {
      "commit": "efb028fdc542dd2f19bf74a3be98506e7a15c7b7",
      "tree": "778c7ccea019f423ca9f660125fe8898014aa9d8",
      "parents": [
        "8b0431a9d22b1f2bb8ab3e6eb66ffda5ca4a2ea9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:04:49 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:04:49 2020 +0200"
      },
      "message": "Allow applying patches before BUILD file generation\n\nThis adds support for patching Go dependencies before BUILD file generation and\nalso plumbs that support into fietsje. No actual prepatching is done in this revision.\n\nTest Plan: This has been used successfully in code built on top of it.\n\nX-Origin-Diff: phab/D612\nGitOrigin-RevId: 7013e5f98feb57ac64ff3dc79d1a9bb94e4152a8\n"
    },
    {
      "commit": "b682ba55d4a51babad2beebb470b0fef0e6067ca",
      "tree": "d94c2bb98f3a47896558d9cd4d2cc0271a4558c7",
      "parents": [
        "f85748717f32f0a74816de01b1e5f2e0104342c5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jul 08 14:51:36 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jul 08 14:51:36 2020 +0200"
      },
      "message": "Add service proxy\n\nThis adds a service proxy based on nfproxy and changes to the service IP allocation to make it work.\nAlso adds support for masquerading outbound traffic for outbound network connectivity.\n\nTest Plan:\nCurrently manually tested by creating an alpine pod and running \u0027apk add curl \u0026\u0026 curl -k https://192.168.188.1:443/\u0027.\nWill be covered later by CTS.\n\nBug: T810\n\nX-Origin-Diff: phab/D580\nGitOrigin-RevId: cace863fd8c2f045560f8abf84c40cc77bc275d4\n"
    },
    {
      "commit": "f85748717f32f0a74816de01b1e5f2e0104342c5",
      "tree": "bfac698dc5127fa6440a844c23c6469082256bc3",
      "parents": [
        "57b4375dc2763dbf8444a4786bd41b7ec1a8172b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:12:04 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 28 17:12:04 2020 +0200"
      },
      "message": "Make bindata relative to workspace root\n\nThis makes bindata relative to the Bazel workspace root instead of the package. This\nputs it in line with general Bazel expectations about how files are laid out.\n\nTest Plan: Should be covered by existing tests\n\nX-Origin-Diff: phab/D613\nGitOrigin-RevId: ce338fd40d24d6dd222c4fc02f48ada87b562d06\n"
    },
    {
      "commit": "f042e6f95bb7dc771bf79f309dbdf0b34da933da",
      "tree": "f18c60fb92202ce2d5ec7041c85579865a81509d",
      "parents": [
        "b876fc31f12628562a51c70668b318b9fc50478b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:46:09 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:46:09 2020 +0200"
      },
      "message": "Add Wireguard-based K8s pod networking\n\nThis adds a pod networking runnable based on Wireguard which watches all nodes\nand adds their K8s IPAM allocations as routes into the kernel \u0026 WireGuard. It only depends\non K8s and only performs direct routing.\n\nTest Plan: Manually tested by spinning up a two-node cluster and running two Alpine pods pinging eachother. Can be covered by E2E tests once we can do image preseeding for the test infra (T793).\n\nBug: T487\n\nX-Origin-Diff: phab/D573\nGitOrigin-RevId: ba3fc36f421fd75002f6cf8bea25ed6f1eb457b0\n"
    },
    {
      "commit": "b876fc31f12628562a51c70668b318b9fc50478b",
      "tree": "b7f4001c6ab56712dd26473b216e74222b1903f0",
      "parents": [
        "78fd97294dbc8bbf5ef1a490b2d7b7ad96fddcae"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 14 13:54:01 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue Jul 14 13:54:01 2020 +0200"
      },
      "message": "Update containerd to 1.4.0-beta.2 and K8s to 1.19.0-rc.0\n\nThis unbreaks bbolt (as part of containerd) on 1.14+ (see https://github.com/etcd-io/bbolt/pull/201 and\nhttps://github.com/etcd-io/bbolt/pull/220), pulls in my patch to ignore image-defined volumes\n(https://github.com/containerd/cri/pull/1504) and gets us some robustness fixes in containerd CNI/CRI integration\n(https://github.com/containerd/cri/pull/1405). This also updates K8s at the same time since they share a lot of\ndependencies and only updating one is very annoying. On the K8s side we mostly get the standard stream of fixes\nplus some patches that are no longer necessary.\n\nOne annoying on the K8s side (but with no impact to the functionality) are these messages in the logs of various\ncomponents:\n```\nW0714 11:51:26.323590       1 warnings.go:67] policy/v1beta1 PodSecurityPolicy is deprecated in v1.22+, unavailable in v1.25+\n```\nThey are caused by KEP-1635, but there\u0027s not explanation why this gets logged so aggressively considering the operators\ncannot do anything about it. There\u0027s no newer version of PodSecurityPolicy and you are pretty much required to use it if\nyou use RBAC.\n\nTest Plan: Covered by existing tests\n\nBug: T753\n\nX-Origin-Diff: phab/D597\nGitOrigin-RevId: f6c447da1de037c27646f9ec9f45ebd5d6660ab0\n"
    },
    {
      "commit": "52f7f291c1987fe98bd10d3ad79d4a0c8772ad03",
      "tree": "eaf212647f9bab001e62bb35647255b5f107bd2e",
      "parents": [
        "3ff5af330857b2aadcdae9d9e6ca37b7e5d2c56e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:42:02 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Jun 24 16:42:02 2020 +0200"
      },
      "message": "Add nanoswitch and cluster testing\n\nAdds nanoswitch and the `switched-multi2` launch target to launch two Smalltown instances on a switched\nnetwork and enroll them into a single cluster. Nanoswitch contains a Linux bridge and a minimal DHCP server\nand connects to the two Smalltown instances over virtual Ethernet cables. Also moves out the DHCP client into\na package since nanoswitch needs it.\n\nTest Plan:\nManually tested using `bazel run //:launch -- switched-multi2` and observing that the second VM\n(whose serial port is mapped to stdout) prints that it is enrolled. Also validated by `bazel run //core/cmd/dbg -- kubectl get node -o wide` returning two ready nodes.\n\nX-Origin-Diff: phab/D572\nGitOrigin-RevId: 9f6e2b3d8268749dd81588205646ae3976ad14b3\n"
    },
    {
      "commit": "385c12f84a0f1b6b5d70f228a0fb629f6f8f316c",
      "tree": "ef5ea6804ca0419e8851d1a21f956508764ba446",
      "parents": [
        "032ca1877adc3421343ed35a49c014ca261effff"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Jun 17 12:12:42 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Wed Jun 17 12:12:42 2020 +0200"
      },
      "message": "build/toolchain: init\n\nThis adds a new, bare-bones, host-based C++ toolchain, and enables it\nfor all target builds. This toolchain replaces the automatically\ngenerated host toolchain from bazel-tools, and differs in the following\nways:\n - uses fully hardcoded paths\n - is the bare minimum required, which allows us full control over all\n   aspects of it, notably link arguments\n - does not assume we\u0027re building normal C++ binaries for Linux (for\n   instance, the new toolchain does not always link with -lm)\n\nThis is in anticipation of a change by @lorenz that uses cc_binary to\nbuild qboot for tests. However, this is also a good basis to start\nwriting a \u0027real\u0027 toolchain suite for mkfs.xfs, linux \u0026 co.\n\nTest Plan: For now, this is unused - but does not break any existing flow, which is fine. I did test this on a qboot WIP commit from @lorenz, and it at least fixed our immediate problem that it wanted to build it with with -lm,-lstdc++ - which we didn\u0027t.\n\nX-Origin-Diff: phab/D560\nGitOrigin-RevId: 8a5bc5f00a0a0534ea245e556d160f5bab7f8a0c\n"
    },
    {
      "commit": "c3ae7588e04e283a9ee798823ff590f2eb26e13f",
      "tree": "dca98f6ae4627ba043527f1a2de01fb3b740be44",
      "parents": [
        "3b544a960249e7000b4fd9ce36f118c261c467df"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Jun 08 17:15:26 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Jun 08 17:15:26 2020 +0200"
      },
      "message": "core/initramfs: add cilium, force static binaries\n\nThis adds a Bazel transition to the initramfs rule to ensure all\nbinaries that are part of it are built statically.\n\nTest Plan: tested by building the binary and checking all binaries are static\n\nX-Origin-Diff: phab/D557\nGitOrigin-RevId: 897b902c6b139fdffd1179caae757f5151ad7804\n"
    },
    {
      "commit": "140bddcbe1aac46b168f6fc2178eb9c3870a434c",
      "tree": "8719383a79e42b1334a53f88bdc015872cba66dd",
      "parents": [
        "e6030f696613983ea00fc93b9e8b826cea7a1e9a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jun 05 21:01:19 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri Jun 05 21:01:19 2020 +0200"
      },
      "message": "core: build initramfs using generic initramfs rule\n\nThis chips away at three different things:\n - it brings us closer to hermetic and cross-platform builds by not\n   depending on genrule/shell and lz4-the-tool\n - it generalizes initramfs building (allowing for more than one to be\n   built, if necessary)\n - sets the stage to use Bazel transitions [1] to force all included Go\n   binaries to be built in pure/static mode while allowing host Go\n   binaries to use cgo/dynamic linking if necessary, and hopefully also\n   allowing us to get rid of some BUILD patches that set pure\u003d\u0027on\u0027 in\n   go_binary calls (notably needed in Cilium and some existing\n   third_party dependencies).\n\n[1] - https://docs.bazel.build/versions/master/skylark/config.html#user-defined-transitions\n\nTest Plan: build machinery change, covered by existing tests\n\nX-Origin-Diff: phab/D554\nGitOrigin-RevId: a5561eb5ca16e6529b9a4a2b98352f579c424222\n"
    },
    {
      "commit": "3058b7ab4e220c37624e1204744f0b17efd920d5",
      "tree": "d501623c882286d2cd5e0977c1dd262db9f65dbe",
      "parents": [
        "b15abadcd33cc25c220a2e8987f11bd967af5765"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Jun 03 17:51:07 2020 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Jun 03 17:51:07 2020 +0200"
      },
      "message": "build: add fietsje config and alias for Delve debugger\n\nTest Plan: Debugged a running process using `bazel run :dlv`.\n\nX-Origin-Diff: phab/D550\nGitOrigin-RevId: 3bea727afc0cc275fac19238067d871c42beef19\n"
    },
    {
      "commit": "878f5f9e5f9de93b09d354db7d116fd3d558dbfa",
      "tree": "994b67ea5264f7e38bb67e9043a369454eaab75d",
      "parents": [
        "9a741a861a4cb5c52b0251a4abf3a2c606b06198"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue May 12 16:15:39 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Tue May 12 16:15:39 2020 +0200"
      },
      "message": "Add Kubernetes Worker and infrastructure\n\nAdds Kubernetes Kubelet with patches for syscall-based mounting and\nsyscall-based (and much faster) metrics. fsquota patches have been\ndeferred to a further revision (for robust emptyDir capacity isolation).\n\nChanges encoding of the node ID to hex since Base64-URL is not supported\nas a character set for K8s names. Also adds `/etc/machine-id` and\n`/etc/os-release` since Kubernetes wants them. `os-release` is generated\nby stamping, `machine-id` is the hex-encoded node ID derived from the\npublic key.\n\nAlso includes a primitive reconciler which automatically ensures a set of\nbuilt-in Kubernetes objects are always present. Currently this includes\na PSP and some basic RBAC policies that are elementary to proper cluster\noperations.\n\nAdds an additional gRPC service (NodeDebugService) to cleanly\ncommunicate with external debug and test tooling. It supports reading\nfrom logbuffers for all externally-run components, checking conditions\n(for replacing log matching in testing and debugging) and getting\ndebug credentials for the Kubernetes cluster.\n\nA small utility (dbg) is provided that interfaces with NodeDebugService\nand provides access to its functions from the CLI. It also incorporates\na kubectl wrapper which directly grabs credentials from the Debug API\nand passes them to kubectl\n(e.g. `bazel run //core/cmd/dbg -- kubectl describe node`).\n\nTest Plan:\nManually tested.\nKubernetes:\n`bazel run //core/cmd/dbg -- kubectl create -f test.yml`\n\nChecked that pods run, logs are accessible and exec works.\n\nReading buffers:\n`bazel run //core/cmd/dbg -- logs containerd`\n\nOutputs containerd logs in the right order.\n\nAutomated testing is in the works, but has been deferred to a future\nrevision because this one is already too big again.\n\nX-Origin-Diff: phab/D525\nGitOrigin-RevId: 0fbfa0c433de405526c7f09ef10c466896331328\n"
    },
    {
      "commit": "9a741a861a4cb5c52b0251a4abf3a2c606b06198",
      "tree": "1ec5dddcbc049c76f67585c5d03f184ee6c66a9c",
      "parents": [
        "14cf750cac0d6c6e9504871246a45a226b2eb03e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu May 28 15:08:45 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Thu May 28 15:08:45 2020 +0200"
      },
      "message": "Apply containerd build patch again\n\nThe containerd pure mode build patch is no longer being applied after D535.\ncontainerd is thus no longer executable since we don\u0027t have a dynamic loader\nin Smalltown. This applies the patch again using Fietsje.\n\nTest Plan: Tested under D544\n\nX-Origin-Diff: phab/D545\nGitOrigin-RevId: 76bc4804c4dd0faf5fd38685d0c69bfa4af6ea94\n"
    },
    {
      "commit": "14cf750cac0d6c6e9504871246a45a226b2eb03e",
      "tree": "5c17e5c6e9904675403e47f8a8658e966a9506b0",
      "parents": [
        "f369cfa3ab4ad5ba882fa66f2fd1c3df8e5b4495"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu May 28 14:29:56 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu May 28 14:29:56 2020 +0200"
      },
      "message": "fietsje: implement .replace, add Cilium dependencies.\n\nThe new .replace() can be used to mirror \u0027replace\u0027 stanzas in go.mod,\nand that\u0027s what it\u0027s being used for in Cilium, as it ships a handful of\nforked libraries that we have to pull in.\n\nThe Cilium targets are currently unused, but the ones confirmed to build\nare:\n\n - @com_github_cilium_cilium//cilium: cilium API client\n - @com_github_cilium_cilium//daemon:daemon: cilium daemon/agent\n - @com_github_cilium_cilium//operator: cilium operator\n\nThese currently built as dynamic libraries - turning them into\nstatic/pure builds will come in a later build.\n\nTest Plan: how do we test this? :)\n\nX-Origin-Diff: phab/D542\nGitOrigin-RevId: b38c7c1d0be8b0b88ea8f6992c9c5557189399cc\n"
    },
    {
      "commit": "f369cfa3ab4ad5ba882fa66f2fd1c3df8e5b4495",
      "tree": "623bb7e085852f87e9ad6618408dc4b3171f7b29",
      "parents": [
        "df12522ed48dbac7edbae32be01a09770b01d0f7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 22 18:36:42 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Fri May 22 18:36:42 2020 +0200"
      },
      "message": "fietsje: implement\n\nThis introduces Fietsje, a little Go dependency manager.\n\nFor more information, see third_party/go/fietsje/README.md.\n\nWe also bump some dependencies while we\u0027re at it, notably, sqliboiler\nnow uses Go modules. If we weren\u0027t to do that, we\u0027d have to add more\nheuristics to Fietsje to handle the old version correctly.\n\nTest Plan: fietsje is untested - I\u0027ll add some tests to it. Everything else is just regenerating basically the same repositories.bzl file, but with some bumped dependencies.\n\nX-Origin-Diff: phab/D535\nGitOrigin-RevId: 4fc919e1bd386bc3f3c1c53e672b1e3b9da17dfc\n"
    },
    {
      "commit": "f64021170952839c39f25e13e8771d8e377af898",
      "tree": "06b4841b976cba50dea2f567d300ae2a5b355a14",
      "parents": [
        "bb7db92ee6e788b576e22ece70914e0321a785f7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon May 04 16:50:31 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon May 04 16:50:31 2020 +0200"
      },
      "message": "Enable stamping and use correct variables\n\nIn D487 stamping was introduced, but not actually enabled. This enables it.\n\nKubernetes also uses \"volatile\" stamping variables for things that logic\ndepends on. This is a terrible idea because\nyou cannot unbreak a build since volatile stamps don\u0027t trigger a rebuild.\nThe status variables which are not purely informational have been changed\nto \"stable\" variables\n(see https://docs.bazel.build/versions/master/user-manual.html#flag--workspace_status_command).\n\nTest Plan:\nBy itself not really testable, but has been tested on an\nupcoming revision that actually depends on stamping behaving correctly.\n\nX-Origin-Diff: phab/D491\nGitOrigin-RevId: 48dda066d56e29d10fb0f0a88a845d8caf527c98\n"
    },
    {
      "commit": "bb7db92ee6e788b576e22ece70914e0321a785f7",
      "tree": "1f4fee21a390625bd9766d0394e3076cf7e34d48",
      "parents": [
        "547b33f2b38dba41f2c171f8730ff5093b267eaf"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Apr 30 12:43:10 2020 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Thu Apr 30 12:43:10 2020 +0200"
      },
      "message": "Add all dependencies for Kubernetes worker\n\nAdds Kubelet, CNI plugins, containerd, runc and gVisor using a\npre-baked list of dependencies generated using scripts/gazelle-deps/sh.\n\nThis moves all dependencies of gVisor, Kubernetes, runc, etc into the\nsame \u0027namespace\u0027 of Bazel external repositories, giving us ease of\naccessing code as libraries, and benefits when it comes to version\nauditing.\n\nThe gazelle-deps.sh script is a temporary solution that will be replaced\nASAP, see T725.\n\nThis unblocks T486.\n\nThis is an alternative to D389.\n\nTest Plan: `bazel build //core:image` runs and picks up the new binaries\n\nX-Origin-Diff: phab/D487\nGitOrigin-RevId: a28a25071fa2ae76b272d237ce9af777485065ff\n"
    },
    {
      "commit": "c452a8dc724400c58a32faf4c4f51291b2675099",
      "tree": "8d872a9f7565b63ddd37497797c8b111be89e18c",
      "parents": [
        "5d7d2a42ed0394ecc57ef3cde1d837d8a997ec20"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Apr 20 14:09:39 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Mon Apr 20 14:09:39 2020 +0200"
      },
      "message": "Update built-in container to Fedora 32\n\nUpdates the base image of the built-in dev container to\nFedora 32 to get access to qemu 4.2+ and microvm.\n\nTest Plan: Covered by CI\n\nX-Origin-Diff: phab/D484\nGitOrigin-RevId: 3ac0fd3e9321acdb79814513e1fd7b4c10ef746d\n"
    },
    {
      "commit": "fd16651a2ef1484b7d8f12d0a7c7f93899af2747",
      "tree": "f7931a575e0a7133695b2e5a7ec412a2c21731e1",
      "parents": [
        "b1b742f91489cafa199bf5dd6e83d965cb23f63f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Apr 01 17:29:45 2020 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@nexantic.com",
        "time": "Wed Apr 01 17:29:45 2020 +0200"
      },
      "message": "Update Linux to 5.6\n\nTest Plan: Covered by existing tests.\n\nX-Origin-Diff: phab/D458\nGitOrigin-RevId: ebc83b17a0bcf66997d65763d8ff852a2613887c\n"
    },
    {
      "commit": "79d7a625709242204993cffbd99ed734dc1c50a5",
      "tree": "6a4b3773d40a468e2fb35c66f4e058c6901baef7",
      "parents": [
        "4ff52bd7326ff5b534261ffb47588a44216095af"
      ],
      "author": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@nexantic.com",
        "time": "Wed Mar 11 19:18:56 2020 +0100"
      },
      "committer": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@nexantic.com",
        "time": "Wed Mar 11 19:18:56 2020 +0100"
      },
      "message": "Add initial delta module\n\nTest Plan: covered by tests\n\nX-Origin-Diff: phab/D228\nGitOrigin-RevId: e44b5fd9b702bf8490b3c85edaf02f40b5d806c6\n"
    },
    {
      "commit": "af5ec37ef2549cf136438e3fd1775ce601c25bc9",
      "tree": "b96cf29a39793cb4e3511e1f3a7d637d29a08f79",
      "parents": [
        "8fba0f84d52095ff933b442f2acaec315e2eb1da"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Mar 11 13:33:17 2020 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Mar 11 13:33:17 2020 +0100"
      },
      "message": "build: update to Fedora 31 and Bazel 2.2.0\n\nTest Plan: CI\n\nX-Origin-Diff: phab/D432\nGitOrigin-RevId: 8b9173313e3d7970399e17305b61e3cfd0851a41\n"
    },
    {
      "commit": "7a1b10c4eb2a01084298537fae46f60ecf97cb6c",
      "tree": "f65eea8dbd90529aaf9e99e41b7a3517f391849f",
      "parents": [
        "ab0cc82b343ad93736ea4094844839a717190fd8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Feb 11 10:02:21 2020 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Feb 11 10:02:21 2020 +0100"
      },
      "message": "Explicitly provide Python toolchain, provide `python` in build container\n\nThis fixes being able to run py_binary targets within the build\ncontainer.\n\nEach py_binary creates a stub that always has the #!/usr/bin/env python\nshebang, and as such we need to have `python` available in the build\ncontainer. The stub then dispatches into the right Python interpreter,\nwhich we now configure explicitely via rules_python\u0027s py_runtime_pair.\n\nTest Plan: nothing breaks, future uses of py_binary (eg D389) will make actual use of this\n\nX-Origin-Diff: phab/D390\nGitOrigin-RevId: 78b6c51f09c720a46fbe2e6cbadb2a97d1161f7b\n"
    },
    {
      "commit": "822341ae63f435519b5329db3a9fe671fc48684c",
      "tree": "9a00fa6f64850c8607975bd8e7279d257c3c6ac6",
      "parents": [
        "731d00ae802712305d2a01ea4a7bbc74227b2f0d"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Mon Feb 03 21:51:47 2020 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Mon Feb 03 21:51:47 2020 +0100"
      },
      "message": "Manually invalidate image cache in CI\n\nOur objective is to ensure that the build always uses the latest\nDockerfile for a given build, while minimizing rebuilds.\n\nA counter is explicit and can be used to intentionally invalidate\nthe image cache, even if the the file\u0027s content did not change.\n\nThe caching performed by `podman build` is not very clever -\nit\u0027s not shared between repositories, and is easily invalidated\nby successive builds with different versions of the Dockerfile.\n\nGarbage collection is not trivial, since there may be multiple\nin-flight revisions with different counters.\n\nRef T506\n\nFixes T616\n\nTest Plan: CI ;)\n\nBug: T616, T506\n\nX-Origin-Diff: phab/D373\nGitOrigin-RevId: 5bfb8cd8b98175d645c904aee8e45402d0c049c7\n"
    },
    {
      "commit": "dcb3a56fe915f2359a5832c685aa2789027ee5fb",
      "tree": "acaa864bedaa306005830dc7d5aa1e3b0562139d",
      "parents": [
        "f8323f1010f4d1714570197f438888d081056846"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Feb 03 13:44:44 2020 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Mon Feb 03 13:44:44 2020 +0100"
      },
      "message": "Remove spurious \u0027@//\u0027 root workspace references\n\nTest Plan: covered by tests\n\nX-Origin-Diff: phab/D364\nGitOrigin-RevId: 4425fa5756468685dfafaf87186bf12f7da455e8\n"
    },
    {
      "commit": "f1d34d328eaf66f8ede61a0ffe30519f43aa73d9",
      "tree": "aa50b5494e92180403e8397087885ef4eeac0ce5",
      "parents": [
        "db6283e3d6425eea168e8dfc56c4f19f358ab64f"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Jan 07 14:15:44 2020 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Jan 07 14:15:44 2020 +0100"
      },
      "message": "Update Bazel, rules_go, gazelle, linux_kernel, musl, and k8s\n\nrules_go updates Go to 1.13.5.\n\nEFI boot patch had to be rebased since a bunch of ifdefs got cleaned up in 5.x\n\nhttps://github.com/torvalds/linux/commit/ac09c5f43cf613939850cc38d7a34ae6556016ba\n\nhttps://github.com/torvalds/linux/commit/82f9ed3a93307089242ff8a5c694e82c8c93f522)\n\nTest Plan: CI\n\nX-Origin-Diff: phab/D304\nGitOrigin-RevId: 8d7711dd2038e76e091a22a1aab865c3593e3889\n"
    },
    {
      "commit": "a4516f9887e43b774e49c22db93cdf289dc9cfb1",
      "tree": "8a0761a3480074b01d5584a1cd5c111a69f76594",
      "parents": [
        "6e8f69c53a2c82f5a760ab2e8152218cc86f3430"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Dec 04 20:27:05 2019 +0000"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Dec 04 20:27:05 2019 +0000"
      },
      "message": "Add minimal functionality test for k8s control plane\n\nBasic functionality test that sends the bootstrap RPC call,\nwaits for the k8s control plane to come up and runs a simple\nkubectl command (that is expected to fail).\n\nAdds reflection to the server to make grpc_cli easier to use.\n\nTest Plan:\nRan `:launch` (because we modified its config) and `:test_boot`,\nsaw a nicely booted k8s cluster:\n\n{P90}\n\nX-Origin-Diff: phab/D275\nGitOrigin-RevId: fe01e3f3ed09877aa76c15946664c9d9bdc4751b\n"
    },
    {
      "commit": "383d4bb84b7b5062b859f81db10e3f16bd427739",
      "tree": "9430d87be1ea0716b4075d5d19a358c2e3630383",
      "parents": [
        "68c58755e0a56e1b1c565d80f99056ec4948fbec"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Thu Nov 14 22:53:58 2019 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Thu Nov 14 22:53:58 2019 +0100"
      },
      "message": "Run \"bazel test //...\" in CI\n\nThis will build all buildable targets and test all testable targets.\n\nThe hardcoded Harbormaster rules have been removed in Phabricator.\n\nAdds a simple test for booting Smalltown.\n\nBUILD files that are injected into repositories have been renamed to\nBUILD.repo to ensure that Bazel does not recognize them as local BUILD\nfiles and attempt to build them.\n\nTest Plan: Covered by CI :)\n\nBug: T483\n\nX-Origin-Diff: phab/D262\nGitOrigin-RevId: 3512a5e13430001f4e6f91d21ac503564c8fb085\n"
    },
    {
      "commit": "4b0e5c075a81a7ea251c5c85af1d15c5ab54e962",
      "tree": "e060fc053d6057b2488644aa36b75843fde62280",
      "parents": [
        "a4ea9d03f1fb4248739392615967eaf07842e74b"
      ],
      "author": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Thu Nov 07 20:21:24 2019 +0100"
      },
      "committer": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Thu Nov 07 20:21:24 2019 +0100"
      },
      "message": "Add bindata rule\n\nTest Plan: Created a sample rule and packaged files to a go binary\n\nX-Origin-Diff: phab/D252\nGitOrigin-RevId: f80c25518008fded7104fa6945d077a52d928d85\n"
    },
    {
      "commit": "3e6018fcf0645da7876eec06d1604438bea0550e",
      "tree": "6bb2fa6081152d2dc32530a8eaaf0a58c31dc35e",
      "parents": [
        "0d7c91e331022831a974c2e34d32bb5b89ddc89c"
      ],
      "author": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Mon Oct 28 21:29:42 2019 +0100"
      },
      "committer": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Mon Oct 28 21:29:42 2019 +0100"
      },
      "message": "Add sqlboiler bazel rules\n\nThis implements a bazel rule to build sqlboiler models from sql migration stacks. It also launches a cockroachdb container in `create_container` and puts it in one pod with the nexantic-dev container.\n\nCurrently gazelle overwrites the `go_library` rule. I still need to find a way to properly exclude it.\n\nTest Plan: Built a sample set of sql models\n\nX-Origin-Diff: phab/D226\nGitOrigin-RevId: ff24f07bb0b3da9994c52a74f48b54e1e2bea726\n"
    },
    {
      "commit": "0d7c91e331022831a974c2e34d32bb5b89ddc89c",
      "tree": "5b822873c015053f4b697d60c33fa3b1ef9a3a4b",
      "parents": [
        "043daa57020dd36e074488dcb432114a548a3d2a"
      ],
      "author": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Wed Oct 23 21:44:47 2019 +0200"
      },
      "committer": {
        "name": "Hendrik Hofstadt",
        "email": "hendrik@certus.one",
        "time": "Wed Oct 23 21:44:47 2019 +0200"
      },
      "message": "Implement monorepo layout\n\nImplemented the nexantic monorepo.\n\nSmalltown code was moved to `core`. From now on all code will live in top level directories named after the projects with the exception for general purpose libraries which should go to `\u003clang\u003elibs`.\n\nGeneral build and utility folders are underscore prefixed.\n\nThe repo name will from now on be rNXT (nexantic). I think this change makes sense since components in this repo will not all be part of Smalltown, the Smalltown brand has been claimed by Signon GmbH so we need to change it anyway and the longer we wait the harder it will be to change/move it.\n\nTest Plan: Launched Smalltown using `./scripts/bin/bazel run //core/scripts:launch`\n\nX-Origin-Diff: phab/D210\nGitOrigin-RevId: fa5a7f08143d2ead2cb7206b4c63ab641794162c\n"
    },
    {
      "commit": "043daa57020dd36e074488dcb432114a548a3d2a",
      "tree": "2975b607028ca0c085df182afd809d1d322be2b7",
      "parents": [
        "23be9215aae77d2171c31f767c37cf69050fb748"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Mon Oct 28 11:48:45 2019 +0000"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Mon Oct 28 11:48:45 2019 +0000"
      },
      "message": "Fix caching and set home to /user\n\nTest Plan: Ran build\n\nX-Origin-Diff: phab/D220\nGitOrigin-RevId: d93c13b9a74c45d717e92151cdb10f0f3484a78b\n"
    },
    {
      "commit": "544440b6c8603ddaa548add84a657c999feeec49",
      "tree": "89eb7ab3920a5b90aab2623cfdd992850dff669b",
      "parents": [
        "2a2081cc8bdb0a04a1c5e4509ce5cb569f3ef110"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Oct 23 15:47:50 2019 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Wed Oct 23 15:47:50 2019 +0200"
      },
      "message": "Fix sandbox build by setting /tmp --syslibdir during musl build\n\nTest Plan: Ran a clean `scripts:launch` build, no longer failed.\n\nX-Origin-Diff: phab/D205\nGitOrigin-RevId: 6edd31d46816414c6b4c51664f23ce9d7c6d603d\n"
    },
    {
      "commit": "5c80acaec733e0b7c43cb0584cdeb7cebc826aa9",
      "tree": "f7db6de47e4ef38599da89dd4f1082c65569ca03",
      "parents": [
        "a71b5a4c36d5cae089666eaad57514c64baf6f24"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Oct 22 15:48:58 2019 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue Oct 22 15:48:58 2019 +0200"
      },
      "message": "Replace build system with a Bazel-based one\n\nThis pins our external dependencies and introduces a mostly-hermetic build where all dependencies are explicitly declared and rebuilt if needed.\n\nNecessary prerequite for a proper CI workflow. Since Bazel can cache build artifacts, we can remove the hardcoded binary artifacts from the repo.\n\nAs suggested in our discussions, the genrule that builds mkfs.xfs is basically doing the same as the previous build_artifacts.sh script (see source code comments for rationale).\n\nThe main issue at this point is that the `build/linux_kernel:image` target rebuilds the kernel each time any of its inputs (like cmd/init)\nchange. This is very hard to fix without compromising on hermeticity, porting kbuild to Bazel (no thanks) or injecting the initramfs into the\nkernel image in a separate rule (might just work, but the kernel build rule would either have custom code, or a massive set of outputs).\n\nPerhaps we could use a separate initramfs for development? Or deliberately poke holes into Bazel\u0027s sandbox to reuse kernel build?\n\nTest Plan:\nRun this in a fresh container with empty Bazel cache:\n\n    bazelisk run scripts:launch\n\n... and watch as Bazel rebuilds the world.\n\nX-Origin-Diff: phab/D197\nGitOrigin-RevId: 21eea0e213a50e1c4ad25b2ac2bb87c53e36ea6d\n"
    }
  ]
}
