)]}'
{
  "log": [
    {
      "commit": "07a39e2b168871f7cc4d50e26a3a474c1fcd99b6",
      "tree": "a2f19016a4a04a08c76d274332996bb1cfcaab4f",
      "parents": [
        "341cd42bf9f5b75414e551a6975698053dd19182"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 04 11:16:59 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 04 15:37:29 2025 +0000"
      },
      "message": "osbase/net/dhcp4c: move package out of metropolis\n\nMove the dhcp4c package from metropolis/node/core/network/dhcp4c to\nosbase/net/dhcp4c. The package is not specific to metropolis, and is\nalso used by nanoswitch and cloud/agent.\n\nChange-Id: I508261c93c623d5b7a33a2089da11625b7a3abd0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4565\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "341cd42bf9f5b75414e551a6975698053dd19182",
      "tree": "594f483041961dd82089bf9ed246e64f0547590f",
      "parents": [
        "7917902e5eea5409a9fe4450b437519670edac51"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 04 10:33:21 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 04 15:37:29 2025 +0000"
      },
      "message": "osbase: move test packages under osbase/test\n\nThe cmd, freeport and socksproxy packages are only used in tests, and\nare also intended to be only used in tests. This change moves these\npackages under osbase/test.\n\nChange-Id: I8fe679945990c295bdf822abfce56c25233c4588\nReviewed-on: https://review.monogon.dev/c/monogon/+/4564\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7917902e5eea5409a9fe4450b437519670edac51",
      "tree": "4c44923d805eb54d2c196816608d6dba0dcdbb94",
      "parents": [
        "541a303bdcadd5180e9e4256fbddba32acf4d5c0"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Sep 03 18:22:01 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Sep 04 15:37:16 2025 +0000"
      },
      "message": "metropolis/node: remove unused exports_files\n\nThis file is not used in other packages, so it doesn\u0027t need to be\nexported.\n\nChange-Id: I605447501bfb0667020caa72083058eff39a5ec6\nReviewed-on: https://review.monogon.dev/c/monogon/+/4563\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "541a303bdcadd5180e9e4256fbddba32acf4d5c0",
      "tree": "b0c7b82126bd31654a60038edc5d37ee48a98cc2",
      "parents": [
        "b46dcebbc90e3a923e5f3fc2f897c13926e9769b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Aug 07 17:45:39 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Aug 28 03:05:53 2025 +0000"
      },
      "message": "m/n/core: simplify network overlay\n\nDuring the initial refactor into the role server the node external IP\n(which was then used as the underlay target) got moved into the\npublished prefixes. This never did anything as the summary route into\nclusternet does not contain it. Thus drop this and simplify the code.\n\nAlso remove the extra loopback IP introduced in 011dce6623 as it never\nworked because control plane nodes do not even have a prefix to pick\nsuch an IP from.\n\nWhile at it, rename some variables to make them more accurate with how\nthis is eventually going to look. \n\nChange-Id: I6a6a6964bd45d088c37f746d1c9514246d624093\nReviewed-on: https://review.monogon.dev/c/monogon/+/4524\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0c7da3efe3d4e0ce4b38af602fca6a8cdbb2951b",
      "tree": "a869652bde1cb6bf2c0d078217ed100dd310c73e",
      "parents": [
        "2bd99ddf59a6080eec794f1e41a12c0bbc6a6608"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 24 00:21:35 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 26 09:15:00 2025 +0000"
      },
      "message": "m/node/core/tconsole: implement log scrollback\n\nChange-Id: I7ad6b42e16308366d8d34629c6d8d15ca5f1faf0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4462\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cb76c842664d261934fbb03c3fd8c57699183a60",
      "tree": "6c7d8dbfed842a5e56a11226a1c3999256f7450d",
      "parents": [
        "c607bf67ae20b17e8f254a7e3817e2d1a93114be"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Aug 11 12:54:28 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Aug 14 16:38:23 2025 +0000"
      },
      "message": "m/node: move clusternet under network\n\nMove the clusternet network side under the core/network umbrella and\nrename it to overlay. Also split out types.go into the ipam package\nto get the overlay package out of a lot of dependents which only import\nit for the Prefixes type which should be part of the ipam package.\n\nThis is a clean move with no functional changes intended yet, these\nwill be stacked on top.\n\nChange-Id: I6a6a6964af9d608f9ec3bf75b386c010cfff1df4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4500\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "c607bf67ae20b17e8f254a7e3817e2d1a93114be",
      "tree": "23cbb4bb40570be41cca51699c288f193b2b7029",
      "parents": [
        "4bde9313d653c7a3714d824f9904aa4081796560"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jul 22 20:25:26 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Aug 11 21:44:47 2025 +0000"
      },
      "message": "m/node: implement container networking ourselves\n\nThis change gets rid of the CNI mechanism for configuring container\nnetworking in favour of a split approach where the network service is\nextended by a gRPC workload network service which handles all of the\nwork as well as a library which exposes just enough of go-cni\u0027s\ninterface to be a drop-in replacement in containerd, which then talks\nto the workload network service.\n\nThis is a rather unconventional approach do doing things as CNI itself\nis a pluggable interface. The reason for doing it this way is that the\nbinary executing interface of CNI has a huge spec which is also horrible\nto convert into decent Go types and being a binary-calling interface has\ninherent lifecycle, complexity and image size disadvantages. The part of\nCNI that is actually used by containerd is tiny and its arguments are\nwell-specified and have decent Go types. It also avoids the whole CNI\ncaching mechanic which adds further unnecessary complexity.\n\nThe reason for the split service model instead of implementing\neverything in cniproxy is to allow for more complex logic and Monogon\ncontrol plane interfacing from the workload network service. Also this\nwill allow offloading the actual service to things like DPUs.\n\nRight now there is some uglyness left to make this self-contained. Two\nobvious examples are the piping through of the pod network event value\nand the exclusion of the first (non-network) IP from the IP allocator.\nThese will eventually go away but are necessary to get this to work as a\nstandalone change.\n\nChange-Id: I46c604b7dfd58da9e6ddd0a29241680d25a2a745\nReviewed-on: https://review.monogon.dev/c/monogon/+/4496\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4bde9313d653c7a3714d824f9904aa4081796560",
      "tree": "4aaf98feae5297653bc791fec367619beff2ab38",
      "parents": [
        "bafa7bd7f5f1db44ed169d447ce56e6a196ed01d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Aug 06 05:04:11 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Aug 11 09:34:37 2025 +0000"
      },
      "message": "m/node: extract network.Status to node.NetStatus\n\nThis is done to avoid nasty dependency loops involving clusternet and\nthe network service. The clusternet service can currently not be\nincluded by anything also talking to the network service which will be\nneeded by future network work.\n\nTo make this work we pull out the critical network.Status into\nnode.NetStatus which itself imports nothing and is thus safe to import\neverywhere.\n\nChange-Id: I8935de02926b6e06b5211f90c0c7f9abd8699c6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/4495\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "bafa7bd7f5f1db44ed169d447ce56e6a196ed01d",
      "tree": "0112c6d069d9a370fa47ebcab142da96b0b7f203",
      "parents": [
        "1f513e5ad4bd065e999a4c1d52526fb881328ee7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Aug 04 13:59:23 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Aug 04 12:55:12 2025 +0000"
      },
      "message": "m/n/c/devmgr: increase buffer size\n\nThe default kernel buffer size for the kobject connection results in\nfrequent overruns while enumerating devices causing devmgr to restart\nand reenumerate. This causes log noise and slower boots, so fix this by\nadding an upstream patch to allow setting the buffer size and doing so.\n\nChange-Id: Iddf63f2b71ec600e8a0160cc5ede85af84a76aeb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4494\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "1a7e1fe7c4059d79a4f5452d3ac9821cdaf22245",
      "tree": "f1fc24285aa0eb0753a7221882b9e3724dc4a641",
      "parents": [
        "d4309bbea5cb711ec4288850e21da90b6b3e237e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Fri Jul 25 16:50:12 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 14:52:26 2025 +0000"
      },
      "message": "m/node/core/update: add support for OCI index\n\nThe updater now also accepts OCI indexes, and will select the image with\nthe matching architecture from the index.\n\nThis is tested by making on of the update steps a multiarch index.\nThe testos_multiarch_* targets are tagged \"manual\" such that test //...\ndoes not build it for all variants.\n\nChange-Id: I2682beb1adf61de0e86c53371c63c4fd9afecf08\nReviewed-on: https://review.monogon.dev/c/monogon/+/4478\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d4309bbea5cb711ec4288850e21da90b6b3e237e",
      "tree": "dd09079d373807a15172675eb162a1396459f8ec",
      "parents": [
        "954c4b349725bb7fe8852dd9b85ddcfe3d0f3368"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Fri Jul 18 10:13:22 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 14:52:26 2025 +0000"
      },
      "message": "metropolis/node: generate OCI index\n\nThis adds a multi-architecture OCI index target for metropolis. mkoci is\nextended to add the platform to the index.json. Product info is extended\nto add the PlatformOS field, which mkoci puts into the platform.\n\nThe OCI spec requires the os field of the platform to be set. We don\u0027t\nneed this field so we could simply put \"unknown\" there, but I think\n\"uefi\" is nicer. Registry UIs display the os and architecture fields.\n\nChange-Id: I24acf3c01201b50238abd30cfd86da2eda43c1d9\nReviewed-on: https://review.monogon.dev/c/monogon/+/4477\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "2963b681d81e259fdea28db466c90e204be00e4b",
      "tree": "d6715fb940f09942cbe8fdc58138a30b43b039c8",
      "parents": [
        "1354c78f69335cbd809b0237bab1aa93e69419a1"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 17 17:03:44 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 14:52:26 2025 +0000"
      },
      "message": "osbase/oci: implement support for OCI index\n\nPreviously, only OCI images were supported, now we can also handle\nindexes. The new Ref type is either an Image or Index.\n\nChange-Id: I1b282ed6078d53e9a69e7613f601fdbbe64e192b\nReviewed-on: https://review.monogon.dev/c/monogon/+/4475\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4ebbc5f0b21a9a3af79b239323e502d780d8cd9c",
      "tree": "b11452a47897d8957b8d719f6ccf715190dbb6d7",
      "parents": [
        "346e2455c7eb2c2229dc3988079b96a1fc08f40f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 16 16:04:35 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 13:32:34 2025 +0000"
      },
      "message": "metropolis/node: remove console\u003dtty0 from cmdline\n\nIn a previous change I already removed the forced existence of\ntty0 as forwarded console. This is needed as we do want to\nexclusively use tty0 for tconsole and having a log forwarder\nrunning in parallel breaks the rendering.\n\nChange-Id: Ie74d4728f2f9dd45abb65d961845f62b319e2b6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/4438\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1b5164db6da76b58a329c44f700873ba4793ecf6",
      "tree": "279a5d5a7df7688f334d1ef2020d83e3ae042bac",
      "parents": [
        "717b6387c063ac985d2081e70f0c71db98001385"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 05:57:23 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 13:32:10 2025 +0000"
      },
      "message": "metropolis/node: remove old bundle.zip\n\nWithout it we can also ditch rules_pkg\n\nChange-Id: Ida41a22e5102ab8f3f13bf546590511339bb101b\nReviewed-on: https://review.monogon.dev/c/monogon/+/4459\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cfbc903146d77408567646708f4c9c3ae782145a",
      "tree": "494bf768df9bea2743345c10fa0a6335ac04bbbd",
      "parents": [
        "a16e6f917f70054bbe50fdc100ae1a7be2e40d91"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 15 14:18:45 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 17 14:53:07 2025 +0000"
      },
      "message": "treewide: bump to k8s v1.33.2\n\nUpdate Kubernetes to 1.33 which is already at patch version 2. As part\nof K8s gomod dependencies containerd was bumped a minor release to 2.1.3.\nThe UserNamespacesSupport feature gate is now default-on and was thus\ndropped. The netlink patches were upstreamed and can now be dropped as\npart of the depenency update. A new klog sink adapter for our logging\ninterface was introduced as the client-go MutationCache now requires a\nlogger.\n\ncontainerd abuses gRPC interfaces for mocking, thus they are not\nforward-compatible and need a new patch to be compatible with the\nCRI version now being used.\n\nChange-Id: I4feb2ab3bcfca5b83c7ea38ed444b14ade1e9bf0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4433\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "26add7576e6d9346b33de5fbbccabba1108f4785",
      "tree": "1ca5aa22e92a5b6a79d2aa02fb69a7bc412c79a2",
      "parents": [
        "2add1cb4f90df3dfe3dac1748605555f4158f125"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 15 11:36:05 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 15 12:21:06 2025 +0000"
      },
      "message": "m/n/core/curator: remove flaky attribute\n\nThe issue is closed for a while now.\n\nCloses monogon/monogon#392\n\nChange-Id: Ie6f5be2882706f149901e098315e742b4bd19644\nReviewed-on: https://review.monogon.dev/c/monogon/+/4432\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2add1cb4f90df3dfe3dac1748605555f4158f125",
      "tree": "5c79b1296315a835cdf402f54350ab03090d2ce1",
      "parents": [
        "e2265b30113f50b7b2d04259ad326c3e4aba7f5e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jul 14 09:26:18 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Jul 15 11:55:43 2025 +0000"
      },
      "message": "osbase/build/mkverity: generate salt from product info\n\nThe salt is now generated from the product info file, instead of the\ninput image file. This reduces build time by around 0.3 s.\n\nChange-Id: Id3263e24604745324a5652658ff79cc79c9df5fa\nReviewed-on: https://review.monogon.dev/c/monogon/+/4431\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "62229cf857f1f205b4190bd3d6069928984e36fe",
      "tree": "050834d60ca831733825a83aceab78736a5a4404",
      "parents": [
        "59b49c9b57d37673ef4ecf0c2855280910fc4462"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 07 12:47:31 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jul 09 18:03:12 2025 +0000"
      },
      "message": "treewide: update etcd to 3.6\n\nThis is a fairly large update, containing 4 years of upstream\ndevelopment. A lot of code has been moved around, requiring a rebase of\nall patches and ajustments in code using it.\n\nUpstream requires that upgrades first go through etcd 3.5.20, which is\ndone in a CL below this one. Other than that upgrades are possible\nthrough normal Monogon node updates, but downgrades (while implemented\nfor 3.6.0) are still not supported in Monogon until further work is\ndone.\n\nThere are significant issues in etcd synchronization between the\n\"outside\" manager (embed or standalone) and the core (EtcdServer), one\nof which affects removal of the ConsensusMember role, causing a panic\ndue to the client listener not being closed when the server shuts down\non its own. This is triggered by the autopromoter hitting an endpoint on\na shut-down etcd, which accesses a nil backend. This issue existed\nbefore, a full fix will likely involve either significantly rewriting or\ngetting rid of the embed package, so this just fixes the panic-causing\ncode path.\n\nChange-Id: If5932a7428a262fde406a5bb652a40d211301734\nReviewed-on: https://review.monogon.dev/c/monogon/+/4394\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "06341a6b1afd7e6c7c395bd6731c7df978c8c4e5",
      "tree": "afef720aecd0149092f252413db89d1b5ceba4da",
      "parents": [
        "2b9a0a0fcf0aeece55ba8792a22cfa42733823c0"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 09 08:02:35 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 09 14:53:49 2025 +0000"
      },
      "message": "build/binary_tarball: rename from static_binary_tarball\n\nThe static_binary_tarball rule no longer has a transition to build\nstatically, so the \"static\" part of the name is not meaningful anymore.\n\nChange-Id: Ifaecf2f7846a963d957d4bfcc89a3d9e7e911f5c\nReviewed-on: https://review.monogon.dev/c/monogon/+/4415\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "2b9a0a0fcf0aeece55ba8792a22cfa42733823c0",
      "tree": "b8694b0d0224bcdc37238306e00e68bf261bd71d",
      "parents": [
        "10d47cc2d5d64f2a0b0e9a70b7ce09a306a14c37"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 09 07:54:12 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 09 14:53:49 2025 +0000"
      },
      "message": "treewide: remove build_static_transition\n\nWe now build everything statically on Linux. This means we don\u0027t need\nthe build_static_transition anymore, as it has become a no-op.\n\nChange-Id: Id6b978daf09bf3e8e252d00da3795909d7ce3b75\nReviewed-on: https://review.monogon.dev/c/monogon/+/4414\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "10d47cc2d5d64f2a0b0e9a70b7ce09a306a14c37",
      "tree": "d979a6c9fd50666fbcf23507601c81f1079ea47d",
      "parents": [
        "bb53d28169fe2f80fd42635b03fe8ee01af85bb4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 01 00:34:51 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "fionera@fionera.de",
        "time": "Wed Jul 09 14:31:46 2025 +0000"
      },
      "message": "metropolis/node/abloader: Update to uefi 0.35.0 and prost 0.14.1\n\nChange-Id: I8e81056621c465173cb8416f01c37a46ed65fc28\nReviewed-on: https://review.monogon.dev/c/monogon/+/4377\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12240f9bb95fae3b6c4737d825c498f35320e89b",
      "tree": "6cb9d3e47168fc7736c0ce484879f9d59cae9893",
      "parents": [
        "a92977339eef83af2cf94d28fe8786c0fafe53bc"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 28 14:59:33 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 08 13:25:25 2025 +0000"
      },
      "message": "third_party/edk2: use toolchain-bundle for edk2 build\n\nThis moves the build into a custom rule instead of a genrule.\nThis also adds the AARCH64 build and renames the files to be more\ngeneric\n\nChange-Id: If6e3cecaf4011e2e39f13b1d40bcc7060cee3afb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4154\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "31c44491e5a1632f6f881df3b52beadddb57653c",
      "tree": "768d72d556413b32eaeb8ceb24bf3d645507b1a9",
      "parents": [
        "c4c89601ff800c421caea620d7c183c3c616bb46"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jul 07 13:32:10 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jul 08 10:23:10 2025 +0000"
      },
      "message": "m/n/c/network: log interfaces when none match\n\nThis helps users figure out what interfaces are available for matching\nwhen no interfaces match a given description. Also helps distinguishing\nbad selectors from hardware which does not show up (because of missing\ndrivers or hardware/firmware issues).\n\nChange-Id: Ie4bbdc04b76af7feed123b5df587c9eb5ee7ea37\nReviewed-on: https://review.monogon.dev/c/monogon/+/4395\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "8bb5dfa3f09433a84d8bdf3bbc8768969776e160",
      "tree": "2d78f208863411cccee71cc8cdee6e044a9cb7f6",
      "parents": [
        "8f1efe9a47240058ae639528cb3ced8adfe8b708"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 02 17:59:48 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 01 10:52:37 2025 +0000"
      },
      "message": "treewide: migrate to nasm in toolchain-bundle\n\nChange-Id: Ia5f8e20fee16197ad21320c96c6f2a1e66bc718f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4082\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8f1efe9a47240058ae639528cb3ced8adfe8b708",
      "tree": "d0605e8dd69c1e3e03a249daf545b34e3ded4997",
      "parents": [
        "3a7a67e3cc2d35d698b8a0dcaef1c52d5e92c173"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 01 01:28:43 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 01 10:52:37 2025 +0000"
      },
      "message": "treewide: migrate to qemu-kvm in toolchain-bundle\n\nChange-Id: I42a10a9adf7bdccb83ef997c6d554140ffaade4b\nReviewed-on: https://review.monogon.dev/c/monogon/+/4052\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5d3f553965576381e6ae227b44358460e232c584",
      "tree": "ef0c2081810fc54baeca60ad5419bb02aadfffa0",
      "parents": [
        "c36d28d4790c540139b37e4c13c466514c1ac89f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:38:26 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "metropolis/node/kubernetes: remove old todo\n\nCloses #436\n\nChange-Id: Ia5e8392e4046a7282171130410454b66ac211799\nReviewed-on: https://review.monogon.dev/c/monogon/+/4355\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "c36d28d4790c540139b37e4c13c466514c1ac89f",
      "tree": "83afad12f613af8c5554d2a4812debd86b240926",
      "parents": [
        "6675f53d0b12dbbe471269d6902dfa0801a3f1d8"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:35:40 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "metropolis/node/core/network: replace magic number with constant\n\nCloses #418\n\nChange-Id: Ia93f2fbc4c7fe9d9f9ada768610e28e7044f1fa2\nReviewed-on: https://review.monogon.dev/c/monogon/+/4353\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "6675f53d0b12dbbe471269d6902dfa0801a3f1d8",
      "tree": "0752fcdc03c7b2ab39b82401af2b4799b1412af8",
      "parents": [
        "7fd64f60c607878c60e8c9eff2f21139fe389d6e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:34:41 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "metropolis/node/core/roleserve: remove flaky attribute\n\nCloses #421\n\nChange-Id: I4d50d382f31875cd354c67281bcfc91bda14c589\nReviewed-on: https://review.monogon.dev/c/monogon/+/4352\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "daf9e959b0ac976596640eab6a6ce79bbbccd1e7",
      "tree": "23df07623e9a878e4a2bbd1ddeafecc0b94923fe",
      "parents": [
        "e19d27912839df47bdba0934b079f0a7d75b733c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 13:28:16 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "m/installer/install: take OCI image in Params\n\ninstall.Params now takes an OCI image. This avoids some duplicate code\nto extract info from the OCI image in all places which create\ninstall.Params.\n\nChange-Id: I2430ce1101befaa1b1a4781f592d06ee015a0f99\nReviewed-on: https://review.monogon.dev/c/monogon/+/4297\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e19d27912839df47bdba0934b079f0a7d75b733c",
      "tree": "8e70b78561b7dbb4d3d3988f0b77541e6409e2b3",
      "parents": [
        "e053036c16678261471539e425c59df0dd251603"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 12:37:58 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "m/installer/install: move from osbase/build/mkimage/osimage\n\nMove the package osbase/build/mkimage/osimage to\nmetropolis/installer/install. The package contains \"metropolis\" in\nvarious strings, so it fits better in //metropolis than in //osbase.\nThe parent package mkimage no longer exists.\n\nThe rename also removes the name clash with osbase/oci/osimage.\n\nChange-Id: Ia228ab94c937f4c7a5b6eb1fcc77993a594d64b6\nReviewed-on: https://review.monogon.dev/c/monogon/+/4296\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "e053036c16678261471539e425c59df0dd251603",
      "tree": "8f6007aa1442bd15275a5df747a372b7df3a9d84",
      "parents": [
        "3b0c8dd5b5a4cb535f9d256a0b6b3676507eb3e4"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 11:50:34 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "osbase/build/mkimage: delete package\n\nWe no longer use pre-build disk images for cluster launch, and it also\ndoesn\u0027t make sense to distribute these as release artifacts. This means\nwe no longer need mkimage.\n\nChange-Id: I72aa376561c91e114a80367f814b03434c82355f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4295\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3b0c8dd5b5a4cb535f9d256a0b6b3676507eb3e4",
      "tree": "e568a2087ba4f8335a1e2ba10a8e01e9809b4de8",
      "parents": [
        "e0db72ca567b5142bb6a31d745b3bf78cd8eb53a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 10:32:07 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "m/test/launch: build image at runtime\n\nTest launch now builds the node disk image from the OCI image, instead\nof creating a qcow2 snapshot of the pre-built disk image. This speeds up\ntests and test cluster launch.\n\nThe OCI image is uncompressed and payloads are not verified, which\nenables the previously implemented copy_file_range optimization. If the\nhost file system supports reflinks, this has a similar effect as the\nqcow2 snapshot had previously: Building the image is very fast as the\nrootfs data is not copied on disk. On my machine, it takes 30 ms.\n\nThe build before launching a cluster is now faster: The MkImage step\ntaking 6 s is replaced by MkOCI taking 1 s. The majority of this time is\nspent by Bazel computing hashes of files. For MkImage, the generated\nfile was a 5 GB disk image consisting mostly of zeroes, which took a\nlong time to hash.\n\nAdditionally, the qcow2 layer added some overhead, which is now gone.\nThe HA e2e test previously took 103 s on my machine, now it takes 80 s.\n\nChange-Id: I0ce5059626cc682061c26ac3c8d11b752e641c60\nReviewed-on: https://review.monogon.dev/c/monogon/+/4294\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "77bf754c26c64befa772e00f652faf784b0913c9",
      "tree": "98be13ae200a12fb278eed38732b19a5a66d3b24",
      "parents": [
        "e08c16075bd39da9194aff89e4e9f479740ae56d"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jun 23 11:26:31 2025 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jun 23 13:35:46 2025 +0000"
      },
      "message": "*: github.com/monogon-dev -\u003e github.com/monogon\n\nChange-Id: I0b8bfde3d99d5308a73d51f869cb1440e285939f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4291\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "e08c16075bd39da9194aff89e4e9f479740ae56d",
      "tree": "29ed52fd7a3c76cb0a9d18248bac098ae61e97fa",
      "parents": [
        "a0bd93fa37ccabae99b81bdd604cef1aee7d481d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 17 19:19:33 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 19 10:49:00 2025 +0000"
      },
      "message": "m/n/core/network: implement LLDP transmission\n\nImplements simple LLDP transmission-only support for Monogon OS. It\nadvertises enough to do topology discovery through LLDP. Currently it\nsupports MAC address, interface name, node name and product\nname/version. More information can be added in the future.\n\nTested using Wireshark on launch-cluster node/switch traffic.\n\nChange-Id: If5777bc042ef87bd8d26c548324c6de6f14f7270\nReviewed-on: https://review.monogon.dev/c/monogon/+/4282\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d4817496c23ab0b39b94ffc5a47ba63be0cf23ed",
      "tree": "b21338c9e3adbd055c72fd5000b7c9f1a9799d10",
      "parents": [
        "2caadc7b37bca50bb50d74fd1f181c8e77915f38"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 16 15:03:12 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 18 12:34:13 2025 +0000"
      },
      "message": "treewide: bump dependencies\n\nChange-Id: Ibe397cb7eb2f2c591cb1affa5272616197a6c31c\nReviewed-on: https://review.monogon.dev/c/monogon/+/4281\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "4b8882699a307857c52e2faa3d4dfa544b188cd1",
      "tree": "c6fcc0c145d95d9b5b86feb27a655c040f9dd8af",
      "parents": [
        "b86917b2bdb755de8106aea08841c914d52d3347"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 13 09:12:03 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "treewide: use architecture-specific UEFI boot path\n\nThe default UEFI boot path depends on the architecture. This change is\nneeded for aarch64 support.\n\nChange-Id: I69916ac5063e963b67ecdcdd814b0678c61da9fb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4195\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b86917b2bdb755de8106aea08841c914d52d3347",
      "tree": "18727705322dc5b26584b7fe019812447f737224",
      "parents": [
        "07e6905d472157754a536564046a23654960de45"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed May 14 16:31:08 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "metropolis: replace version stamp with product info\n\nThis removes the stamped metropolis version library and the associated\nstampgo infrastructure, and replaces it with the product info file.\n\nThe info is now stored in a separate file in the rootfs, instead of\nembedded in the core binary. This has the benefit that the core binary\nno longer needs to be relinked when stamping info changes.\n\nThe version logging in core/main, and the tconsole are updated to show\nsome of the additional info from the product info.\n\nChange-Id: Ic5ed0e3598e8da71b96748e8d7abfedff41acd3f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4207\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "07e6905d472157754a536564046a23654960de45",
      "tree": "38a5f334ae805515623a871cd7cf18ee16077cea",
      "parents": [
        "e6c0c329809eeca1c800eeec44a5599a0cf45f6b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 16:34:15 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "treewide: add product info to OCI OS images\n\nAdd the product info to the OCI OS image config.\n\nChange-Id: I70c572f2698c8d8bb0edc0ba969d8c6b37ae4c00\nReviewed-on: https://review.monogon.dev/c/monogon/+/4193\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e6c0c329809eeca1c800eeec44a5599a0cf45f6b",
      "tree": "35ccb939eb9b0de15abd0d30da4b4eb260f3e4b6",
      "parents": [
        "e342086c9d71e3eb38c0a159e559ab4de0033492"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 16:14:25 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "treewide: build product info\n\nThis change adds the type definition and generator for product info,\nwhich will be added to the OCI OS image to provide information about the\ncontents.\n\nHere is an example product info:\n\n{\n\t\"id\": \"metropolis-node\",\n\t\"name\": \"Metropolis Node\",\n\t\"version\": \"0.1.0-dev1059\",\n\t\"variant\": \"x86_64-race\",\n\t\"commit_hash\": \"56248c1c1d5039bdf3c1043ade88f3f158ceb52b\",\n\t\"commit_date\": \"2025-05-08T18:26:46+00:00\",\n\t\"build_tree_dirty\": true,\n\t\"components\": [\n\t\t{\"id\": \"linux\", \"version\": \"6.12.15\"},\n\t\t{\"id\": \"kubernetes\", \"version\": \"1.32.0\"}\n\t]\n}\n\nThe product info has the same inputs and a similar purpose as the\nos-release file, so they are both generated by the same build action.\n\nChange-Id: I89d453f2d72ac9df49e404f46381cd594534f800\nReviewed-on: https://review.monogon.dev/c/monogon/+/4192\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e342086c9d71e3eb38c0a159e559ab4de0033492",
      "tree": "6795427cc0b379243663cf35c253c305bba9cff8",
      "parents": [
        "b5bfd647c5385686687d438499a0014a99be4060"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 05 12:25:03 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 11 19:46:15 2025 +0000"
      },
      "message": "treewide: basic ARM64 fixes\n\nThis introduces per-arch kernel configs, adds a basic ARM64 kconfig,\nadds ttyAMA0 as a console as well as makes some smaller fixes needed for\nbasic ARM64 operation. This is not production-ready, but it boots\nMonogon on ARM64.\n\nChange-Id: Ifd1d8e33f3fe65883626b8ae7a766c98ea912121\nReviewed-on: https://review.monogon.dev/c/monogon/+/4247\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d0d5d9dd04574305cf86bf1eb3e787549100ea28",
      "tree": "e685757c85066ce4671e125374725093577ea986",
      "parents": [
        "b554dd389e51718d5acf084cd706d32e16f3994d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 26 22:07:11 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 02 18:57:29 2025 +0000"
      },
      "message": "treewide: use Fatal in tests instead of Error\n\nError doesn\u0027t return the goroutine, but these cases are final and should end the test case.\n\nChange-Id: I9d87e268b56acd7d1ff5883bb82bf3d74c309176\nReviewed-on: https://review.monogon.dev/c/monogon/+/4044\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "36f3b6dcbcfd359b744a29cf9245c9dd6879435f",
      "tree": "ee0dcb43cd1a7c22a1fcbaa379d949bd4362b758",
      "parents": [
        "afb922cfba991a2af1473da5850b75e8db03dd56"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 20 09:05:12 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 27 07:32:21 2025 +0000"
      },
      "message": "treewide: replace stampsrcs with embed\n\nA rules_go maintainer suggested using embed instead of stampsrcs:\nhttps://github.com/bazel-contrib/rules_go/issues/3507\n\nFor Kubernetes, this means we need to patch the version libraries.\nInstead of creating a separate file for each variable, I put them all in\none file, which is parsed in an init function. This init function needs\nto run before all other init functions, which access the variables.\n\nAnother benefit of this change is that versions are stamped in all\nbinaries which include Kubernetes client libraries, not just hyperkube.\n\nChange-Id: Ib1157d3686fc35e0c4191d2fc8e165862a1973c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4208\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "091b8a67214aef628ed9e00f279e9bcd12c0fcbe",
      "tree": "74eeae3973ae280853e7cff9220d9eaf04683443",
      "parents": [
        "69b7687c6a755ea017974c7318409970c2822e91"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 13 09:07:50 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 19 14:38:19 2025 +0000"
      },
      "message": "osbase/build/mkimage/osimage: remove initial slash in EFI paths\n\nMany places where these paths are used don\u0027t need the initial slash, and\nit\u0027s easier to add it than to remove it.\n\nChange-Id: Iec189628556c9aa1c022fdd46a2c9fe57692e0aa\nReviewed-on: https://review.monogon.dev/c/monogon/+/4194\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "69b7687c6a755ea017974c7318409970c2822e91",
      "tree": "9fb6c6ffcbb8822a2a943e85ebfd00601bb01fa1",
      "parents": [
        "549b1d3549b05b589d697a53ce2e663f9d87f8e3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed May 14 16:39:47 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 19 08:37:47 2025 +0000"
      },
      "message": "metropolis/node: move misplaced packages out of core\n\nabloader, bios_bootcode and minit don\u0027t run as part of the core process,\nso it doesn\u0027t make sense to have them in //metropolis/node/core.\nThis changes moves these three to //metropolis/node.\n\nChange-Id: I908efb311a138f07a9f1de8e3c23437ff00131ee\nReviewed-on: https://review.monogon.dev/c/monogon/+/4196\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "51c6748c2158d7dbc1ec79ada63a5e68a27f8533",
      "tree": "0e14029e3c73d4130b388904aba3237a7224f157",
      "parents": [
        "230a31aec7de7270e5a89a81443f69f9525ad4db"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 05 13:11:55 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 08 18:26:46 2025 +0000"
      },
      "message": "treewide: implement basic aarch64 support\n\nThis adds aarch64 platforms, and some fixes for aarch64 support. This is\nnot yet complete; e.g. toolchains for aarch64 targets are still missing.\n\nI renamed the amd64 platforms to x86_64 and efi to uefi for consistency\nwith @platforms.\n\nsyscall.Dup2 does not exist on arm64, but unix.Dup2 does.\n\nChange-Id: I3ab081b2b852945b723ec83768f79000b8c4def4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4173\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "df588d069ca78101325c1e6860ec226209c10c31",
      "tree": "2e4d490fae6490e6f5bf810c794aa1192a78180c",
      "parents": [
        "bddad354b8dd768a7b883b12ca7274b04ce05bc6"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 23 15:17:11 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 01 06:49:22 2025 +0000"
      },
      "message": "treewide: remove \"v\" prefix from versions\n\nA semantic version does not have a \"v\" prefix.\nhttps://semver.org/#is-v123-a-semantic-version\n\nChange-Id: I95aa2014ba3330d33428e57e5f354eabfe6d1423\nReviewed-on: https://review.monogon.dev/c/monogon/+/4170\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "10670e58174de17d42ecfe77e45f9826df8a6c74",
      "tree": "60bdeb81a03af09ad57632a818608c6aa1b0a8bd",
      "parents": [
        "0cbf51a530ff05eaacadb12c4cc977c24a0f0fb0"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 23 12:54:48 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 01 06:49:22 2025 +0000"
      },
      "message": "treewide: dynamically generate copyright line\n\nA copyright line with hardcoded year was shown in various places of the\nUI. Instead, take the year from the commit date.\n\nChange-Id: I424d6c5b3aff34fe4479c37f30f9ea280b7eb4af\nReviewed-on: https://review.monogon.dev/c/monogon/+/4168\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0cbf51a530ff05eaacadb12c4cc977c24a0f0fb0",
      "tree": "fd14354e8ba64d68489f1f4b0116696baf5ee57f",
      "parents": [
        "4cfff958acf023e190191a2842103897201c4dad"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 23 10:21:17 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 01 06:49:22 2025 +0000"
      },
      "message": "m/n/k/hyperkube: avoid unnecessary rebuilds\n\nPreviously, hyperkube was rebuilt each time a commit was made in the\nmonorepo. This change stops this by reading the variables from a\nfiltered stamp file instead. Now, only this filtered file is rebuilt\neach time, which is very fast compared to linking hyperkube.\n\nPreviously, volatile status variables were used for gitTreeState and\nbuildDate. But the volatile status is bad for reproducibility, as it\nmakes Bazel intentionally use stale caches.  Instead, these variables\nare now only defined in release builds, and left unstamped during\ndevelopment. These variables are available at the /version endpoint of\nthe apiserver, so there may be some utility in defining them for release\nbuilds, but they are not needed during development.\n\nThe buildDate is now taken from the commit date instead of\nSOURCE_DATE_EPOCH, which simplifies the build process as we don\u0027t need\nto define that variable anymore.\n\nPreviously, KUBERNETES_gitCommit was referenced but not defined by the\nstatus script. It is now defined as the monorepo commit, which is more\nuseful than leaving it blank.\n\nChange-Id: I6228888507e400ca1f53167ee9d4f132f5711a45\nReviewed-on: https://review.monogon.dev/c/monogon/+/4167\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "e269ebf50c81807a8bac8b274590c6441bb84ca9",
      "tree": "f68b09d5f9c7d694fe1798b5710407739075bc0c",
      "parents": [
        "b03d9ff5795fc23bf436089ce40ece0d846d0610"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 23 09:52:49 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 01 06:49:22 2025 +0000"
      },
      "message": "m/node/core/abloader: avoid unnecessary rebuilds\n\nPreviously, the abloader was rebuilt each time the stable status file\nchanged, even though the abloader contains no stamped info.\n\nChange-Id: I8b36357082e3be8b241759e30b0d0d8be4613379\nReviewed-on: https://review.monogon.dev/c/monogon/+/4165\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "778cc33e311ab1578b3e1447c10b7d40612a774e",
      "tree": "78e166c6522ab612967f0cf9cde7d4318808873e",
      "parents": [
        "1b6cd6feb2ea0ee9940e59ec787803dae0071b22"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 16:31:40 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "m/n/c/abloader: fix duplicate build\n\nPreviously, the abloader was built twice with different\n@io_bazel_rules_go//go/config:static setting.\n\nChange-Id: I41ebac22613b895fe85f14367bdf0f31c817cafe\nReviewed-on: https://review.monogon.dev/c/monogon/+/4163\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0fd36f458729a67e4daf68a430ce3a79428a05e9",
      "tree": "dae4bd858448b6a72daeab0cbeb177da802aff11",
      "parents": [
        "7c38e7845bad04db14031741e879e887e2f571b5"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 10:26:03 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 13:11:33 2025 +0000"
      },
      "message": "treewide: enable pure Go by default\n\nPure can be safely enabled by default. For those targets which need cgo,\nwe can set `pure \u003d \"off\"` on the go_binary or go_test.\n\nThis simplifies transitions, and makes the files/files_cc distinction\nobsolete.\n\nChange-Id: Ic1a985e7d347a7222f55735c1ee2016e8a7e1c65\nReviewed-on: https://review.monogon.dev/c/monogon/+/4158\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "7c38e7845bad04db14031741e879e887e2f571b5",
      "tree": "8481308f7280a6153de818497d11f0c9614baeeb",
      "parents": [
        "dc97912eb162144d7bd92509ad8f064a8cf98ecb"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 09:23:37 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 13:11:33 2025 +0000"
      },
      "message": "treewide: replace go_binary_with_tag\n\nInstead of using go_binary_with_tag, we can write a go_binary rule which\nembeds the library. Then we can easily change all the Go configs, not\njust tags.\n\nBy default, Gazelle generates the libraries for a go_binary with private\nvisibility, so we need to override it to pulic. The go_binary_with_tag\nrule had the additional feature of combining the specified tags with the\nincoming ones (osusergo, netgo); instead I added those manually.\n\nChange-Id: I23965176f87e3a0bbd18ba5a72f190e4f9047363\nReviewed-on: https://review.monogon.dev/c/monogon/+/4157\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "62cecde6415032da48f05a178c8e9e9721dab9c2",
      "tree": "47617bd0bcaaf31a45eb085d946ad24db34b4f48",
      "parents": [
        "82e8a57d0d715b9e0479000b18f50aafc63ac58a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 16 15:24:04 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for updates\n\nThis switches the node update implementation to the new OS image format\nbased on OCI artifacts. Updates are now fetched from an OCI registry.\n\nTo update existing clusters, build //metropolis/node:bundle in the new\nversion, then run the update command of the old version of metroctl with\nthis bundle. Once a node is updated, it only accepts updates in the\nnew format. It is possible to rollback if needed by building\n//metropolis/node:oci_image in the old version and using the new version\nof metroctl.\n\nThe node bundle target is no longer referenced anywhere, and will be\nremoved soon.\n\nChange-Id: I00ac6d0d88e379259cea52c8a106204c5eb73fe7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4123\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "5fdca5678df575870c5c2def673669e894b5158e",
      "tree": "c4a02abab427e96b568ff5b22f8c77c0882c33ea",
      "parents": [
        "9d2f3c681fee76b54dc202da6ca140151f588be8"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:33:29 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for install\n\nThis switches the USB and SSH installation methods to the new OS image\nformat based on OCI artifacts.\n\nWhen stored on disk, the new format consists of a directory containing\nan OCI layout, instead of a single file. This means that all steps which\ncopy or upload an image now need to handle a tree of files.\n\nChange-Id: I526d32f5c50bd74f513f785118768a56b2655fa0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4090\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c1b6df499c0e03d8d65b6570c2dcddb908752f7a",
      "tree": "17d045c8f96dd2d77aef785653ac1f937142c714",
      "parents": [
        "e4c48544e908e78efdb00c8c507c251be26c4ab9"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 20 08:52:18 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/fat32: adopt structfs\n\nChange the external interface of the FAT32 writer to take a\nstructfs.Tree instead of a FAT32-specific data structure. Producers of\nfile system data are no longer specific to FAT32.\n\nWith these changes, the blkio package becomes obsolete. The\nLazyFileReader did not actually work as intended when used with\nosbase/fat32, because fat32 copies data with io.CopyN and thus stops\nreading before reaching EOF, so the LazyFileReader is never closed. The\nnew Blob interface requires the consumer to explicitly Open and Close.\n\nChange-Id: I9a71a5f0bddf36ac38c656659e6dcfe520b88fb0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4037\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ad4d9545ac74b43c3f442627b507d45f7eec3b3f",
      "tree": "932ce4ce4788f60232222d8dc2770eaa466a9529",
      "parents": [
        "ae2f9a36c74ae1e15d5ccd472dd2417fca86aaf4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 24 20:20:13 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 25 13:01:09 2025 +0000"
      },
      "message": "osbase/build/fsspec: change order of arguments\n\nWe should always use the key as target path, as that\u0027s unique.\n\nChange-Id: I09085448efda67cb6d1c0470fa15e4282b38e0d5\nReviewed-on: https://review.monogon.dev/c/monogon/+/4035\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b00f7f9a97eae55ae6df80bbdea46815498898fa",
      "tree": "46517933cf9c0d9fc18ccf085dcf335d664e2b94",
      "parents": [
        "1947e9b1480d9a3e90fe8b12bc897fd5cd2abce7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 06 17:27:22 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 18 14:02:05 2025 +0000"
      },
      "message": "m/node/kubernetes: implement storage resizing\n\nThis implements persistent volume resizing in the storage provisioner.\nThe logic is based on https://github.com/kubernetes-csi/external-resizer\n\nThe mutation caches are an optimization to prevent unnecessary repeated\nprocessing, because they make the controller remember changes that it\nhas made itself, when the watch events for those changes have not\narrived yet.\n\nThe controller supports the RecoverVolumeExpansionFailure feature, which\nallows reducing the requested size when the previous resize fails due to\ninsufficient space. When resize fails, it is retried with backoff.\n\nChange-Id: I0f3d40c1a592b30d25739f5d20b529dfe25dfbe1\nReviewed-on: https://review.monogon.dev/c/monogon/+/4008\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1947e9b1480d9a3e90fe8b12bc897fd5cd2abce7",
      "tree": "9c3586cc1e87b87b48d489ac77082b91199c699e",
      "parents": [
        "551a7373e295b30eb7453d51d71b21a5f8bac108"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jan 16 16:45:03 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 18 14:02:05 2025 +0000"
      },
      "message": "m/n/kubernetes: fix storage provisioner rate limiting\n\nForget() resets the rate limiter, so it should only be called when\nprocessing has suceeded.\n\nFor example, provisioning can fail for a block volume if there is not\nenough disk space for the requested size. Previously, this caused the\nlog to be quickly  spammed with \"Failed processing item\" messages, all\nwith \"numrequeues: 0\". With the fix, the retries are properly backed\noff, with the requeue counter incrementing.\n\nChange-Id: I8a31fa03fadb202205967e045d4e30f04567d9d1\nReviewed-on: https://review.monogon.dev/c/monogon/+/4007\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "17ad63fa0b09d3dfe461ac237cd5db5eaeefc2ed",
      "tree": "aa133f4b89c91044047c902dad5b752696098b14",
      "parents": [
        "12e4b549f88c91e5eccb2abe1631793c879a66c6"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Feb 27 14:43:56 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Feb 27 17:33:51 2025 +0000"
      },
      "message": "m/n/kubernetes/networkpolicy: add Cyclonus test suite\n\nThis adds a test for the network policy controller, based on the\nCyclonus test suite. Running Cyclonus on a real cluster takes multiple\nhours, as there are over 200 test cases, each of which takes around 1\nminute. The test implemented here uses a fake Kubernetes API and pods,\nwhich allows running all tests in around 15 seconds.\n\nIPv6 is partially implemented but disabled. The tests pass, but each\ntest takes around 2 seconds, because some ICMPv6 replies for blocked TCP\nconnections seem to get lost somewhere and are only processed when the\nTCP SYN is resent one second later.\n\nChange-Id: Id77f2dd4d884b6d156e238e07e88c222e3bbe9a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3905\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12e4b549f88c91e5eccb2abe1631793c879a66c6",
      "tree": "9bf724f8068149af2711a1132d569c006d507ecd",
      "parents": [
        "ec03df42d643603d0a8d92b0db1cc4a4a865651e"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 19 16:29:30 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Feb 27 17:23:16 2025 +0000"
      },
      "message": "gomod: update k8s-nft-npc\n\nThis includes all of Jan\u0027s fixes to get the test suite to pass.\n\nChange-Id: Ie172325b87e7e4f4859c3576ce8577d48497027f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3924\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9bd9bd45d58fd615c0c240226e6fb74e406b0d17",
      "tree": "18961f688d41f4098e34231c201f2e96ac35d864",
      "parents": [
        "ffd8c7bb37da9b72eb66a0555e319ca2290ea761"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Feb 14 17:08:52 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 27 07:43:17 2025 +0000"
      },
      "message": "treewide: replace deprecated grpc.Dial with grpc.NewClient\n\nChange-Id: I925912ca1ee01d547fd9c1813eb083a2cd9a590a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3858\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12cab56e96b6591f4756bdca96e26260431fbcda",
      "tree": "bdba0d9a4bc52abe4fb2dd8bf287055f844725a1",
      "parents": [
        "e294916b24bb6d0035484d215421ceb03c6598b7"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 17:01:02 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 26 14:11:21 2025 +0000"
      },
      "message": "m/n/c/l/crypt: open blockdevs read-only for discovery\n\nUse the new blockdev capabilities to only open the block devices in\nread-only mode for partition discovery. This allows us to disable writes\nto mounted partitions in Linux 6.12 and not get a spurious warning for\nevery boot. It\u0027s also generally good practice as we don\u0027t want to write\nat that stage anyways.\n\nChange-Id: If8dd9b49ae593aac6f0a25d439baa0b7d60d7ffe\nReviewed-on: https://review.monogon.dev/c/monogon/+/3986\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bed76d97e58becd2aa314a6132c9968efabc16b5",
      "tree": "d9e862bcddf77a913e8bdd3bb361f2fbcd949be5",
      "parents": [
        "8eb0244ed3653b6bcb80a29acb4f9e6b66a272f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 18 03:04:14 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 21:36:11 2025 +0000"
      },
      "message": "osbase/build: move efi.bzl, split and move def.bzl to their corresponding action\n\nThis is a small reorganization to make the osbase/build less dependent on each other.\n\nChange-Id: I8c12f04f3bdc98128c5424f142f452c2e094f2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3903\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2c3956750bb75b0d18ddd52565f998492b0f83f4",
      "tree": "e74900cf54d9476463bde2bac7a8c3e040ff18a6",
      "parents": [
        "d842aaf9b5b45c6a0851542e8c9d21032f99a249"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 18 12:26:41 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 16:04:13 2025 +0000"
      },
      "message": "m/n/c/network: drop random snat mapping workaround\n\nLinux has since fixed the issue that if two connections get assigned the\nsame mapped port/address combo one of them drops the packet. Instead\nthey just \"requeue\" it so it gets a new non-conflicting mapping.\n\nThis allows us the drop the workaround that mappings need to be\ngenerated on a per-connection basis instead of just a per-port basis,\nthis makes Linux behave more like an endpoint-independent NAT which is\nbetter for anything trying to establish P2P connections and also a bit\neasier to debug as source ports get preserved if possible.\n\nChange-Id: Ibfaf63746a269ec6bf0444e8c7dddb3a51b07900\nReviewed-on: https://review.monogon.dev/c/monogon/+/3907\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "16cb15ab5aa2fc0193a1534e65ba2e527e3e8f56",
      "tree": "0d04d148f5127884b12f73b9bc6f83804c65d4cd",
      "parents": [
        "7b1e4c1e89ba5507dd029984a29739b3d43f6846"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 24 18:47:48 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 14:23:22 2025 +0000"
      },
      "message": "treewide: explicity load built-in rules\n\nIn Bazel 9 all autoloaded rules will be disabled. This prepares us for\nthat.\n\nChange-Id: Ibaa4fa2e6b7095922a5699d2d5f3ae6c2cba3552\nReviewed-on: https://review.monogon.dev/c/monogon/+/3939\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "24bf6fdd43f3abb5a96d3081753fbdcc6bd3c1de",
      "tree": "f1d31a396adfe2489659ac0743a3e173d44c2a4c",
      "parents": [
        "632049b3e6ffda1039ef569ec2c234a7eadceae4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 12 04:48:24 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 17 13:53:17 2025 +0000"
      },
      "message": "osbase/build: replace label_keyed_string_dict with string_keyed_label_dict\n\nBefore bazel 7.4 the string_keyed_label_dict attribute type wasn\u0027t available. fsspec_core_impl was using a label_keyed_string_dict which is structurally wrong but there was no alternative for it. This replaces that usage.\n\nChange-Id: I36c02c84e6aa2557cd2beb09c07d3ceca501553d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3853\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "52700ae56c5d541e711fbd5f27373b3dc200f8dc",
      "tree": "ed5e75883fc44d14f7824b0a5ed40a6ab650923e",
      "parents": [
        "e8beaed8dcde2c198e91addb0baa884079363581"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 15:07:08 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 15:05:46 2025 +0000"
      },
      "message": "m/n/k8s: add nftables network policy controller\n\nThis integrates my K8s network policy controller. In its current form it\ndoes not have many guarantees as the custom CNI plugin is not yet in\nthere but it mostly works. Also there is still a DNS hole as host-local\nservices are not properly policed yet.\n\nIt has a basic smoke test using the connectivity testing helper as well\nas some metrics to make sure it is integrated properly and to be able to\nmonitor its performance.\n\nChange-Id: Ia2f54b9975361270678ce742ae5e32df25e515c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/3740\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "e8beaed8dcde2c198e91addb0baa884079363581",
      "tree": "8470b2dfe6a8017729083a4bb119c1d8f0b514d9",
      "parents": [
        "08fd1cb799ef2629a2da846584cd42fe2d6ecb35"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 05 22:03:50 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 13:39:37 2025 +0000"
      },
      "message": "m/n/kubernetes: add metricsprovider\n\nKubernetes has a metrics provider interface, add an adapter to be able\nto get these into our Prometheus registry. This code exists in a similar\nform inside K8s but against their custom metrics architecture, not plain\nPrometheus.\n\nAs these metrics are shared across all workqueues we follow K8s in\nimplementing this with a singleton/global. It\u0027s not the prettiest, but\notherwise we may get issues with Prometheus and duplicate metrics.\n\nChange-Id: I0b6d608d14793e44859166a5a59d446c8f662a25\nReviewed-on: https://review.monogon.dev/c/monogon/+/3829\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5ffa636e48f42aef08bd8d186db2213fc8d0d665",
      "tree": "6c40f21e3e1c52567734de5aa574b92c5ba10e20",
      "parents": [
        "de57e6f273b05ebf9f58bf4a4ca9734038bcad9f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 19:20:06 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 10 16:11:22 2025 +0000"
      },
      "message": "treewide: Fix RPC_REQUEST_STANDARD_NAME and RPC_RESPONSE_STANDARD_NAME\n\nChange-Id: I190ade92c04313961edd4787196568216d028ba8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3818\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "6d33a4342a16200d628f30ff91b169927fc2867a",
      "tree": "e65ad23cb6d0b795420b5ec625a757784d4c3e3b",
      "parents": [
        "7887f758de8f9106a484ca59d9734304aa919e36"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 14:34:25 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 17:03:43 2025 +0000"
      },
      "message": "treewide: add license header and enable haslicense linter\n\nChange-Id: I873a8d4082d75e8f813d8a726a41187eea7a065e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3825\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7887f758de8f9106a484ca59d9734304aa919e36",
      "tree": "f3e85143bc4b4a064e44534327a1f656c83b6340",
      "parents": [
        "e6cc22700801d284386fdf7345dd85f7e522a6cb"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 03:06:56 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 16:46:49 2025 +0000"
      },
      "message": "third_party: move go patches into their own folder\n\nChange-Id: I7e2f2790e233aaf13cfd6ed2ffcf5544461a4f39\nReviewed-on: https://review.monogon.dev/c/monogon/+/3822\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "99e15117227f5663d390536118c02fbcc0e71834",
      "tree": "00f534ca904605a66e6ccfa988bfa6a4744db367",
      "parents": [
        "7c0bd0b18e0c857a8af930607b61bde0b68fb55f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 17:38:16 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 14:04:05 2025 +0000"
      },
      "message": "treewide: run gofmt -s and enable linter\n\nChange-Id: I90b8ef48c955dccfddc5bbc0a57205b7da844b60\nReviewed-on: https://review.monogon.dev/c/monogon/+/3828\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f525fa74802d2ea61577b188476bea2d54f816d7",
      "tree": "9603a1111df362b72286e12dc6a0f8f685a349bf",
      "parents": [
        "b51ecdff88528652297cdaeefa9fd94e7d63f093"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:31:42 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 15:45:47 2025 +0000"
      },
      "message": "treewide: Unmark SERVICE_SUFFIX rule exception as todo\n\nWe can\u0027t rename the services as it would be a breaking change.\n\nChange-Id: Ib6db1692e80ddff74819df62824b0d1311f11d7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3817\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b51ecdff88528652297cdaeefa9fd94e7d63f093",
      "tree": "14948d20ad9c3057fcc3cf58aaefca8e794bc186",
      "parents": [
        "0dca6c91ea9b8a14278aeb3a1a8ba6b512479862"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 22 21:59:59 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 15:45:47 2025 +0000"
      },
      "message": "treewide: Unmark missed ENUM_ZERO_VALUE_SUFFIX rule exception as todo\n\nChange-Id: If621eaedf1a1d816a528494efb3e46668c5608e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3816\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0dca6c91ea9b8a14278aeb3a1a8ba6b512479862",
      "tree": "d3a4605fa9cefa9dccc79fe3df71d1e4335381a8",
      "parents": [
        "b6ed72eabf092066a837fea4b68846376bd70e8a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 15:04:13 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Feb 05 14:55:23 2025 +0000"
      },
      "message": "metropolis: use interface groups\n\nThis adds interface groups to all K8s pod interfaces via a CNI plugin\npatch and corresponding configuration. It also adds an interface group\nto the clusternet interface. Using these new interface groups the\nnftables rules for NAT can be simplified.\n\nThese will also be used by the network policy plugin later.\n\nChange-Id: I4638a4349ccb12b8724ad28ae34bb61cac4b4ece\nReviewed-on: https://review.monogon.dev/c/monogon/+/3814\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "3c19522f224526e8418bd606f63a037a4bdc9466",
      "tree": "cd958c30e93628ef7f77d32437f385c97c494417",
      "parents": [
        "b69a71ca61b99fc68e83d5735eb449f638ef8b1e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 30 15:12:12 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 03 14:11:04 2025 +0000"
      },
      "message": "n/c/update/e2e/testos: ignore unnamed-macro lint\n\nThis also removes the global exclude for the unnamed-macro linter rule\n\nChange-Id: I416a73013abc38c5390348ffdf95984f769fd9c0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3819\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b69a71ca61b99fc68e83d5735eb449f638ef8b1e",
      "tree": "69aa2c20e8002355ca7657523b617923b2243e39",
      "parents": [
        "8f1254d1919c7cda42c611c9e1d83cf9a2ef8034"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 14:12:46 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 03 14:05:23 2025 +0000"
      },
      "message": "o/t/ktest: switch to proper rule\n\nThis was previously implemented as a macro, lacking proper transitions.\nReimplement it as a proper test rule.\n\nChange-Id: I237a2fcc29ea6dfbb294ce6313c9ff457def12b8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3722\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f4d38759600c2f308c4d4c79cfd9b4215d56b34a",
      "tree": "ea31800f2baa3bd6a6db28ca6d106abdf103058c",
      "parents": [
        "3eb7d033642ebaaddccde287d5ad3c8c59f7a576"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 22 21:59:59 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:44:58 2025 +0000"
      },
      "message": "treewide: Unmark ENUM_ZERO_VALUE_SUFFIX rule exception as todo\n\nWe don\u0027t really have a policy for these, they are chosen arbitrarily.\n\nChange-Id: I705ad309c2a36d794665de2482441858850a1893\nReviewed-on: https://review.monogon.dev/c/monogon/+/3805\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d634975c7d113b8ec093dae261288b10080283e0",
      "tree": "a71b12031fb83ca71af32de568135b2e39746bfa",
      "parents": [
        "7dac92b4445e15f0467a0a6e330c40faabae23fe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 06:43:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 12:30:59 2025 +0000"
      },
      "message": "treewide: bump rules_rust to 0.56.0\n\nChange-Id: I7e1ee6f6d10d1ffe0b8e94f81b4a901f49bf818d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3765\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7dac92b4445e15f0467a0a6e330c40faabae23fe",
      "tree": "7b1e9290437ae2c023cd0c1aa5015e4c69a75f4d",
      "parents": [
        "83da4226001e9ce1cc71e687418ab61fdff6cfc9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:51:04 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 27 17:17:28 2025 +0000"
      },
      "message": "metropolis/node/core: migrate main to osbase/bringup\n\nThis migrates our existing startup code to use our bringup library\n\nChange-Id: Ic78c80bc4631fa2a67cd6a3db1ea19642b20aea9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3706\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "1cd14f55663e33a6b6c42864395a8543fb325581",
      "tree": "194853ce3e2efcfd991c7f6f6b6c54a93d6b5a46",
      "parents": [
        "a857936232478afe0329b2d66ea8a794ca6f3667"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 11:43:13 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 16:44:11 2025 +0000"
      },
      "message": "m/n/core/network: add netlink error callback\n\nAdd a callback which logs netlink subscription errors. This may be\nuseful for debugging.\n\nChange-Id: I35c64ef68bfd098139f94e7d952174ff81acaac3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3810\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "a857936232478afe0329b2d66ea8a794ca6f3667",
      "tree": "7f9308b1be0eef9de07c25ae85deb6aeb55b1576",
      "parents": [
        "d1683d27351bb06f1e896ce29512531b8e67e57c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 11:34:26 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 16:44:11 2025 +0000"
      },
      "message": "m/n/core/network: fix panic\n\nIf the channel is closed, then u.Link is nil, and calling .Attrs() on it\ncauses a nil pointer dereference panic.\n\nChange-Id: I2d1b7b4e38957e6a55ef663876ac571e2dd6d3c1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3809\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb",
      "tree": "540bc92832ea12cc8427c0bcd785498dfcc30119",
      "parents": [
        "f408e8123a3919a27d51983973a1bd41eaac1162"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 13 14:44:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:14:58 2025 +0000"
      },
      "message": "treewide: Fix ENUM_VALUE_PREFIX rule exception\n\nChange-Id: Ibc2fd66711f6aa347e88e2379c12db1898373700\nReviewed-on: https://review.monogon.dev/c/monogon/+/3804\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "20c2ff08e3ec38d2388c80b580a129fc8a851add",
      "tree": "894b412c6ed8422b08401a17ab15050863734fdd",
      "parents": [
        "2f9f624dee572823d0ead529c1507bb3605d9ae5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:34:38 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: Fix FIELD_LOWER_SNAKE_CASE rule exception\n\nChange-Id: If59edf4c5483416c9779c382a5aafa58c7f73385\nReviewed-on: https://review.monogon.dev/c/monogon/+/3802\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2f9f624dee572823d0ead529c1507bb3605d9ae5",
      "tree": "29977f8a39336929d45189a119bc7e4bf82c4bf5",
      "parents": [
        "3b62407486d2c1fe7cd24a5f38e86fb19d1e2fa3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:25:54 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: Fix PACKAGE_DIRECTORY_MATCH rule exception\n\nChange-Id: I8c4061f8d147a4708167b0674abfa23784a7f40d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3801\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b62407486d2c1fe7cd24a5f38e86fb19d1e2fa3",
      "tree": "bfe8bbebd74234a135aa48bb72d071097120c487",
      "parents": [
        "15c46ccb52bc2544d35eee9a80b3c2fb5c0756e2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 07:16:35 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: add buf_proto_lint_test to all proto_library targets\n\nChange-Id: Iaf6dc22fdbef6fcfd0bedff755bcdb06b56a6631\nReviewed-on: https://review.monogon.dev/c/monogon/+/3800\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5b83c5278b9ecd4f04e75ac0ddb7fcb0cfb0f20a",
      "tree": "364e0339c662ee9fb005d8072d58c8246a30a40b",
      "parents": [
        "4beaf4fac641e77fd08b7b9a3139f7d27fddac72"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 14 16:12:38 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 16 12:38:32 2025 +0000"
      },
      "message": "m/n/c/curator: fix panic caused by race\n\nThe starting/stopping of the respective follower/leader implementations\nis not synchronized with the state event source. Thus it can happen that\nrequests get routed to an improper implementation. The follower\ncorrectly rejected requests when the current state indicated that it was\na leader, but panic\u0027ed if it was neither which is a valid state.\n\nReject requests when it is not a follower, not just if it is a leader.\n\nChange-Id: I5cee85a44cb8a1ce1f4f28c49930abd1d14ac4e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3782\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "896b1388fb26096ccaf60ff99ac8da2a9b07dab3",
      "tree": "1f70faa162e8af73f4d08d75dceee15010f849c5",
      "parents": [
        "25e0d8f5bdcae3b03b1bc43cad49b4ed0b4e567e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jan 15 13:54:26 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jan 16 08:56:10 2025 +0000"
      },
      "message": "m/n/kubernetes: switch to typed workqueue\n\nThe functions and types without \"Typed\" are deprecated, and should be\nreplaced by the corresponding ones with \"Typed\".\n\nChange-Id: I41c378df953ae4964d1247e470ccf38f13ea1f47\nReviewed-on: https://review.monogon.dev/c/monogon/+/3784\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "25e0d8f5bdcae3b03b1bc43cad49b4ed0b4e567e",
      "tree": "d82d60b706433dafabc494619032e35044aa3151",
      "parents": [
        "bdd0d25cda74c662cef174c032057cb2aba29e8a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 02 23:46:24 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 14 16:15:53 2025 +0000"
      },
      "message": "treewide: remove usage of global tags between build configs\n\nChange-Id: Ie7c4714d30f8c3342a97451d58e14cfb43087586\nReviewed-on: https://review.monogon.dev/c/monogon/+/3776\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "156248b949f3da7c8d0f4f46cb97ac7606464952",
      "tree": "ff52faf242a29f1916edad64bca6282f8030ee66",
      "parents": [
        "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 00:27:45 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 20:13:30 2025 +0000"
      },
      "message": "treewide: format repo with buildifier\n\nChange-Id: Ia7aebeb7bba5b119c9157d1ad805cc477bcbb68a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3774\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3a171d123fff540c8c9d646152a5d5ed9ef873de",
      "tree": "62fe245a0182c3ba931d8c33278f2dd89c35e77b",
      "parents": [
        "0996ea85ca6200e1729941d316f7891835871938"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 23:51:23 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 21:19:31 2025 +0000"
      },
      "message": "treewide: add race-detector config\n\nThis also disables all `pure \u003d \"on\"` attributes as they propagate too\nfar and break the race detector because rules_go contradicts itself by\nforcing pure go even when CGO is required by the race detector. We build\neverything for our node images static and pure via a transition anyway,\nso this is actually fine.\n\nChange-Id: I5cd3879fba4258caa94df4dbea5c6472867b7e34\nReviewed-on: https://review.monogon.dev/c/monogon/+/3725\nTested-by: Jenkins CI\nReviewed-by: Hendrik Hofstadt \u003chendrik@monogon.tech\u003e\n"
    },
    {
      "commit": "16ebf144db82c8a57869456d159352e5aa2f4392",
      "tree": "b26ca61256f9773e3680291876032729d81a29d1",
      "parents": [
        "eda1e1228ee6174e266cc0b4a30310b56a292558"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 09 20:54:52 2025 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 09 20:53:07 2025 +0000"
      },
      "message": "metropolis/node/core: fix typo\n\nChange-Id: I07b362e411d22ddd99eecbb1b19b5a5e604c6d34\nReviewed-on: https://review.monogon.dev/c/monogon/+/3769\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "deaf0c044579516df1fb510c106e8e7881028701",
      "tree": "d9207b12566cbb64234994e16a0f4a1923b0e4c7",
      "parents": [
        "681d5157b955f6b942c620837d1a9e90bdefc983"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 00:17:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 21:08:46 2025 +0000"
      },
      "message": "metropolis/node/core: fix formatting call to Info instead of Infof\n\nChange-Id: I1188104834e3620907b1ae3df2551d5fffcae713\nReviewed-on: https://review.monogon.dev/c/monogon/+/3752\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "681d5157b955f6b942c620837d1a9e90bdefc983",
      "tree": "254905b461e1545d960fafbdad1ec2c250fc383f",
      "parents": [
        "2edb96aeded0f67904ac9630088454fb12a62317"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 00:19:33 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 20:54:21 2025 +0000"
      },
      "message": "treewide: clean up test static binary targets\n\nThis removes some intermediate targets only used for transitions by\nconsolidating them into a single one.\n\nChange-Id: I46dcbcb731038edd2b67259de1811018f5ba43da\nReviewed-on: https://review.monogon.dev/c/monogon/+/3753\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "153c9c1d69e5c37dd96f8d43ff1e628bd548320e",
      "tree": "dc8b3d767ad46645cf2b0c3425f5a2f1e65cfcb5",
      "parents": [
        "8e19fa4edcb992d8c486b420debb6d63f8777d97"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 07 17:44:45 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jan 08 00:01:30 2025 +0000"
      },
      "message": "treewide: unfork netlink\n\nWe were using our own fork because of the psample change whose\nupstreaming effort has stalled since Mateusz left the company. That\nnetlink base is now getting too old and we have more patches on top\nwhich all have since become irrelevant or got upstreamed.\n\nThe new version of netlink also no longer has the quirk that default\nroutes do not have a destination set, fix that in the DHCP tests and use\ngo-cmp as the raw binary values are annoying to get right and do not\nmatter. Semantic equivalence is what we\u0027re after.\n\nThus stop using our fork and instead pick up the rebased psample patches\nfrom the new upstreaming effort. This removes one more replace directive\nwhich is nice.\n\nChange-Id: I21a59c2c9a99dd3baf672a8aa2ad9332e573cba1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3750\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "8e19fa4edcb992d8c486b420debb6d63f8777d97",
      "tree": "ed19daa5f7ddf6376658e6d4e04754aeaca83a00",
      "parents": [
        "5178dd76472906d541fe08c643633499708c67de"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Nov 12 13:39:43 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 07 17:00:42 2025 +0000"
      },
      "message": "metropolis/node/core/bios_bootcode: Add legacy bootcode\n\nThis change provides a legacy bootcode that shows the user that they\nare using an invalid configuration, e.g. not use UEFI. This can be\ntested with \"qemu-system-i386 -hda bazel-bin/metropolis/node/image.img\".\n\nCloses monogon-dev/monogon#142\n\nChange-Id: I3337a70125010aec110ad75647346310cac76d37\nReviewed-on: https://review.monogon.dev/c/monogon/+/3748\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "837cb8e459b9eefabe89ab17df0b7dafb5e3d631",
      "tree": "32337d84d4f32b0c2c523e2c5bd177f4acfe4808",
      "parents": [
        "b6afed68fd1d2ee9b32d395b388d2db1338d0fa0"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 13:52:56 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Dec 23 21:59:59 2024 +0000"
      },
      "message": "treewide: update Kubernetes to 1.32\n\nRelatively easy change, one cadvisor fix is temporarily needed. The\nlegacy log dir patch needed to be rebased, that\u0027s about it.\n\nI enabled single-process OOM killing again as that was the default for\ncgroupv1 and IMO the more sane behavior.\n\nUpstrem changelog at:\nhttps://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md\n\nChange-Id: I537a6e37137d05efb6eec8635915e36fd8b37cbc\nReviewed-on: https://review.monogon.dev/c/monogon/+/3721\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3c6183f7f12ded0c563239c7eff1f1dc4a9bebec",
      "tree": "e3487e97b71fb10a310780a36c7438f4fb9af242",
      "parents": [
        "bc32bcd241a9270786a749266ce4f6a5df6d0a6e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:42:21 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 23 13:10:21 2024 +0000"
      },
      "message": "osbase/supervisor: use MustRegister for metrics registration\n\nChange-Id: I4321c626f210bea025ab27bfecf783425f1482b5\nReviewed-on: https://review.monogon.dev/c/monogon/+/3703\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bdbb9c2baa94f72bf57ad1c13a2c2a5c3ff01858",
      "tree": "97fad3e69df9ac10117a71846320dd8748caeecd",
      "parents": [
        "742fde7cd4861bb16b4f0655b84f587510c1e84b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Dec 18 15:14:02 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "m/node/core/time: use CommandContext\n\nChange-Id: Ie98b949facf3d26c819bdf56329f5837b8e3dac7\nReviewed-on: https://review.monogon.dev/c/monogon/+/3712\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "91bcf46639db7008c7290e6f27136cd122fd1b3c",
      "tree": "f0edbfddd7a96ce00edb0db0bb1cf294536d9f1a",
      "parents": [
        "007d66e6b32db8080d37738b2986871729a48e03"
      ],
      "author": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Sun Dec 15 16:57:05 2024 +0100"
      },
      "committer": {
        "name": "Timon Stampfli",
        "email": "timon@timon.ch",
        "time": "Fri Dec 20 15:53:04 2024 +0000"
      },
      "message": "m/node: remove non-definition dependencies\n\nThis enables usage from arbitrary platforms without including lots of\ndependencies that aren\u0027t related to functionality.\n\nChange-Id: I33e16b5396dc7216b676b294b8c1752caf3551b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3697\nTested-by: Jenkins CI\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    }
  ],
  "next": "b62b8e04eb6f2f6ebc54ecc397ded788a924f279"
}
