)]}'
{
  "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": "01491a7c7ae539a90756fa3a210cf08cbe450856",
      "tree": "2709a786e75af66e06e7aa99bf9decc0e3656f8f",
      "parents": [
        "1f4590b58948d359805e1e519d3ea68ad5a57d47"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 21:49:11 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 31 18:12:39 2025 +0000"
      },
      "message": "osbase/logtree: add WithStartPosition option\n\nTo allow users to not always request all messages,\nwe introduce another option to the logtree.LogReader\nwhich allows for starting at a specific global log id.\nThis, for example, makes implementing scrollback easier.\n\nChange-Id: I1773288f670f476706d94baf3f052fe1e5da9eb0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4452\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "31b15ab02038b60d714b2a9c9563309c8bdb6cb6",
      "tree": "4aca62f631adb43e974d7d34f6bcfcecde168b12",
      "parents": [
        "1a7e1fe7c4059d79a4f5452d3ac9821cdaf22245"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 11:56:06 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 14:52:26 2025 +0000"
      },
      "message": "osbase/oci/osimage: fix possible nil dereference\n\nBecause a double pointer was passed to json.Unmarshal, it could set\nconfig to nil when the json is \"null\", resulting in a nil pointer\ndereference.\n\nChange-Id: I93077e1cafd8c4e3d0a47d9a4f2321e2ea005d58\nReviewed-on: https://review.monogon.dev/c/monogon/+/4487\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": "954c4b349725bb7fe8852dd9b85ddcfe3d0f3368",
      "tree": "015402ba225b5e58a72ec4b7c3f8cbbd038cbf71",
      "parents": [
        "2963b681d81e259fdea28db466c90e204be00e4b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Fri Jul 18 09:46:25 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 30 14:52:26 2025 +0000"
      },
      "message": "osbase/build/mkoci/index: add package\n\nThis adds the mkoci/index package, which contains a Bazel rule for\nbuilding a multi-platform OCI index for an image.\n\nrules_oci also has an image index rule, but it is not suitable for us.\nThat rule tries to read the platform from the container image config,\nmeaning it only works for container images. The rule here works for\narbitrary OCI artifact types. To make this work, the rule which\ngenerates the image must put the platform into the descriptor in\nindex.json.\n\nBecause the index is not for any specific platform, there is a new \"all\"\nplatform where the index is generated.\n\nChange-Id: I4ab1b87609d10b77c2f7fc42ee427f87d9f5ddc2\nReviewed-on: https://review.monogon.dev/c/monogon/+/4476\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\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": "1354c78f69335cbd809b0237bab1aa93e69419a1",
      "tree": "5b85624b5edddc867e87ed9b79fea40ad8048d5c",
      "parents": [
        "e4264a30deb7c1a9da66be6d6c1083fd8217f171"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 19:01:08 2025 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 19:10:33 2025 +0000"
      },
      "message": "Revert \"osbase/logtree: add WithBacklogOrder\"\n\nThis reverts commit 3553b240af181f5eba87ffd2af9323fa054e1967.\n\nReason for revert: We don\u0027t have any consumer for this API as WithStartPosition will be sufficient.\n\nChange-Id: I6553a99d16b6f11160df31074f44431b5a6592ed\nReviewed-on: https://review.monogon.dev/c/monogon/+/4464\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "346e2455c7eb2c2229dc3988079b96a1fc08f40f",
      "tree": "67b5eb97e9a6e792a432124d6c627a6bbfe2fc28",
      "parents": [
        "1b5164db6da76b58a329c44f700873ba4793ecf6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 16 16:02:07 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 23 13:32:34 2025 +0000"
      },
      "message": "osbase/bringup: remove tty0 from default consoles\n\nThis default was copied from the cloud/agent and intereferes with\ntconsole in metropolis. It\u0027s not possible to stop the\nforwarder from the root runnable and since the code imports\nall kernel cmdline console arguments, we can safely remove this default listener.\n\nChange-Id: I5d38d2fde8499ae2ee9057cc21b6b2a1244a0e65\nReviewed-on: https://review.monogon.dev/c/monogon/+/4437\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ba82bc6039f694ef5a9c891d50329822985233c9",
      "tree": "5e3352a7eac99feb58ab179c0fbabb3f333158b9",
      "parents": [
        "3553b240af181f5eba87ffd2af9323fa054e1967"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jul 22 20:17:05 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jul 23 10:26:40 2025 +0000"
      },
      "message": "osbase/kmod: fix module deps naming\n\nLinux for some reason converts \u0027-\u0027 to \u0027_\u0027 in module names, but not for\ndependencies. There are also instances of comma-separated dependency\nlists, normalize these as well.\n\nFail building of metadata in case dependencies do not resolve.\nPreviously we just wrote zero as dependency index which is obviously\ninvalid. With the current config and these fixes everything resolves and\nthis ensures that with any future kconfig changes we actually load\neverything correctly.\n\nChange-Id: Ifedb5c7a251ba6ddbe4cd66408b0259a72d6521d\nReviewed-on: https://review.monogon.dev/c/monogon/+/4454\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "3553b240af181f5eba87ffd2af9323fa054e1967",
      "tree": "6b6457ca8fff37cde8eca98067884bbe9e39bbbd",
      "parents": [
        "c263592f0b260d13439e7e4a566b3db3ae6ebc38"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 21 18:19:05 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 17:24:03 2025 +0000"
      },
      "message": "osbase/logtree: add WithBacklogOrder\n\nBy moving the log entry reversal to the logtree.LogReader,\nthe behavior of getEntries and scanEntries changed. This is\nfine as there are no other consumers for these functions outside of\nlogtree and the reader keeps the previous behavior, but also allows\nto skip it.\n\nChange-Id: If1fddd14d43aca64009655b978d6a05dd910eb50\nReviewed-on: https://review.monogon.dev/c/monogon/+/4447\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c263592f0b260d13439e7e4a566b3db3ae6ebc38",
      "tree": "c95dbb68e8d2d19a4dd575f9a3736b82775e2947",
      "parents": [
        "5a4037ccda447a1346c905287499bd069a408f8b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 21 18:01:23 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 17:24:03 2025 +0000"
      },
      "message": "osbase/logtree: add WithStreamBufferSize option\n\nChange-Id: I3aa2e39a2a191d8bac6812181df00f17660c99a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/4446\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "9e964888dbac4ba94a1925deb1765d478b3258ff",
      "tree": "178d087c11dc1c462a86dbeb84ab4a257450df38",
      "parents": [
        "ce0ea8fc0f9f887535e7556c1f1f47d6719efae9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 01:06:21 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 15:32:33 2025 +0000"
      },
      "message": "osbase/logtree: use constant for defaultDNQuota\n\nChange-Id: I74273a63b837b92f7147b2f694fd5324da34fbd4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4451\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ce0ea8fc0f9f887535e7556c1f1f47d6719efae9",
      "tree": "096f6732fbe2a3552472718b267a943d59f5b995",
      "parents": [
        "50093be02ea628287b98f98f1c7511a8c6d5a305"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 21 19:13:43 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 15:32:30 2025 +0000"
      },
      "message": "osbase/logtree: make Read() more readable\n\nChange-Id: Ic6b365a79f90c59d2624889f795bfc7c684d815a\nReviewed-on: https://review.monogon.dev/c/monogon/+/4449\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "50093be02ea628287b98f98f1c7511a8c6d5a305",
      "tree": "8e57b7db6a1050e036e4ff829c574a146072c579",
      "parents": [
        "8a75ccd30eb81a9e66d8fcf983c122dc21db26f7"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 21 17:39:09 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 22 15:32:30 2025 +0000"
      },
      "message": "osbase/logtree: refactor LogReadOption to use functions\n\nThis makes default values way easier\n\nChange-Id: Iddfe22da84054bd122eb7a2db63b07329a9458e0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4445\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": "7d1538f30cda018f55303fb1a76a8ddf3286990a",
      "tree": "0d9a46cc49ac41a3f85e3e87ece77a26aea235c0",
      "parents": [
        "4bd25e8621d42bdff3d9966a43be14f99f4fe752"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 17 10:08:18 2025 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 17 09:05:31 2025 +0000"
      },
      "message": "osbase/build/mkpayload: make section order reproducible\n\nIteration order of Go maps is randomized, which resulted in sections\nbeing added to the EFI file in random order. Now, the sections are\nstored in a slice instead of a map, such that they are added to the file\nin the order they are defined. This fixes a reproducibility bug.\n\nChange-Id: I2a4c775a6b16e4f8a00c6b195dd169d874213d47\nReviewed-on: https://review.monogon.dev/c/monogon/+/4441\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "4bd25e8621d42bdff3d9966a43be14f99f4fe752",
      "tree": "10e88bf5cad3546392e76b0919a3d0e432f0769e",
      "parents": [
        "7ae2559d38ac1f3765044c52b98ff5665e7317d2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jul 11 19:36:28 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 16 21:51:25 2025 +0000"
      },
      "message": "treewide: override TMPDIR for tests that use qemu\n\nWhen running QEMU with snapshot\u003don set, QEMU creates a copy of the\nprovided file in $TMPDIR. If $TMPDIR is set to /tmp, it will always\nbe overridden to /var/tmp. This creates an issue for us, as the\nbazel tests only wire up /tmp, with /var/tmp being unaccessible\nbecause of permissions. Bazel provides $TEST_TMPDIR for this\nusecase, which we resolve to an absolute path and then override\n$TMPDIR.\n\nChange-Id: I767159211d3b3db2aafd0f4fc17d6d6480974f16\nReviewed-on: https://review.monogon.dev/c/monogon/+/4422\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\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": "3871fa1003840be797fc3f49efb716ae5f4862b1",
      "tree": "22394cf2fbae2c134fc297b9e7231b640b3b9218",
      "parents": [
        "58bbc85c27d2d91276113640ba1fe6ea0f2e8b0c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jul 09 17:30:00 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 10 11:11:12 2025 +0000"
      },
      "message": "osbase/build/mkverity: make build reproducible\n\nThe verity encoder previously generated a random salt. To make the build\nreproducible, the salt is now taken from a hash of the entire input\nfile.\n\nI shortened the salt from 64 bytes to 16 bytes. This is enough for the\npurpose of the salt, which is to make hash collisions not reusable\nacross images. A potential benefit of the 64 byte salt is that it fills\na sha256 block and thus the remaining data is aligned to that block\nsize. On the other hand, with a 16 byte salt, one fewer hash block is\nneeded because the sha256 length fits in the last partially filled\nblock.\n\nThe encoder also generated a random UUID, but this did not affect\nreproducibility as we do not write the superblock. For now, I removed\nthe UUID generation as it is completely unused.\n\nNow, the build of //metropolis/node:oci_image is reproducible on my\nmachine.\n\nChange-Id: I756ca31d02e65c7d6ce7bbfd6749c835ab696f3f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4418\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": "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": "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": "6cca932dd18af0bb3e0c6dba5a71855983b3af19",
      "tree": "4c1df95b3663ccd40e44c03967d582c3732af96d",
      "parents": [
        "c3a6a05f3e140657c45abfdc9a945e2ab379d47c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 15 21:13:32 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 08 11:43:32 2025 +0000"
      },
      "message": "third_party/linux: use toolchain-bundle for linux kernel build\n\nThis contains lots of workarounds and should be migrated to a native\nbazel integration.\n\nChange-Id: Ib0a52daf3879df4d5369541475c42fa506a54328\nReviewed-on: https://review.monogon.dev/c/monogon/+/4101\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1212ea1514581ce6a7779004270c0721262594ba",
      "tree": "118a1c9b69fccae9be2b2de0a00dc65aa886fafb",
      "parents": [
        "804024979fd8c5adaece89207a0d29646d7cbbe2"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 03 07:42:43 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Jul 03 09:42:50 2025 +0000"
      },
      "message": "osbase/bootparam: make test external\n\nThe bootparam package was the only package with this edge case:\n\n1. It has both an internal and an external test.\n2. The external test depends on a separate package, which depends on the\n   package under test.\n\nThe core of rules_go has a 225 line function to handle this edge case:\nhttps://github.com/bazel-contrib/rules_go/blob/v0.55.1/go/private/rules/test.bzl#L519\n\nHowever, the edge case is not handled by the gopackagesdriver.\nAdditionally, the separate package (bootparam/ref) uses cgo, which\ncauses additional problems. This means that the Go VS Code extension\nalways reports 8 warnings in the bootparam and ref packages.\n\nInstead of fixing this edge case in gopackagesdriver, it\u0027s easier to\nmake bootparam package not have this special case by making the internal\ntest external. This removes all the warnings.\n\nChange-Id: Ia0aa4d2b62cdeaaec9983f3ecf4d229ea49358b2\nReviewed-on: https://review.monogon.dev/c/monogon/+/4387\nReviewed-by: Lorenz Brun \u003clorenz@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": "8b9bf216bd4ab085ac3443edfe70a249f30359f1",
      "tree": "727f9b7ba438590345762dd2eba84b16d08ea1c4",
      "parents": [
        "446a147ed9dd63dc68dc4d4e4a0a09b8e244621e"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:59:30 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "osbase/build/mkcpio: remove todo\n\nWe can all agree this is just normal bazel behaviour.\n\nCloses #456\n\nChange-Id: I0637261b99fd966885e958b19abd5dde1356f290\nReviewed-on: https://review.monogon.dev/c/monogon/+/4357\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "446a147ed9dd63dc68dc4d4e4a0a09b8e244621e",
      "tree": "908ef31326e73bd6456190bf21f3189aa04ac97d",
      "parents": [
        "5d3f553965576381e6ae227b44358460e232c584"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:47:42 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "osbase/fat32: remove todo\n\nWe won\u0027t write a FAT32 stub.\n\nCloses #462\n\nChange-Id: If88a809a6295ab897a0508f32e26695b87b00ad7\nReviewed-on: https://review.monogon.dev/c/monogon/+/4356\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7fd64f60c607878c60e8c9eff2f21139fe389d6e",
      "tree": "41634730b730156b62f92e00d0aa2841eb700f0b",
      "parents": [
        "8fd51cd0cb06584bdfe2e7884662276d0c7bfe9b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sun Jun 29 02:32:31 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 30 00:02:45 2025 +0000"
      },
      "message": "osbase/pki: remove SKID workaround\n\nWe are way newer than Go 1.15.\n\nCloses #476\n\nChange-Id: I876d2974598b7daadc9c99e452f57dd6b97a02cb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4351\nReviewed-by: Leopold Schabel \u003cleo@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": "e0db72ca567b5142bb6a31d745b3bf78cd8eb53a",
      "tree": "9182fda3cfa5e5f407969f66d7ca01ff5dbd5734",
      "parents": [
        "16298986aba754618473fe7658f74c8ebe28ee7e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 18 18:14:07 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "osbase/blockdev: implement copy_file_range optimization\n\nThis change enables the use of the copy_file_range syscall on Linux when\ncopying from an os.File to a blockdev.File. This speeds up building of\nsystem images, especially with a file system which supports reflinks.\n\nThe implementation is partially based on the implementation in the Go\nstandard library for copy_file_range between two os.File in\nsrc/os/zero_copy_linux.go and src/internal/poll/copy_file_range_unix.go.\nWe can\u0027t use that implementation, because it only supports using the\nfile offset for both source and destination, but we want to provide the\ndestination offset as an argument. To support this, the ReaderFromAt\ninterface is introduced.\n\nWith these changes, copy_file_range is now used when building system\nimages, for both the rootfs and files on the FAT32 boot partition. If\nthe file system supports it (e.g. XFS), reflinks will be used for the\nrootfs, which means no data is copied. For files on the FAT32 partition,\nreflinks probably can\u0027t be used, because these are only aligned to 512\nbytes but would need to be aligned to 4096 bytes on my system for\nreflinking.\n\nChange-Id: Ie42b5834e6d3f63a5cc1f347d2681d8a6bb5c006\nReviewed-on: https://review.monogon.dev/c/monogon/+/4293\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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": "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": "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": "6df40aaf96ec4bcd5567b448109ec0a73cc5b2c8",
      "tree": "d412bad375fa031b3663aefe1b3364f0547734b4",
      "parents": [
        "163525e321a41724b1e457315c5003603957b3c6"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 22 15:35:44 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 11 19:46:15 2025 +0000"
      },
      "message": "t/linux: use toolchain and platforms\n\nThis allows us to do builds for different platforms consistent with how\nBazel does them. Also uses our own LLVM toolchain instead of the\n\"ambient\" GCC. As bzImages only exist for x86, rename everything to\nImage which is the cross-platform name. For us this is fine as we use\nthe PE entry point which exists for all of these.\n\nBinary path generation is a hack as not all of the ones Linux needs are\nactually available in the rules-based toolchain and we need a special\ncalling convention to work around a bug in LLVM when compiling assembly\nwith preprocessor macros.\n\nChange-Id: I8ed8fa7c1514b9ffbfaedf235e32250e4af40aa4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4215\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "163525e321a41724b1e457315c5003603957b3c6",
      "tree": "80d85c9fe0f4904696f49bffd704063e6671de17",
      "parents": [
        "6ff6b45b266b0ef0768d5172769ba1d725b10124"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 22 15:30:14 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 11 19:46:15 2025 +0000"
      },
      "message": "o/build/mkpayload: port to llvm-objcopy\n\nGNU and LLVM objcopy have some material differences in how they work.\nLLVM is able to automatically assign VMAs, but needs --set-section-flags\nfor it. Use that and drop all the explicit VMAs.\nAlso with the new toolchain cc.objcopy_excutable is not populated, so we\nneed to get the executable path using the new action-based way.\n\nCurrently contains a hack to force static on to get our custom toolchain\nfor both host and cross-builds as GNU objcopy is not compatible.\n\nChange-Id: I0a5ef1cbeb3f94326a2cef099c23c046df166bdd\nReviewed-on: https://review.monogon.dev/c/monogon/+/4214\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "043c0b4c1a89078eafe4c8faefa78ccbadf3a233",
      "tree": "9c2f5c9059b6df4730918bdedb7d617685fbf836",
      "parents": [
        "b21bdf9e01a4211cc0b8f91fc7beb113a9ed86c3"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 13 21:09:36 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 05 17:02:25 2025 +0000"
      },
      "message": "treewide: migrate to toolchain_cc\n\nThis contains the first part of the toolchain_cc migration. It leaves\nthe native host GCC, but everything that we ship is now built with\ntoolchain_cc with the exception of Linux which gets migrated later in\nthis stack.\n\nChange-Id: Icb3422857fd3baf0ff61b7edd5754517f6a73dfc\nReviewed-on: https://review.monogon.dev/c/monogon/+/4012\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": "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": "549b1d3549b05b589d697a53ce2e663f9d87f8e3",
      "tree": "d44418d8d60abfaac5bcfa23bfe7e68c62375efd",
      "parents": [
        "3cebdfd8929e83d79b1048295775786f2661153a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 09:51:04 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 12 15:20:19 2025 +0000"
      },
      "message": "osbase/build: fix unused config transition\n\nThe race and pure configs are only changed by command line flags, not by\ntransitions. This means that they should not be included in the\nignore_unused_configuration to avoid unnecessary rebuilds.\n\nI previously added the race config here, but that was because of a\nmisunderstanding: The ST-hash in the output path is not a hash of the\nconfiguration, but of the diff of the configuration against the\nbaseline. The baseline includes all the flags set on the command line.\nThis is controlled by --experimental_output_directory_naming_scheme\nwhich defaults to diff_against_dynamic_baseline.\n\nWhat this means is that changing a flag on the command line does not\nchange the hash of the diff, so it does not rebuild actions which don\u0027t\nuse the flag. But if you then try to reset the config in a transition,\nthe configs are the same but the diff hashes are not, resulting in\nunnecessary rebuilds.\n\nChange-Id: Ibfe8581e0a5c64ccd0d75a0f7c85c7d7b6d46abd\nReviewed-on: https://review.monogon.dev/c/monogon/+/4191\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": "230a31aec7de7270e5a89a81443f69f9525ad4db",
      "tree": "bf5fffb68a6cccf4d47505173e036f047979614e",
      "parents": [
        "a81e2a66cf2160d4782d06c4278cbd8a85145f6a"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 05 12:28:50 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu May 08 18:26:46 2025 +0000"
      },
      "message": "build: switch to build settings for static build\n\nThis switches the way to select static linking for C builds from a\nconstraint_setting to a build_setting. The benefit of this is that the\ntransition to static linking no longer depends on the architecture,\nbecause this setting is not part of the platform anymore.\n\nThe alternative would be to select the matching static platform based on\nthe architecture in the transition implementation. However, I did not\nfind a good way to obtain the architecture in a transition\nimplementation. You can access the platform through the settings\nparameter, but it\u0027s not clear how to extract the architecture from that.\nSomething that would work is to define an attribute for the architecture\non the rule where the transition is used, and fill this attribute using\na select() at the point where the rule is instantiated. But this\nrequires changes to all rules which use the transition, which is ugly.\n\nChange-Id: I8962e24b561b8d1724bac785cb3739cdc434d47e\nReviewed-on: https://review.monogon.dev/c/monogon/+/4172\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b03d9ff5795fc23bf436089ce40ece0d846d0610",
      "tree": "88024534a7d50454121fe7ed65f57164660eb56e",
      "parents": [
        "219c2c68a75f0de70d6cbaf5f6be55d5bf32378f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 02 15:04:03 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 30 21:40:21 2025 +0000"
      },
      "message": "treewide: move HostInterfaceMAC to a tracked duplicate var\n\nThis is required to not accidentally pull-in future qemu runfiles.\n\nChange-Id: I6098900d047f21096c0b1f6b2176d2480f8e6ab0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4054\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "219c2c68a75f0de70d6cbaf5f6be55d5bf32378f",
      "tree": "fd1040c7e82e6a4243b72ed50f5e8b7e30a88bf3",
      "parents": [
        "778cc33e311ab1578b3e1447c10b7d40612a774e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 08:14:25 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "build/toolchain/protobuf: fix duplicate protoc build\n\nWe were building way too many copies of protoc. Many of these are due to\na bug in rules_go when --incompatible_enable_proto_toolchain_resolution\nis enabled, but not all, so we should do this anyway, and then the bug\nin rules_go is no longer relevant.\n\nBefore:\nbazel cquery \"deps(//...) intersect @protobuf//:protoc\"\n@protobuf//:protoc (e5c4511)\n@protobuf//:protoc (40d0309)\n@protobuf//:protoc (3bbe29a)\n@protobuf//:protoc (070fbf5)\n@protobuf//:protoc (ee343a7)\n@protobuf//:protoc (c3e4ff6)\n\nAfter:\nbazel cquery \"deps(//... except //build/toolchain/protobuf/...) intersect @protobuf//:protoc\"\n@protobuf//:protoc (ee343a7)\n\nChange-Id: I6a826b7bc01453284982204aea808f8f2902d84c\nReviewed-on: https://review.monogon.dev/c/monogon/+/4164\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\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": "1b6cd6feb2ea0ee9940e59ec787803dae0071b22",
      "tree": "8fd33a9dd8da12a7524bb24fceef24350663d603",
      "parents": [
        "8ffa54e80544005e0f779c681a8c9dfc6afecfa7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 15:30:22 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "treewide: replace platform_transition_binary\n\nplatform_transition_binary changes the platform, but does not set\n@io_bazel_rules_go//go/config:static. Instead, build_static_transition\nis now used, which sets both.\n\nA second benefit of this change is that we have fewer places where the\namd64 architecture is mentioned, which should make it easier to enable\nmulti-platform builds.\n\nChange-Id: Id01e0d942a12770b8b34b0e6825f314128149b40\nReviewed-on: https://review.monogon.dev/c/monogon/+/4162\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "8ffa54e80544005e0f779c681a8c9dfc6afecfa7",
      "tree": "526e5805d5ea05fb34d79daf00b8d6b13b28d4ce",
      "parents": [
        "0fd36f458729a67e4daf68a430ce3a79428a05e9"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 11:33:39 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 13:11:33 2025 +0000"
      },
      "message": "osbase/build: ignore race setting in kernel build\n\nThis makes the kernel config the same between builds with and without\nrace. This should speed up CI when the kernel needs building.\n\nBefore:\nbazel cquery \"deps(//...) intersect //osbase/test/ktest:linux-testing\"\n//osbase/test/ktest:linux-testing (090513b)\nbazel cquery --config race \"deps(//...) intersect //osbase/test/ktest:linux-testing\"\n//osbase/test/ktest:linux-testing (b7a4847)\n\nAfter:\nbazel cquery --config race \"deps(//...) intersect //osbase/test/ktest:linux-testing\"\n//osbase/test/ktest:linux-testing (090513b)\n\nChange-Id: Idf9d9503c07053cc34edfe855fb7042d28655683\nReviewed-on: https://review.monogon.dev/c/monogon/+/4159\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": "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": "56d1299f8ef9fc41b01abe35bd8946d5a064df27",
      "tree": "88b1e4aed3a44b141c33c9380fe42eeb4c1d1813",
      "parents": [
        "4cc3d4d23485f5144f1ee34877c5cc4ae693755f"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:49:37 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "osbase/oci: add end-to-end tests\n\nThis adds some end-to-end tests of the OCI OS image generation and\nconsumption implementations.\n\nChange-Id: Id9f4e3ab5b2c959807657e06990525810d4979ff\nReviewed-on: https://review.monogon.dev/c/monogon/+/4092\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\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": "82900a743f1eebcb80c0a310563be149691b89a7",
      "tree": "637ba1a2e3aae6504af52d3646b175854c64ef7e",
      "parents": [
        "c53a9fc39866a12580bc2ef904349efc76d30a76"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:11:37 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "osbase/build/mkoci: add package\n\nThis adds the mkoci package, which contains a Bazel rule for building OS\nimage OCI artifacts.\n\nChange-Id: I1a234238c4982078db8ecea684e5491c980b97c3\nReviewed-on: https://review.monogon.dev/c/monogon/+/4088\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c53a9fc39866a12580bc2ef904349efc76d30a76",
      "tree": "52de23c2e7f8213d711cfc9a1693540debe8f035",
      "parents": [
        "cc9e4d1ad9641032f87fe3a071bfb861526a6d85"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:09:27 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "osbase/oci/osimage: add package\n\nThis adds the osimage package, which allows reading OS images\nrepresented as OCI artifacts.\n\nChange-Id: Ie122c16d19145f68d0f92a9d6c598342b4d257bd\nReviewed-on: https://review.monogon.dev/c/monogon/+/4087\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cc9e4d1ad9641032f87fe3a071bfb861526a6d85",
      "tree": "c4bcd9a554c0c13b80bc575dc3b2916d084318a7",
      "parents": [
        "b48174d1865861e5992136415b1e86d3cac4e7fd"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 10:28:40 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "osbase/oci/registry: add package\n\nThis adds the registry package, which contains a client and server\nimplementation of the OCI Distribution spec.\n\nChange-Id: I080bb1dbc511f8e6466ca370b090d459d2b730e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/4086\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "b48174d1865861e5992136415b1e86d3cac4e7fd",
      "tree": "f74a6e47d0b870db70ee11e930341b1d33add7da",
      "parents": [
        "27da2e6feeaee5acaf47ccca3efceb534755628b"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 10:13:02 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "osbase/oci: add package\n\nThis adds the oci package, which contains types and tools for working\nwith OCI images.\n\nChange-Id: Ie2a1d82c7ac007f5d1ad47666880dbf8a8bd931d\nReviewed-on: https://review.monogon.dev/c/monogon/+/4085\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "27da2e6feeaee5acaf47ccca3efceb534755628b",
      "tree": "7774ec0ea87c926425bb1c9847f87c9e11ed100a",
      "parents": [
        "db0852264ed945b57320a43665069eee766c8ca8"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 28 16:11:16 2025 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 29 01:04:07 2025 +0000"
      },
      "message": "osbase/test/ktest: fix transitions\n\nOnly executables which are executed with ctx.actions.run should be\ntransitioned to exec cfg; those which are executed while the test runs\nshould be left as target cfg.\n\nThis misconfiguration caused the //osbase/test/ktest:linux-testing\nkernel to be built twice, once for exec and once for target. This is now\nfixed.\n\nBefore:\nbazel cquery \"deps(//...) intersect //osbase/test/ktest:linux-testing\"\n//osbase/test/ktest:linux-testing (090513b)\n//osbase/test/ktest:linux-testing (0f84b2e)\n\nAfter:\nbazel cquery \"deps(//...) intersect //osbase/test/ktest:linux-testing\"\n//osbase/test/ktest:linux-testing (090513b)\n\nChange-Id: I23441a327f2246c308623e425ca66b79064c51a5\nReviewed-on: https://review.monogon.dev/c/monogon/+/4155\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "08054caeaa6bd5a7008357b628073118da4dc865",
      "tree": "09a59c5437fcab0a25012d5ab64f2829476d5be4",
      "parents": [
        "7ea9ef105600a845445523033d5745bb654d3000"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Apr 04 01:11:56 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 29 00:04:11 2025 +0000"
      },
      "message": "osbase/build: migrate ignore_unused_configuration transition\n\nWe will use it for other external builds, so lets move it there\nfor easier reuse.\n\nChange-Id: Ib15e299068a34f94e47add115d309f659701b36a\nReviewed-on: https://review.monogon.dev/c/monogon/+/4083\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7ea9ef105600a845445523033d5745bb654d3000",
      "tree": "628eb95ac3cc9a661472a767f21da7a7750fb008",
      "parents": [
        "51f81e5779eac05472fa060f519c481f512bd704"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 27 15:57:41 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "m/cli/metroctl: use one progress bar for all files\n\nPreviously, there was a separate progress bar for each uploaded file,\nnow there is just one which shows the total number of bytes transferred.\n\nChange-Id: Id4cba63889077a076cb63d437e3fe4b17cfc3786\nReviewed-on: https://review.monogon.dev/c/monogon/+/4049\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "51f81e5779eac05472fa060f519c481f512bd704",
      "tree": "c8002db983f28a4f0441a568bfdc4b69a8fb6f13",
      "parents": [
        "0175d7ab5a5f0414fa4a472b7cf0e066fe8e5f66"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 27 13:13:46 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/net/sshtakeover: fix upload cancelation\n\nThis updates sftp to the latest version, which has various improvements.\n\nThe previous method of canceling uploads doesn\u0027t work anymore, because\nClose tries to take a lock already held by ReadFromWithConcurrency.\nEven with the previous version of sftp, this wasn\u0027t a correct way to\ncancel an upload, because it just sent a message to the server to close\nthe handle, while continuing the upload in the other goroutine.\n\nThere is a work in progress v2 of sftp where Close actually can be used\nto cancel an upload: https://github.com/pkg/sftp/issues/603\n\nFor now, I think the best way to cancel an upload is to make the reader\nreturn an error.\n\nChange-Id: Id70ea7d35526a2a98295168de26469e28fd127dd\nReviewed-on: https://review.monogon.dev/c/monogon/+/4048\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "0175d7ab5a5f0414fa4a472b7cf0e066fe8e5f66",
      "tree": "6c519e0d656373c0fbe273f4e6eeb5747fa329c7",
      "parents": [
        "997faa44e945697717b2eaf22786ba803f741a1e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 12:57:23 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/net/sshtakeover: refactor package\n\nThis is an extensive refactoring of the sshtakeover package.\n\nThe package is renamed from //go/net/ssh to //osbase/net/sshtakeover,\nto make it more clear what the package is for and avoid clashes with\ngolang.org/x/crypto/ssh.\n\nThe previous Client type was removed, and Dial is now a top-level\nfunction which takes an ssh.ClientConfig. The previous Connection type\nwas renamed to Client, which makes the naming match ssh.Client.\n\nThe Client interface type was moved to //cloud/shepherd/manager. This\nallows us to add more functions to sshtakeover.Client without breaking\nconsumers of the package, which would need to add dummy implementations\nfor functions which they don\u0027t need.\n\nThe Upload function was renamed to UploadExecutable, and the new Upload\nfunction can be used for files that don\u0027t need to be executable.\n\nThe sftp client is now created at the same time as the client, instead\nof creating a new one for each uploaded file.\n\nChange-Id: I3be9c346713cb4e5c2b33f9c8c9a6f11ca569a75\nReviewed-on: https://review.monogon.dev/c/monogon/+/4047\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\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": "e4c48544e908e78efdb00c8c507c251be26c4ab9",
      "tree": "632b094e96ce0c93bd3c0a624d116bf798d1fc6f",
      "parents": [
        "4f586b56786657f50d0f8fe89697f15f960d6ab1"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 20 08:39:10 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/structfs: add package\n\nThis adds the structfs package, which defines a data structure for a\nfile system and a blob interface.\n\nChange-Id: I646205faf7d28ec016d2038b0a8931b64e7afc83\nReviewed-on: https://review.monogon.dev/c/monogon/+/4036\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d0cdb57f3d19239d987ffc58d3bb89760837953b",
      "tree": "e31c9e4ed046cfbebbd077dc0e5b137f2bb066ea",
      "parents": [
        "47eb65bd29d4576593c134915088fe8bf144b047"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 27 17:18:39 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 31 11:30:21 2025 +0000"
      },
      "message": "treewide: rename osbase/test/launch to osbase/test/qemu\n\nChange-Id: Ia0775c462c8c909dc2080f01ff1f609b6d099179\nReviewed-on: https://review.monogon.dev/c/monogon/+/4046\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "363322e4f5719be205a78cea3fc2e30b4ae48929",
      "tree": "34e43d7c0cbf468c441640304c7e1b9f2604271c",
      "parents": [
        "22c1a2aa07f2c9c48d31779ccfaf59709123c3fa"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 15:41:56 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 27 08:59:27 2025 +0000"
      },
      "message": "osbase/net/dns/forward/proxy: make test less flaky\n\nI observed a failure of TestCoreDNSOverflow with a timeout on CI.\nIt additionally caused a panic because response was nil.\n\nThe timeouts were originally set this low to speed up tests, but for\nthese tests, we don\u0027t expect to hit timeouts, so this does not make them\nslower.\n\nChange-Id: Ie8bb6d30be6f0cefba7a124f7b49e1e570d7cd10\nReviewed-on: https://review.monogon.dev/c/monogon/+/4043\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "22c1a2aa07f2c9c48d31779ccfaf59709123c3fa",
      "tree": "c85db8506a099ccce512a25af3c9c5fdb089a9aa",
      "parents": [
        "2368dc7f001e4762b77de92cdf95da5553bb1105"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Mar 24 17:23:17 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 26 14:29:19 2025 +0000"
      },
      "message": "osbase/supervisor: log runnable errors as fatal\n\nAs describe in the issue we are only logging the final error and\nreschedule notice into supervisor\u0027s own dn.\nThis modifies said behavior to log the final error as fatal.\n\nCloses monogon-dev/monogon#296\n\nChange-Id: I048cf38fe3e60df9a6722cfe0c6e1427eaddb586\nReviewed-on: https://review.monogon.dev/c/monogon/+/4032\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4c7bb3771714b9f7c136195bca510fda258ebb05",
      "tree": "5ccb71d6d8117e05e691b0db3e1b93bf305202b7",
      "parents": [
        "b1780f334762d88d3b2ee45a319711318f24fdc3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 16:03:07 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 08:38:16 2025 +0000"
      },
      "message": "osbase/jsonpatch: delete unused package\n\nChange-Id: Idcf02e566f0f7c1ec0362d1e7ac1201bb1772294\nReviewed-on: https://review.monogon.dev/c/monogon/+/4039\nReviewed-by: Tim Windelschmidt \u003ctim@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": "e817a2a25d8e1f87490d050c6d1ed293f0c81fd3",
      "tree": "2abb5abe8adc173ef8c5582cde4538b01b0d0c90",
      "parents": [
        "b00f7f9a97eae55ae6df80bbdea46815498898fa"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Mar 06 17:46:25 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 18 14:02:05 2025 +0000"
      },
      "message": "osbase/fsquota: replace float calculation\n\nFloats have limited precision and are not needed here.\n\nChange-Id: I51053821af226d312e94d51c4d21224e1ca53908\nReviewed-on: https://review.monogon.dev/c/monogon/+/4009\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e294916b24bb6d0035484d215421ceb03c6598b7",
      "tree": "3efe5ae3c4452a026403177ba806c7d21168cafb",
      "parents": [
        "bed76d97e58becd2aa314a6132c9968efabc16b5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 18 04:55:13 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 21:36:31 2025 +0000"
      },
      "message": "osbase/bringup/test: replace test builds with macro\n\nThis just makes the BUILD.bazel a bit more readable\n\nChange-Id: If9ca4b8776c2b428da467dcd8627e839bac37468\nReviewed-on: https://review.monogon.dev/c/monogon/+/3904\nReviewed-by: Lorenz Brun \u003clorenz@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": "8eb0244ed3653b6bcb80a29acb4f9e6b66a272f4",
      "tree": "1d41385e553b8ab7b60e3dad8fc0bcfc8ab5cf29",
      "parents": [
        "2c3956750bb75b0d18ddd52565f998492b0f83f4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 16:57:52 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 25 21:03:14 2025 +0000"
      },
      "message": "o/blockdev: add options support\n\nAllow passing options to Open(). This resolves a TODO left from when\nblockdev was initially implemented and is now needed as Linux 6.12\nrejects opening mounted block devices read-write, so we needed at least\na read-only option.\n\nI also implemented the two options mentioned in the now-removed TODO\neven though we\u0027re not using them yet.\n\nThese options are implemented generically to facilitate their use in\ncross-platform code. Unsupported options are rejected at runtime. This\nis similar to how Go\u0027s own stdlib does this.\n\nChange-Id: I2548cb31e59a5c1198ca04537450bdf665878ca8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3985\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0edf66c5e42b4cff2a1a95316c1737ac7a0be7f9",
      "tree": "f7c894cb45552b9018c07a23a6e429089c9ebc53",
      "parents": [
        "16cb15ab5aa2fc0193a1534e65ba2e527e3e8f56"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 24 18:48:23 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 14:23:22 2025 +0000"
      },
      "message": "osbase/build/kconfig-patcher: replace to_json with json.encode\n\nto_json isn\u0027t available in Bazel 8\n\nChange-Id: Ic00091d2e1ea3b6acf1f712ed3653dc9d0c167f1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3940\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": "08fd1cb799ef2629a2da846584cd42fe2d6ecb35",
      "tree": "891510981041e930b88ddead221836deb5a30a8c",
      "parents": [
        "6948d336e97fc71734013fc5c219671e3bea7965"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 10 19:11:17 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 11 11:59:57 2025 +0000"
      },
      "message": "osbase/socksproxy: implement hostname addresses\n\nThis is required by quite a few clients, like Chrome. Implement it for\nbetter usability of our userspace network while debugging.\n\nChange-Id: I5db16d3702800b79f88d11c132ce8f7469839ec4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3842\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@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": "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": "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": "3eb7d033642ebaaddccde287d5ad3c8c59f7a576",
      "tree": "fc445693dbc22be3008a69857e0af4992ca4c8ab",
      "parents": [
        "d634975c7d113b8ec093dae261288b10080283e0"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:21:08 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 28 15:42:56 2025 +0000"
      },
      "message": "osbase/bringup/test: fix flake in bringup test\n\nChange-Id: I17f51ea922be95e2d81b972b406bee13de3d202c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3813\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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": "83da4226001e9ce1cc71e687418ab61fdff6cfc9",
      "tree": "daee7dda9b76925db98ab20870f594ca088c2f0c",
      "parents": [
        "1cd14f55663e33a6b6c42864395a8543fb325581"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:49:50 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 27 17:17:17 2025 +0000"
      },
      "message": "osbase/bringup: Add panichandler and pstore handling\n\nThis expands bringup to use cgroups,\nadds our panichandler and\nimplements a redirect of stdout and stderr.\nThe last one for intercepting using it with the race detector or\nthird party code which uses said outputs.\nBy adding RunWith it is now possible to add metrics collection and\nLogTree filtering.\n\nChange-Id: I9795d7b1d7f66cc67003dbaee0aadf134ebdba65\nReviewed-on: https://review.monogon.dev/c/monogon/+/3705\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "d1683d27351bb06f1e896ce29512531b8e67e57c",
      "tree": "11507526efe5e2d116151836e79a04e42bc341ae",
      "parents": [
        "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Jan 21 10:54:48 2025 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jan 27 16:44:11 2025 +0000"
      },
      "message": "osbase/loop: clean up code\n\nWe no longer need to use unsafe or raw syscalls here.\n\nChange-Id: I10a504be20c949bf41e7af5b33f4439b1580f1cc\nReviewed-on: https://review.monogon.dev/c/monogon/+/3808\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\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": "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": "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": "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2",
      "tree": "46f0f2d12a36cbeb477d54a57d50a11d62277c5c",
      "parents": [
        "3a171d123fff540c8c9d646152a5d5ed9ef873de"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 09 21:39:55 2025 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 09 22:13:01 2025 +0000"
      },
      "message": "osbase/net/dump: correct address prefixes if not on-link\n\nCurrently if an interface address has an on-link prefix (i.e. is not a\n/32 or /128) this gets automatically added as a route. Certain\nin-the-wild configs have these but also a route with a gateway, making\nthe prefix not on-link. Fix the interface addresses in these cases to a\nsingle IP to avoid the spurious on-link route.\n\nChange-Id: If601c61cbbab7f05e72c7f4908071def2dcdb44b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3771\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\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": "d0dd1f538ab8ca0085e388824fd5ad3f0fb5a855",
      "tree": "506144866693ea0ea80f8aa73a17a65d381dad19",
      "parents": [
        "5c717dd5a7dfecc7a0c629abf5b0b9af7583fe95"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 04:42:19 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 16:58:17 2025 +0000"
      },
      "message": "osbase/bringup/test: unflake test\n\nThis is a fun one and sadly semi-expected/wanted behavior. Because we\nhave the exception tracing of the kernel enabled, it captures all\nunhandled signals and prints them into dmesg. This is then written to\nserial, which then is read by our test. Because this is all serial and\nthere is no locking, the kernel and our test can race each other and\nthe tests can\u0027t identify the string which identifies a PASS. It\u0027s simple\nto fix, as we can just disable the exception trace before provoking a\nsegfault.\n\nCloses monogon-dev/monogon#366\n\nChange-Id: I8766a28bf339e9e2d5b0aec415c3affe0db82f50\nReviewed-on: https://review.monogon.dev/c/monogon/+/3758\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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": "35cd44be9b5f43d19e05f48f6be2ab6cd65b9c22",
      "tree": "1ec0672614bb0e03246dd91f03c3113a6f42c95a",
      "parents": [
        "117006e5a66f0c5858bff44aa05dc036083610a3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 16 02:44:11 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 03 15:40:37 2025 +0000"
      },
      "message": "osbase/supervisor: allow access to LogTree from Runnable\n\nThis adds a way to access the underlying LogTree instance from\na runnable with the same API as normal logger access. This is required\nfor migrating metropolis/node/core to use bringup.\n\nChange-Id: I867ff0ff104bd7f524667a66aaaf13fc29c8f25c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3704\nReviewed-by: Lorenz Brun \u003clorenz@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": "5b997a113d011c35ecc981594c95a53d67311f83",
      "tree": "61b4a9db6eab7a23d58242a098b8a65670b181eb",
      "parents": [
        "fce7c765ace0ae7058af9498e228eca30dd4695c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 15:10:07 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/event/memory: remove Sync feature\n\nThe Sync feature was unused, and I\u0027m not sure using it anywhere is a\ngood idea. If you really do need reliable delivery of events to multiple\nconsumers, then you probably also would need some mechansim for a\nconsumer to restart at the point in the history it has last seen before\nit failed. Removing this feature simplifies the implementation and\nallows new features to be implemented.\n\nChange-Id: I94731355b7208f91256bc4610cb31a2720ab6c68\nReviewed-on: https://review.monogon.dev/c/monogon/+/3717\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "fce7c765ace0ae7058af9498e228eca30dd4695c",
      "tree": "4d331860270a59969d0f917a72e87e7dde74b9a6",
      "parents": [
        "08c1c72246da4f8f18dfb7e94a1da813b094c7a4"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Thu Dec 19 14:07:24 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Dec 23 10:13:43 2024 +0000"
      },
      "message": "osbase/supervisor: restart DONE nodes when needed\n\nNodes in DONE state are normally not restarted. However, if a sibling of\nthe node dies, then the node in DONE state and all its children are\ncanceled and need to be restarted. Previously, this did not happen, so\nthe newly added test got stuck waiting forever for the inner runnable to\nstart again.\n\nChange-Id: I8c437937d21edb822985ec6fa3f36425e12ff218\nReviewed-on: https://review.monogon.dev/c/monogon/+/3716\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    }
  ],
  "next": "08c1c72246da4f8f18dfb7e94a1da813b094c7a4"
}
