)]}'
{
  "log": [
    {
      "commit": "218d708b0dffe7a8516d97b13b2cd0f4b91fd756",
      "tree": "4884e81008c897e385411598021656daa266bf1c",
      "parents": [
        "c25ca5d06e3c006987b77350e3f55cccd358e117"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:48:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:07:47 2023 +0000"
      },
      "message": "m/n/core/curator: fix another crash in IssueCertificates\n\nWe should have a no-go check for this, this should\u0027ve been easily found.\n\nChange-Id: I1c22e0436da1c71dffc6494a5d5b1867879e17c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1394\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c25ca5d06e3c006987b77350e3f55cccd358e117",
      "tree": "cd00ee88800059299481cc7e006feccbafffae32",
      "parents": [
        "6b7731ee4017d5f412fa487c12b5fcab1b91cd44"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 14:29:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:54 2023 +0000"
      },
      "message": "m/n/core/curator: fix crash in IssueCertificates\n\nChange-Id: Ib0e1f08bfcc2e70cd638f0863450508d10ab9a93\nReviewed-on: https://review.monogon.dev/c/monogon/+/1393\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6b7731ee4017d5f412fa487c12b5fcab1b91cd44",
      "tree": "b47ce1057e5034690d6ee42862a6acdd79ce91eb",
      "parents": [
        "d02f2166634fd8c2ef3433ab7212088802cc7f89"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:58:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:35:41 2023 +0000"
      },
      "message": "m/n/core: hide verbose supervisor logs from console\n\nChange-Id: I617c4b966caa35253ba53407fbfadc6615b50822\nReviewed-on: https://review.monogon.dev/c/monogon/+/1388\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d02f2166634fd8c2ef3433ab7212088802cc7f89",
      "tree": "92d7a6eaf0dc07ba4ac53d07deaa325218281e62",
      "parents": [
        "1ec1fe9f8af947c972f803d778f95d145606a6d0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:34:11 2023 +0000"
      },
      "message": "m/n/core: fix crash on exit\n\nThe current code crashes on exit if a console wasn\u0027t opened.\n\nChange-Id: I7fc235953fe04b8ea924a380e7eb9195a8883d6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1387\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1ec1fe9f8af947c972f803d778f95d145606a6d0",
      "tree": "d63a4b0dc55dfd582bb20dcdd47011a501d4ed2c",
      "parents": [
        "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:28 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 13:32:41 2023 +0000"
      },
      "message": "m/pkg/socksproxy: fix fd leak\n\nChange-Id: I4e5f9e937b85a46a9c4ee2e79f4bdcea06858d59\nReviewed-on: https://review.monogon.dev/c/monogon/+/1386\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe39cc21b69bb9fd9f641dfc6b3514386cbb0d4c",
      "tree": "2c4ff1bc567bb6b5e276bef2028fc196cbc37f2b",
      "parents": [
        "e88ffe9af09b2740bfe0c47ec1efae0380d4f706"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 14:21:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:21:21 2023 +0000"
      },
      "message": "m/n/c/curator: implement IssueCertificate for Kubernetes Workers\n\nThis is not yet used in this change, but will be very soon.\n\nChange-Id: I0283941f15211515537d2b23e0c8cd72dc2d77c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1378\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e88ffe9af09b2740bfe0c47ec1efae0380d4f706",
      "tree": "da2fac1e9bd4343250bc01c1bff81062d7ee60a7",
      "parents": [
        "e6719b379b19ad4439b5fd38da035a3043008d97"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:38:46 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:17 2023 +0000"
      },
      "message": "m/n/kubernetes: factor out generating KPKI, support multiple endpoints in Kubeconfig\n\nChange-Id: I0e648c24ffa134314a03715575d1af1b925fd450\nReviewed-on: https://review.monogon.dev/c/monogon/+/1377\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e6719b379b19ad4439b5fd38da035a3043008d97",
      "tree": "e3008346b5b32b327c7537451aeaabbf5b144bb7",
      "parents": [
        "ac43801262f2ef399c4b61172823d6d88ec3575e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:57:50 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 12:04:07 2023 +0000"
      },
      "message": "m/n/core: do not show minit error on failure\n\nChange-Id: I42018ea1d177c5a49c827242a6c8be93363e49bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1389\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ac43801262f2ef399c4b61172823d6d88ec3575e",
      "tree": "d4df4f7dc8121d53432d860c4e234484adafa1f4",
      "parents": [
        "439c1b0485e58600b3fce4e97da9fa362b1de099"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:01:29 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 08:32:21 2023 +0000"
      },
      "message": "m/n/core/cluster: don\u0027t cry wolf about missing nodeparams sources\n\nChange-Id: I4498b122dc5c63af89b2c9909250dfc0b6dae732\nReviewed-on: https://review.monogon.dev/c/monogon/+/1390\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "439c1b0485e58600b3fce4e97da9fa362b1de099",
      "tree": "8a6b59105dbdd2794cb79e31505c654f182ca1bb",
      "parents": [
        "5d6cdf4891f5a0662e5485b5fd34039d7bb1f664"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:43:36 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 23 08:32:15 2023 +0000"
      },
      "message": "third_party/go/gvisor: fix syslog integration\n\nChange-Id: I985517e5b2585a2f29ffd352f38b26c0ab5c8f4a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1385\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5d6cdf4891f5a0662e5485b5fd34039d7bb1f664",
      "tree": "4e44e0444adb3c770e545dcfcacd3cdd00ccf40c",
      "parents": [
        "d85a40ab6fa79efca11b02522b89855952226f33"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:05 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 12:18:03 2023 +0000"
      },
      "message": "m/n/c/core/cluster: notify whenever storage takes longer than 5 seconds to mount\n\nFixes: https://github.com/monogon-dev/monogon/issues/139\nChange-Id: I86398e51cee90c2c5a5a3cb943d85bd09ea311b8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1382\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d85a40ab6fa79efca11b02522b89855952226f33",
      "tree": "408907867ea99dbc07a5d61ec70b2c8478a57414",
      "parents": [
        "d6fee31d519a22720ae0342e02ccdba405b62ded"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:14:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:36 2023 +0000"
      },
      "message": "m/n/kubernetes/service: only note lack of reconciliation every 10 seconds\n\nChange-Id: I6e070325daa265e2e0a65bc5f5e69cc5c9869a04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1384\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d6fee31d519a22720ae0342e02ccdba405b62ded",
      "tree": "b440f3b977eabe81de0ee24f99f385d710dfd84d",
      "parents": [
        "c64ba1ec847af9314790d8f13ff9ead06a9be45c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:11:48 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:57:32 2023 +0000"
      },
      "message": "m/n/c/roleserve/controlplane: wrap tpm errors\n\nChange-Id: I0ec10b6065c529b7772a884fd48c7c6f7b5df0bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1383\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c64ba1ec847af9314790d8f13ff9ead06a9be45c",
      "tree": "d5e0fbb008fe2ac950241ff53770aeee4e7b3df8",
      "parents": [
        "e013f1b87807b7c0eb7440cec41e568ef288b499"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 19:15:13 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "go/net/tinylb: init\n\nThis implements tinylb, a tiny round-robin load balancer for\nnet.Conn/net.Listener protocols.\n\nThis will be used to loadbalance connections to Kubernetes apiservers\nbefore cluster networking is available.\n\nChange-Id: I48892e1fe03e0648df60c674e7394ca69b32932d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1369\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e013f1b87807b7c0eb7440cec41e568ef288b499",
      "tree": "14fee72b90e222cd7ad2b4b865bf8c7637a4fd5e",
      "parents": [
        "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 11:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/core/localstorage: add helper functions for PKIDirectory\n\nChange-Id: I2798b9d6fcaedcf7a5e8e01e322797ebb8a1389d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1376\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "6fdca3f2e8b60f53f69c8cd39a02109cc47059ac",
      "tree": "f875b3e103037078ece4842fcdd77cbb87d7a6cf",
      "parents": [
        "f71fe9278055d5a892448554aa7c59862256db7d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 17:47:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 11:33:51 2023 +0000"
      },
      "message": "m/n/kubernetes: start splitting, run apiproxy\n\nThis begins the process to split the Kubernetes service into a\ncontroller and a worker service.\n\nFirst, we rename the existing service to a Controller, create a Worker\nservice, and make the Worker service run our new tinylb-based apiserver\nloadbalancer.\n\nWe also make the roleserver aware of this change by making it spawn both\nthe controller and worker services according to roles.\n\nWe will move services to the Worker in follow up change requests.\n\nChange-Id: I76e98baa0603ad5df30b5892dd69154b895b35fa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1374\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f71fe9278055d5a892448554aa7c59862256db7d",
      "tree": "4e94d3394eb60e6a6144545cc37dcf85560c951d",
      "parents": [
        "d09c58f33c523c9395446122fc552c58dbab80cc"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 01:10:37 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 10:43:52 2023 +0000"
      },
      "message": "m/installer: log to tty0 and ttyS0\n\nWithout this we only log to whatever the default system console is.\n\nChange-Id: I64b43f8617f3b8752332209b511ea470848c4481\nReviewed-on: https://review.monogon.dev/c/monogon/+/1381\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d09c58f33c523c9395446122fc552c58dbab80cc",
      "tree": "c1438cddc469da77cf1640e672894e99123bb827",
      "parents": [
        "ce19acc9d66055d912287d9f1f26c08d3df55aa8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:25:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:13 2023 +0000"
      },
      "message": "m/test/launch: do not pipe node logs to stdout in //:launch-multi2\n\nChange-Id: I9e74ca8d6121725b9d38c910f80759c3c6b932a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1372\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ce19acc9d66055d912287d9f1f26c08d3df55aa8",
      "tree": "6aedbe2ab0aef40955f3d416013ff59e1aec0139",
      "parents": [
        "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:28:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 17:56:08 2023 +0000"
      },
      "message": "m/n/kubernetes: make CSI provisioner more debuggable\n\nChange-Id: I22292e627ceac0d41a7711964517a53e63636c3e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1379\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1f8cad7568ad2e8e539fe44f1b2d51e1f2a19fd5",
      "tree": "ed38d5ecb2f775c73c0ac8c23a68e610ce261591",
      "parents": [
        "d174e556db5e2ad25e406babf34442a529756081"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:58:10 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:39:39 2023 +0000"
      },
      "message": "m/{cli,test/launch}: integrate launch/cluster with metroctl\n\nThis makes test-launch2 (and possibly later any other code that uses the\nlaunch/cluster library) tell the user that they can connect to the newly\nlaunched cluster using metroctl, either by using specific flags, or\nusing a wrapper script, or using kubectl.\n\nChange-Id: I54035ee02f3cbab3d17f46b1f1685b91aab275a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1373\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d174e556db5e2ad25e406babf34442a529756081",
      "tree": "27627eb19faf5d3f9eb18bdeceff7cdc57ebc122",
      "parents": [
        "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 10:49:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 15:37:05 2023 +0000"
      },
      "message": "m/n/core/localstorage: remove unused PKI options\n\nChange-Id: Ifa6011fe7ab2868fac93483d0988c772c6f6fdf4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1375\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c1cb37ce9c43b1eae0325d2dbc0c480185f3d981",
      "tree": "16127799671c8aaf6ee3bb2548bc8579fd1d719b",
      "parents": [
        "7457ee940f2fff2df6e6eef89dcfbd3a9c67cfb9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:33 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 13:30:48 2023 +0000"
      },
      "message": "m/n/core/consensus: log etcd into sub-DN and wait for DNS resolvability\n\nThis lets us distrnguish between things that etcd logs (which is often\nextremely verbose) what our own consensus service says.\n\nIt also makes the consensus service wait for DNS resolvability before\nattempting to join an existing cluster, which makes etcd startup much\ncleaner (as etcd will itself crash if it cannot immediately resolve its\nExistingPeers in startup).\n\nChange-Id: Icc6a5a40fc56733cc24ccd88af0a73feba4f6922\nReviewed-on: https://review.monogon.dev/c/monogon/+/1356\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7457ee940f2fff2df6e6eef89dcfbd3a9c67cfb9",
      "tree": "412f5828491b819c1f4e7f547a6dec12e20ac38b",
      "parents": [
        "e25b3a4154cd71c1efd4e26760f4e14d27ad005b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 19:06:28 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 10:53:12 2023 +0000"
      },
      "message": "go/types/mapsets: add OrderedMap\n\nOh look, more Go generics.\n\nThis is a pretty standard Ordered/SortedMap type structure, with a\nlittle twist: it implements having a subordinate \u0027CycleIterator\u0027 which\nallows to iterate over it in a round-robin fashion, even as its\nunderlying OrderedMap is mutated.\n\nThis will be used, unsurprisingly, in a little TCP load balancer\nimplementation.\n\nChange-Id: Ic8ab6a7fbcd6e1faf6224fc93bcc997c09364190\nReviewed-on: https://review.monogon.dev/c/monogon/+/1334\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e25b3a4154cd71c1efd4e26760f4e14d27ad005b",
      "tree": "51d8974c74b742f5fe6e26e7154789007f10da4b",
      "parents": [
        "3600690988cd075c4e775018bcc9d0f345dd3e86"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:07:53 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 16:18:08 2023 +0000"
      },
      "message": "m/pkg/{logtree,supervisor}: support Benchmarks in test helpers\n\nChange-Id: I811356ac50dd9588412c280a87ad6e5c4be1e2cd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1368\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3600690988cd075c4e775018bcc9d0f345dd3e86",
      "tree": "3a2c20f519667ae15591aea1245e98697a1d7f58",
      "parents": [
        "0b3aac94581f63b3024b261fa6a9f298d0cca52b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:57 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 20 14:09:21 2023 +0000"
      },
      "message": "m/n/c/rpc/resolver: correctly close watcher on context cancel\n\nWithout this change, a watcher can be stuck forever closing a connection\nto a resolver if that resolver has already exited due to its context\nbeing canceled.\n\nChange-Id: I99dc0f04ff840128879721d3e6368c07345564b7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1371\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0b3aac94581f63b3024b261fa6a9f298d0cca52b",
      "tree": "5d08ccdc172f131c99b7acaabb108d2d4d4ce53b",
      "parents": [
        "cf33f6805a7842a1aa7fac377468d9ca54f8d05b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 16 16:49:56 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Mar 20 11:23:46 2023 +0000"
      },
      "message": "g/a/toposort: add topological sorting pkg\n\nThis adds a package which implements topological sorting.\nThere are existing Go packages out there which do this, but all of\nthem have various shortcomings, either in the API or in\nperformance or stability.\n\nThis uses a fairly simple DFS-based algorithm for doing the majority\nof the work. It uses generics for the nodes to allow for flexibility and\nis covered by a fuzz test to check for correctness.\n\nChange-Id: I4ae3f0b97ef801350b87cdae3a3d9a1ba63830e3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1351\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "cf33f6805a7842a1aa7fac377468d9ca54f8d05b",
      "tree": "4b5dbdc5d1e533278c8cdb7c0a3442c377d48285",
      "parents": [
        "fe5192dc5369ab47be1552a6935f9cb745d9f837"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Mar 17 00:16:16 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 23:31:51 2023 +0000"
      },
      "message": "m/cli/metroctl: allow specifying --endpoints\u003dmultiple,values\n\nChange-Id: Ib7088c91d0e501e0925b6a8793a521dad58cd2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1370\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fe5192dc5369ab47be1552a6935f9cb745d9f837",
      "tree": "f41853b28d396a6fb1fbd9b6a9f5d16e679d0c59",
      "parents": [
        "356cbf3e49af75d9cccf92fd8d0a3236727f6761"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:33:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:27 2023 +0000"
      },
      "message": "m/n/core/cluster: clean up\n\nThe cluster.Manager structure got heavily refactored over its life, and\nwe ended up with a whole bunch of stuff that wasn\u0027t even being used.\nLet\u0027s clean that up.\n\nWe also change the oneway logic to use a channel instead of a locked\nboolean.\n\nChange-Id: I3e8158ad5938be1636efc9d7fad7eb6d6e953ccf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1354\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "356cbf3e49af75d9cccf92fd8d0a3236727f6761",
      "tree": "a8865bc1422fdde0d8f5a63f8e7e100156dccfeb",
      "parents": [
        "f9bdf3126488a2728e265a2b28cba564c8072e04"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:52:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:22:24 2023 +0000"
      },
      "message": "m/n/kubernetes: run reconciler before starting more services\n\nThis makes sure we successfully ran the reconciler at least once before\nattempting to running more than the apiserver. It saves us from a whole\nbunch of services complaining about not having the right permissions to\n(yet) access the cluster.\n\nChange-Id: I605eae9d6bbcc16a9dcb971caa26ee56a06e5d5b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1358\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9bdf3126488a2728e265a2b28cba564c8072e04",
      "tree": "fb0c4b0b1de6bf314c397ddf264fe9338e5aaec7",
      "parents": [
        "53a85f7e9f68cfc50721e94de717b1973be2b858"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:54:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:05:05 2023 +0000"
      },
      "message": "m/installer/test: undo leftover test comment\n\nThis was introduced by review/1365, and it was just done for testing.\nUndoing this should not undo the flakiness fix.\n\nChange-Id: I7e3096f6b09b2cbd3f3f75dfb4b3602ddfae0959\nReviewed-on: https://review.monogon.dev/c/monogon/+/1367\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "53a85f7e9f68cfc50721e94de717b1973be2b858",
      "tree": "2e5aca3dfa152cd9860fc199527fce5c8176af7a",
      "parents": [
        "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:53:32 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "third_party/go: patch embedded etcd to prevent spurious panics\n\nThis channel double-close tends to panic etcd if we end up calling\nserver.Close more than once. It seems like a programming bug in etcd\nupstream, this function should be otherwise safe to call more than once.\n\nChange-Id: Iba93dc58202f22f966af251b7424d5d4c4e10612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1353\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0",
      "tree": "d04ffe4c6866be5139dbc87424d14cac2baea6cd",
      "parents": [
        "05f813bf2d311f94dbc8021a85b37ff7c2e33242"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:46:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "m/n/core/consensus: work around etcd dial timeout\n\nObserved in an E2E test:\n\n  consensus  ready to serve client requests\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: when getting bootstrap\n             client: context deadline exceeded\n  supervisor rescheduling supervised node root.role.controlplane.launcher.consensus\n             with backoff 681.402139ms\n  consensus  data absent, bootstrapping.\n  consensus  Bootstrapping PKI: starting etcd...\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: failed to start etcd:\n             listen tcp127.0.0.1:7834: bind: address already in use\n\nI\u0027m not sure what caused the original timeout of the client. Let\u0027s bump\nit to two seconds instead of one.\n\nIn addition, let\u0027s also properly stop the bootstrap etcd server on\nfailure, instead of letting it run forever and preventing any subsequent\netcd server from starting up.\n\nChange-Id: Icbcc31cb1e0b9e619360cbd71c5ee81396c79724\nReviewed-on: https://review.monogon.dev/c/monogon/+/1352\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "05f813bf2d311f94dbc8021a85b37ff7c2e33242",
      "tree": "861772847ef842bbdc362224c442a7679b8b10f2",
      "parents": [
        "cc4e96aed59648a3c4ac3faf3755deff4bb7f656"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:58:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/e2e: use concise-style logging\n\nMaking our test logs look like LogEntry.ConciseString() means we have\nsignificantly more readable test logs.\n\nChange-Id: I0b1eab6a5a837bb2001f3b32779c23df2feaa381\nReviewed-on: https://review.monogon.dev/c/monogon/+/1362\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cc4e96aed59648a3c4ac3faf3755deff4bb7f656",
      "tree": "95f6ddc310733ba68f457c95bae3a329c9328ebe",
      "parents": [
        "3b098239a4b40f7082d56f888590c2942990e72c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:14 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/nanoswitch: use concise logging\n\nChange-Id: I89a355a771140a5e8726603c2171bd4822ce1308\nReviewed-on: https://review.monogon.dev/c/monogon/+/1361\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b098239a4b40f7082d56f888590c2942990e72c",
      "tree": "1df2cc725de2bb912923fe266ec532b216f19642",
      "parents": [
        "367ee27b50654bc37358d9172aed7c3d19a32dac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:02 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "metropolis/node: use concise logging in tty0/ttyS1\n\nChange-Id: I28ad4418a05a7962d61160583b2e210f73ff8c51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1360\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "367ee27b50654bc37358d9172aed7c3d19a32dac",
      "tree": "354e4e01616adbf92be250eacd28e66e2e97dd4e",
      "parents": [
        "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:50:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/pkg/logtree: implement concise stringification\n\nThis adds a new method on LogEntry: ConciseString(). It\u0027s designed to\nbe used in cases where we want to display the log line on some\nlimited-width (and likely non-interactive) log console, like TTY\nconsoles in Metropolis.\n\nThis is a bit too Metropolis-specific to my liking (we hardcode some\nlogic related to the layout of root.role.*), but it\u0027ll do for now.\n\nChange-Id: I1079b8b19a3c304fcc5077ce6b4c69887a34d7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/1359\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9",
      "tree": "72b83aba36088c2f34f5d7d2e272cf271f99e11a",
      "parents": [
        "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "c/bmaas/bmdb: fix flaky parallel test\n\nWe weren\u0027t handling an expected error properly, which sometimes just\npops up in normal operation.\n\nChange-Id: I45f3011236fbce41dc5e139e39f60c0002fd6cec\nReviewed-on: https://review.monogon.dev/c/monogon/+/1366\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf",
      "tree": "623584088f8922fc37f1662d1c957c1e1ad2d169",
      "parents": [
        "f2f85f5827b9df558606403d9451087873249265"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:50:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/installer/test: attempt to fix heisenbug\n\nChange-Id: Ib4dae5bec7c99b88d5b9d4e5ac90ece09fdc7c77\nReviewed-on: https://review.monogon.dev/c/monogon/+/1365\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f2f85f5827b9df558606403d9451087873249265",
      "tree": "646fff1411bff4f9a294f347d6576305171412f7",
      "parents": [
        "0164c717e7ca2420f86043283f4c56867734ecce"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:51:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:14 2023 +0000"
      },
      "message": "m/n/core: make startup errors more readable\n\nPreviously, fatal startup errors in the cluster manager/enrolment would\nget logged as general supervisor runnable errors, which is not very\nuser friendly.\n\nThis reworks error handling in main.go to switch over logging to an\nalternative \u0027fatal\u0027 channel as soon as an error is detected, and use it\nto clearly log that error.\n\nFixes issues/77\n\nChange-Id: Id73ee49f6bc5b4306dd67ede3a588f08dd2b33da\nReviewed-on: https://review.monogon.dev/c/monogon/+/1355\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0164c717e7ca2420f86043283f4c56867734ecce",
      "tree": "f75f52391d5db410cb081f04f372d34da26bf30b",
      "parents": [
        "9dd92d90074fbab1a15b07da9ccc0afab70a5f30"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:01 2023 +0000"
      },
      "message": "m/p/supervisor: provide more concise logs on runnable exit\n\nChange-Id: Iba99bdf5d516e0edad6da40951d61894acf0b70b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1357\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9dd92d90074fbab1a15b07da9ccc0afab70a5f30",
      "tree": "4914a511ce3cfc2afa7143b75cedae2a46f2b11b",
      "parents": [
        "37110c360f012c10f3b9456a0eb282eefd3275b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 14:29:07 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:27:36 2023 +0000"
      },
      "message": "m/pkg/event: implement Pipe helper\n\nThis simplifies some of the roleserver code, and is possible now that\nevent values are strongly typed.\n\nChange-Id: I0a22ff97fe4304d35cc9cee105e98bc224d1433b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1323\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "37110c360f012c10f3b9456a0eb282eefd3275b3",
      "tree": "0d8ade7c95d54a576d88e53fb5e8ca9ee76c8f29",
      "parents": [
        "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:57:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 16:55:28 2023 +0000"
      },
      "message": "m/pkg/event: make type-safe\n\nThis is a fairly large change which makes use of Go type parameters\n(“generics”) to make the event library (and its memory/etcd\nimplementations) type safe.\n\nSince we now have the event.Value interface strongly typed, we also move\noptions which were implementation-specific (like BacklogOnly)\nto be part of that interface, instead of the previously type-asserted\nspecific implementations. Use of options that are not handled by a\nparticular implementation is a runtime error. Expressing this in the\ntype system is probably not worth the effort.\n\nWe also implement Filter to allow offloading some of the functionality previously implemented in type assertion wrappers into the library itself.\n\nIn the end, this ends up removing a bunch of type assertion code, at\nthe cost of a fairly sweeping change. Unfortunately, some of this is due\nto IntelliJ suddenly deciding to reformat comments.\n\nChange-Id: I1ca6d93db1b5c4055a21af3fb9e5e3d425c0d86e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1322\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe",
      "tree": "f71839e80a77bb094c9836a399ebc2e0f99e4854",
      "parents": [
        "591d808678b9770bd579509928997dc5494806e8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:29:17 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/p/logtree: do not emit broken klog entries\n\nAny invalid line parsed to the klog parser would turn into a big INVALID\nbeing emitted to the console, as the emitted log entry had neither a\nleveled nor raw logline attached.\n\nChange-Id: Ia6d620ea56d2112d11e2d3edcd6c762c58de6c50\nReviewed-on: https://review.monogon.dev/c/monogon/+/1339\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "591d808678b9770bd579509928997dc5494806e8",
      "tree": "3afd01fdd280f279610160141c6ef1b02debb119",
      "parents": [
        "cf23ebc1afc53f93d56a0fd33209db7b033a991a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:26:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/test/e2e: stop downloading container images\n\nHaving tests rely on The Internet isn\u0027t great, having tests rely on the\nDockercorp registry is even worse. Instead, let\u0027s test everything using\nthe preseed_test image.\n\nChange-Id: Ib82ce266592e9c6d2f0d4597abcc114c12746b1f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1338\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf23ebc1afc53f93d56a0fd33209db7b033a991a",
      "tree": "23395adcd31b1ec31377de20ca46f5e98b9ff242",
      "parents": [
        "bfc280739cdbae950611e5d35a1adb5cd0f58feb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:02:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 16:36:18 2023 +0000"
      },
      "message": "m/cli/metroctl: factor out some helper functions\n\nWe will need these to create metroctl-compatible configs from\n//metropolis/cluster/launch.\n\nChange-Id: I2705afefb62b7e1b35c87d9753c4ca9c7f534c26\nReviewed-on: https://review.monogon.dev/c/monogon/+/1324\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bfc280739cdbae950611e5d35a1adb5cd0f58feb",
      "tree": "8e86b9bcaa33f3cb3dd5950a556ecf0641f58c02",
      "parents": [
        "15f7f637d6885b471f52fd0aa04d04998366a7f9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:56:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 09:29:09 2023 +0000"
      },
      "message": "m/node/core: fix up resolver keepalives\n\nWe set up keepalives in the resolver to quickly detect that a Curator is\nnot longer available.\n\nThis fixes two bugs related to their use:\n\n 1. When the resolver\u0027s curator connection dies (eg. when we get kicked\n    off by the curator for keepaliving too often), we recreate it fully\n    and thus lose any \u0027keepalive backoff\u0027 state that the client\n    connection carries, thereby not letting that keepalive bachoff\n    mechanism kick in as intended.\n 2. The server-side limits for client keepalives were simply too low\n    compared to what the resolver library wants to use.\n\nChange-Id: If2e53e20a1462e9f71a3723b92d346aff795d84c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1321\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "15f7f637d6885b471f52fd0aa04d04998366a7f9",
      "tree": "b1884808d565ce0736993939f4f6b482aab0874d",
      "parents": [
        "e00a89da1c62e20c2528dadb0543a4578680b073"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:17:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 20:07:36 2023 +0000"
      },
      "message": "metropolis: rename KubernetesWorker to KubernetesController, add no-op KubernetesWorker\n\nThis is in preparation for actually splitting the Kubernetes service\ninto a control plane and data plane / worker. The new Worker service is\na no-op: it can be enabled/disabled, but has no practical effect.\n\nSince we plan on keeping the control plane stuff mostly as is, and add\nsplit worker functionality as a new codebase, it makes sense to rename\nthe existing role to Controller, and createa brand new Worker one (to\nmake future diffs smaller).\n\nChange-Id: I79de3219f3c190d38469a0a8d7371820471c100d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1325\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e00a89da1c62e20c2528dadb0543a4578680b073",
      "tree": "61d9fb147393d3324e66318eaf79e136da9075bc",
      "parents": [
        "60ded32ef9a324e540237a2ca29bd6342ed482a6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 14 13:24:11 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 14 17:32:12 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nIt also includes a third_party/go change because gazelle is unhappy\n\nChange-Id: I45178b4827f012d23be9618cbcbd21565555adce\nReviewed-on: https://review.monogon.dev/c/monogon/+/1299\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "60ded32ef9a324e540237a2ca29bd6342ed482a6",
      "tree": "5e45b35c802782936bec85e6168aea12cd26b5f0",
      "parents": [
        "5b8b86069584664f8be69467290d7cae7d000b8d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 18:07:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nChange-Id: I59c3a9baeeb2eddf79ada52539869612bdb1eacd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1264\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5b8b86069584664f8be69467290d7cae7d000b8d",
      "tree": "9eae59a652bcafb11e017a61db58e41c67f42977",
      "parents": [
        "2d284b5718ad0948e7ef5afc5905f36701f4a3ab"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 17:22:21 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "cloud: use machine_id for all agent communication\n\nThe original proto used provider-scoped provider_ids, these are being\nreplaced by  a single machine_id, assigned by the BMaaS service.\nIts API works in terms of machine_id, not provider_id (see\nAgentHeartbeatRequest), so this needs to be changed.\n\nChange-Id: If13942d02a8ac0e2901c549a92a67b6b10a1e196\nReviewed-on: https://review.monogon.dev/c/monogon/+/1263\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "2d284b5718ad0948e7ef5afc5905f36701f4a3ab",
      "tree": "1525231844ed4fb336e9cf3b0b252008f4f44393",
      "parents": [
        "7922d41e98a28458e17e4ff33c9ece0d9ff6578a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 17:05:12 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover/e2e: add takeover end-to-end test\n\nThis adds an end-to-end test to the takeover system.\nIt launches a QEMU VM running a Debian Cloud Image which is configured\nvia cloud-init to accept SSH access from the test.\nIt connects to that VM via SSH, copies the takeover binary under test\nto it via SFTP and launches it.\nIt passes a test TakeoverInit message to it, performs basic sanity\nchecking on the response and then looks on the serial port for a flag\nmesage that the agent has started.\n\nChange-Id: I8edce6163259da305bb43660a2d70474f7f11612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1262\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7922d41e98a28458e17e4ff33c9ece0d9ff6578a",
      "tree": "f9258008879a4cfae6c97b5a76d52788e896a0ec",
      "parents": [
        "6da0f614b42ce9e82edba885222fc5ed59eb4338"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 20:47:39 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover: init\n\nAdd takeover, a tool which is used to take over machines running any\npretty much any Linux distribution as long as it has kexec support and\none can run the takeover binary on it.\n\nAfter takeover it launches the cloud agent which can then perform\nfurther work on the machine.\n\nChange-Id: If26015f626f439c44be473221c98b5e9a8fa9adc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1143\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "6da0f614b42ce9e82edba885222fc5ed59eb4338",
      "tree": "e87a769409b72366d51122e24f9f4ffd5f21324d",
      "parents": [
        "595dfe95bd3dd0d4e7eb81b3d9552fc981073fc2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 20:44:28 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/agent: add initramfs build\n\nThe agent will be used directly on top of a Monogon kernel as an\ninitamfs. Add build rules for generating said initramfs.\n\nChange-Id: I960fb3d82d4a7f227db48ca0714c48c63958d31f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1142\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "595dfe95bd3dd0d4e7eb81b3d9552fc981073fc2",
      "tree": "981234291526796596d324c3abf0eece634d3940",
      "parents": [
        "8733950f8ee7a47141c92b5ad82e2fe87471a7a2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 19:13:02 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/a/api: reorganize and add AgentInit\n\nMove hardware reporting-related data into a separate file for better\norganization.\n\nAlso add an AgentInit message which will be used to pass data to the\nAgent.\n\nChange-Id: I1eecbd5a78da03170651f76f9f24e134dddaca4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1140\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "8733950f8ee7a47141c92b5ad82e2fe87471a7a2",
      "tree": "5f2db2aa219f73e17df7e17e5cbca0f6436da03c",
      "parents": [
        "0672ecc35bca207fce8ede33da6542a880eb89c5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 07 15:49:42 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "net/dump: init\n\nThis adds netdump, a library which dumps the network configuration of a\nLinux host via netlink and generates a Net specification from it.\n\nChange-Id: I78007df1da4fbf24ba9128eb2e966df0dea9274e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1231\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "0672ecc35bca207fce8ede33da6542a880eb89c5",
      "tree": "152cbee5e749eb9d8decdf0b4fac9185f6c86c18",
      "parents": [
        "b033b380387a999b7ad19f9d001c42ec570c8945"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 11:00:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 16:10:21 2023 +0000"
      },
      "message": "net/proto: add network configuration spec\n\nThis adds a network configuration specification which will be used for\nthe Monogon Network component in case autoconfiguration cannot be used\nbecause of environmental constraints.\n\nIt will also be used by netdump, which is capable of deriving such a\nspec from a running system.\n\nIt\u0027s currently a bit bare-bones, but is designed to be easily extensible to\nmore complex needs.\n\nChange-Id: Ib444ac26251884c640a0dbec089d0d1787df556b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1139\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "b033b380387a999b7ad19f9d001c42ec570c8945",
      "tree": "6093a955f5c08f29e6590fb71781849d100a3e0e",
      "parents": [
        "d8290c8082f752f52d0ba1c765f668e2992bc5d4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 20:06:36 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 22:29:46 2023 +0000"
      },
      "message": "*: fix gomodproxy compatibility\n\nThis is necessary for the source to be fetchable from third-party Go\nprojects (currently via a replace directive, as source.monogon.dev isn\u0027t\ngo-getable). Otherwise, `go mod tidy` complains:\n\nreading https://sum.golang.org/lookup/github.com/monogon-dev/monogon@v0.0.0-20230223122556-665b10937eb8: 404 Not Found\n\tserver response:\n\tnot found: create zip: build/analysis/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/classify.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort_test.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/testdata/README.md: case-insensitive file name collision: \"BUILD\" and \"build\"\n\t[Truncated: too long.]\n\nChange-Id: If5947be74f7dfcf4ba4bd79c4dc37589f324b891\nReviewed-on: https://review.monogon.dev/c/monogon/+/1223\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d8290c8082f752f52d0ba1c765f668e2992bc5d4",
      "tree": "98c8dc9875488ba03314ef660406ae70909501c8",
      "parents": [
        "6af91052f33c881c402012038c2f3fd8ee254cdd"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Mar 06 18:31:49 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 07 11:02:15 2023 +0000"
      },
      "message": "t/go: add netlink patch for permanent HW address\n\nThis adds a patch to the netlink dependency which adds a field\ncontaining the permanent hardware address to the Link struct which\ncan be used to reliably identify interface hardware addresses even\nif they have been changed for operational reasons.\n\nThe patch has already been sent upstream at\nhttps://github.com/vishvananda/netlink/pull/850 but has not been\nreviewed or accepted.\n\nChange-Id: I9562d32643f5b3a5dcf9f1930b951b75ccc30da1\nReviewed-on: https://review.monogon.dev/c/monogon/+/1228\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6af91052f33c881c402012038c2f3fd8ee254cdd",
      "tree": "62dc7cfe94006831ff3d81eea1d96d76a90827ba",
      "parents": [
        "0f1939a2f68eb848cca7971808dc451528b47b4f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 06 10:47:29 2023 +0000"
      },
      "message": "BUILD: add stub_shebangs to py_runtimes for NixOS\n\nThis is needed as otherwise NixOS bazel will happily use hardcoded\n/nix/store paths here.\n\nChange-Id: Ia32268fd6cb249c05c0ec8f550d761444616adbf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1147\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "0f1939a2f68eb848cca7971808dc451528b47b4f",
      "tree": "390d92222a1ce1ebefce752329c6f24ff36aae2e",
      "parents": [
        "665b10937eb85c5602f34b3195dbeece066b4247"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:10 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 02 12:05:24 2023 +0000"
      },
      "message": "third_party/sandboxroot: regenerate, add patch tool\n\nChange-Id: Idf6ef8c38f9cd2afea67230a6d60fe37258eaf13\nReviewed-on: https://review.monogon.dev/c/monogon/+/1144\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "665b10937eb85c5602f34b3195dbeece066b4247",
      "tree": "195975f290b949200abc69796ae40e7563a03bee",
      "parents": [
        "7448f28cad048a5a7c2fad432dbe31ef91a73867"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:17 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 12:25:56 2023 +0000"
      },
      "message": "third_party/qemu: fix tracetool-cli invocation\n\nThis makes the call actually go through the py_binary wrapper instead of\nthe source, making sure we execute with whatever shebang line is\nappropriate per rules_python and not whatever happens to be in the\nscript already.\n\nChange-Id: I1c12faef897ecae8c5f7621f34e113eea5db0a69\nReviewed-on: https://review.monogon.dev/c/monogon/+/1145\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7448f28cad048a5a7c2fad432dbe31ef91a73867",
      "tree": "17581107a23c8b0002b33b44015ba90ab0a886bf",
      "parents": [
        "9eb903d18540192d22c626e80745eed0630930e6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:15:51 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:37:40 2023 +0000"
      },
      "message": "cloud/equinix/wrapngo: implement configurable parallelism\n\nSetting this to a value higher than \u00271\u0027 is beneficial in case we want to\ncall some fast endpoints while we\u0027re executing a long-standing hardware\nreservation list call. This can happen in the Equinix Shepherd.\n\nChange-Id: I57cf416de1e5fe23cb28248ddf8bb1b2ad73b6a8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1134\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "9eb903d18540192d22c626e80745eed0630930e6",
      "tree": "55c135fe20ef12988b4efa992d30fa89d2e1edf7",
      "parents": [
        "1038313b7a4f929dcd942a3ac24d371877ee8ce7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:28:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:01:29 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: implement initializer parallelism\n\nThis adds a flag which allows starting multiple initializers in\nparallel, sharing the same SSH key/config and API rate limiting.\n\nChange-Id: I415e855d9b649fac258e25d884cac17f895c91c0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1135\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "1038313b7a4f929dcd942a3ac24d371877ee8ce7",
      "tree": "7d0233b57288509591d1df4f4d5d3ab3e3ac595e",
      "parents": [
        "48e9bab7237448c7fabfef1721f2ac48e6b77822"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:39:45 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:20 2023 +0000"
      },
      "message": "cloud: rename ShepherdInstall to ShepherdAccess and clean up other \u0027installation\u0027 references\n\nShepherdInstall should\u0027ve been called ShepherdAgentStart from the\nbeginning, but got named incorrectly because of a momentary lapse of\nreason.\n\nInstead of doing a rename, we widen that Process to anything that\ninvolved the Shepherds directly accessing the underlying provider\nmachines, be it starting the agent, trying to fix the machine, or\nrebooting a machine. This wide meaning makes sure no two shepherds work\non the same machine ever, regardless of the actual workflow each one is\nperforming.\n\nChange-Id: Ic247919d1bcf1c5ec9fcf7125f17b90413068ed5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1138\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "48e9bab7237448c7fabfef1721f2ac48e6b77822",
      "tree": "165b4e9b78acdbbd4ac0521721acfed1f1dad578",
      "parents": [
        "c8fc902aab9fb7a00a4241ebd31df31b00d9a1d1"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:28:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:14 2023 +0000"
      },
      "message": "cloud/bmdb: add up/down migration test\n\nThis isn\u0027t very exhaustive, but it\u0027s enough to catch migration issues\nwhich we already had.\n\nChange-Id: Ie26b7646bb8b051a613e75cb69a1708f9288a0cc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1137\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "c8fc902aab9fb7a00a4241ebd31df31b00d9a1d1",
      "tree": "ac814e6133006b3d0617d33ad05c67dae6c9ffb6",
      "parents": [
        "7762831b4c4d68f77bdc9fbf1f812390d970a4b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:28:12 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:14 2023 +0000"
      },
      "message": "cloud/bmdb: always setup default migration source, even if we\u0027re not migrating on startup\n\nChange-Id: I05501d1d04e7c19e766dad9cad84b62ad9571618\nReviewed-on: https://review.monogon.dev/c/monogon/+/1136\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7762831b4c4d68f77bdc9fbf1f812390d970a4b3",
      "tree": "bc89893327ed28301aaf53cfb31560ba56e39db7",
      "parents": [
        "9e7875c98f78c2ee0419c043211785159e1539de"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:33:22 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:45:38 2023 +0000"
      },
      "message": "cloud/bmaas: implement webug\n\nWebug (pronounced: /wɛbʌɡ/, not /wiːbʌɡ/) is a web debug interface for\nBMDB, inspired by the great web debug interfaces of old.\n\nIt uses the new BMDB reflection API to access most\nmachine/tag/work/backoff information, plus sqlc queries to access\nsession information.\n\nChange-Id: If0e65b6fc33ad92baef9c6d98333f90a02efa1b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1132\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9e7875c98f78c2ee0419c043211785159e1539de",
      "tree": "d71d9bc3ee2759aba5e0098c7d6523aef14a2752",
      "parents": [
        "caa1208a769351f70e55369e908fa3e823f72090"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 13:55:58 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:45:29 2023 +0000"
      },
      "message": "bmdb/reflection: expose Tags as pointers, as its methods have pointer receivers\n\nChange-Id: I6ab972f37735409e089b8a3c3c088375c4b210c6\nReviewed-on: https://review.monogon.dev/c/monogon/+/1133\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "caa1208a769351f70e55369e908fa3e823f72090",
      "tree": "47f3c8bd9174b3b610e07f0e3b0cd2a62151e1a8",
      "parents": [
        "6a058e7e0c84306cb0470f2641102a284f98fc0b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 16 14:54:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/manager: init\n\nThis adds implementation managing Equinix Metal server lifecycle as\npart of the BMaaS project.\n\nCo-authored-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nSupersedes: https://review.monogon.dev/c/monogon/+/990\nChange-Id: I5537b2d07763985ad27aecac544ed19f933d6727\nReviewed-on: https://review.monogon.dev/c/monogon/+/1129\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6a058e7e0c84306cb0470f2641102a284f98fc0b",
      "tree": "13b4ef9a4db8275a51bbaa5026f5d926efe67b3f",
      "parents": [
        "424e201b27ce334714d870c0ad0c6e9046a14981"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Nov 30 18:03:07 2022 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/wrapngo: init\n\nThis adds a wrapper extending packngo for use with the upcoming\nShepherd implementation.\n\nSupersedes: https://review.monogon.dev/c/monogon/+/989\nChange-Id: I55d1a609a8b5241704c5fe4ce8c2294122cfa0c8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1128\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "424e201b27ce334714d870c0ad0c6e9046a14981",
      "tree": "4aa923d5e9ae25fec2a437967c8d97f301485443",
      "parents": [
        "de4e841682bb0afbd4865f9e24239f3e228e643f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:31:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/bmaas: implement BMDB reflection\n\nThis is the foundation for runtime introspection of BMDBs, to be used in\ndebug and operator tooling.\n\nChange-Id: Id1eb0cd1dfd94c5d4dafde82448695497525e24f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1131\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "de4e841682bb0afbd4865f9e24239f3e228e643f",
      "tree": "84e64deb0bb74e4177d8094937d618026d438d49",
      "parents": [
        "e643fd65d3ad308054f064bf0df7f95fc21af4d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:28:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 10:24:02 2023 +0000"
      },
      "message": "cloud/bmaas: clean up bmdb package\n\nEverything living in sessions.go made this a bit unreadable.\n\nWe also drive-by add some extra metadata fields to Connection. This will\ncome in handy in an upcoming change.\n\nChange-Id: Ibabec9e3bd0b29b727638b9450a53ba28c33e678\nReviewed-on: https://review.monogon.dev/c/monogon/+/1130\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e643fd65d3ad308054f064bf0df7f95fc21af4d9",
      "tree": "ac00c6230b05da3f6df1c6d38c52ec6a7e6e5826",
      "parents": [
        "1cf17953163089f6b90d0922bff0994e06c95e29"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 14 00:01:38 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 16 12:09:02 2023 +0000"
      },
      "message": "c/l/sinbin: init\n\nThis adds a sinbin library, useful for temporarily timing out some\nprocessed elements in-memory. We\u0027ll use this in the Equinix Shepherd\nprovisioner loop to keep note of bad hardware reservations.\n\nChange-Id: If68b2c0856364cde70cee68729cfc0203c5a8446\nReviewed-on: https://review.monogon.dev/c/monogon/+/1127\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1cf17953163089f6b90d0922bff0994e06c95e29",
      "tree": "cfcef14d8530761d9b0a18adf266262898ede7c6",
      "parents": [
        "d026b37c2a27d414821f860ccd0effb522be1ce4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 17:41:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 14 10:03:25 2023 +0000"
      },
      "message": "pkg/bootparam: add bootparam pkg\n\nThis adds the bootparam package which can marshal and unmarshal the Linux\nkernel command line into boot parameters and a rest section passed to\ninit.\n\nThis is a very quirky format, thus there is a fuzz testing harness\nagainst the reference implementation from the kernel included to verify\ncorrectness.\n\nA set of weird edge cases is rejected by Unmarshal instead of parsing\nto nonsensical data as the reference implementation does to save on\ncomplexity in the parser.\n\nChange-Id: I6debfa67e69ae8db4e0356f34ecb127ea27d18de\nReviewed-on: https://review.monogon.dev/c/monogon/+/1125\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d026b37c2a27d414821f860ccd0effb522be1ce4",
      "tree": "223512570e3c0857d7f34e3ee588d21163b213b0",
      "parents": [
        "a01b4ee048e27dc05452912d25d6f718fb263c61"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 19:38:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 21:01:06 2023 +0000"
      },
      "message": "m/n/build: fix incorrect device number\n\nThe device node major number for our console device is wrong.\nThe major number for the console device is 5, not 1 as seen in\nDocumentation/admin-guide/serial-console.rst.\n\nI stumbled upon this when looking at this spec as a reference for an\nissue with an unrelated device.\n\nChange-Id: Icbae264d2b4a5dc8770cb1e15e33d56c504a50c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1126\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a01b4ee048e27dc05452912d25d6f718fb263c61",
      "tree": "0634e398a88a63801763554a0a55af102ea13bf1",
      "parents": [
        "3ccf69641de62c68a5740d8194d4f0776052dd63"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Mon Feb 13 12:49:50 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Feb 13 12:04:07 2023 +0000"
      },
      "message": "third_party/sandboxroot: fix base URL and bump\n\nThis only ever worked by accident.\n\nChange-Id: Ic669081b8a4ad5f378d1e199b97674db4d0ec7a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1123\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3ccf69641de62c68a5740d8194d4f0776052dd63",
      "tree": "8a35f1aa01076a35890862f90c186da7fe4ebeda",
      "parents": [
        "d266812c63eb25cf9a586297785add76f5b1f073"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jan 23 17:01:40 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Feb 09 12:00:00 2023 +0000"
      },
      "message": "go/net/psample: init\n\nThis adds a minimal golang implementation facilitating network packet\nsampling based on \u0027psample\u0027 kernel module.\n\nMetropolis kernel configuration was modified both in order for this\nchange to be testable in a ktest, as well as to make sure Metropolis\nwill be able to run the included code.\n\nChange-Id: Ie6a4721455f26644b6be01aa6190cf87f21355f3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1102\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d266812c63eb25cf9a586297785add76f5b1f073",
      "tree": "6ff59931dce0fefd49e0b6af20e732eef2a8968b",
      "parents": [
        "f220b2923c0d8bcf760d1c86af51041371633617"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 15:15:59 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Feb 02 13:59:14 2023 +0000"
      },
      "message": "tools/bazel: remove .bazelrc.sandbox from checksum\n\nThis avoids recreating the sandbox on the second run on a clean\ncheckout. The file is autogenerated by tools/bazel, if the user\nchooses to modify it manually, that\u0027s on them.\n\nShould fix half of https://github.com/monogon-dev/monogon/issues/172.\n\nChange-Id: Id43d4c351f69c78ff7a4cd25b5bef84a632ff2b2\nReviewed-on: https://review.monogon.dev/c/monogon/+/1116\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f220b2923c0d8bcf760d1c86af51041371633617",
      "tree": "21a7b7915b25f2ee619de0973720068da9f72072",
      "parents": [
        "68961c3e99c5045bd50f6b91fca9469e47475f2e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 31 16:52:53 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Feb 01 18:08:48 2023 +0000"
      },
      "message": "*: use a vishvananda/netlink fork by Monogon\n\nThis switches Metropolis over to a Monogon-maintained fork of\nvishvananda/netlink.\n\nThe package was modified to support the \u0027sample\u0027 action in packet\nfilters. This is required for the upcoming change enabling network\nanalytics through local packet capture.\n\nMetropolis\u0027 dhcp4c had to be modified to match the vishvananda/netlink\nversion referenced by this change.\n\nChange-Id: I2dd0799a009618f8543904252b85ff63ddd560c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1109\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "68961c3e99c5045bd50f6b91fca9469e47475f2e",
      "tree": "9e6f72f6335dc202d34be3ff239219ab9dd5cb8b",
      "parents": [
        "d6397766915e4427f74d59656718acffc92d872c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 13:53:08 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 14:16:16 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nChange-Id: I2ecae3b86b310dc74e11cca28841dc2ee2210a85\nReviewed-on: https://review.monogon.dev/c/monogon/+/1111\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "d6397766915e4427f74d59656718acffc92d872c",
      "tree": "a3ca53093fb6f0caa39b5b252c1530a76ce64a47",
      "parents": [
        "52c261e956bc48b538f15b64d89a39f5f567ceaa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 18:16:07 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:56:09 2023 +0000"
      },
      "message": "build/ci: add \"go mod tidy\" step\n\nThis ensures that go.{mod,sum} are up to date and that there\naren\u0027t any missing placeholders.\n\nChange-Id: I2ebc60a8f43f62bf8b70df66e68fafd7026b6148\nReviewed-on: https://review.monogon.dev/c/monogon/+/1107\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "52c261e956bc48b538f15b64d89a39f5f567ceaa",
      "tree": "def8c9282d45ee2b59554cb8f0ab6a1f40d989d4",
      "parents": [
        "506b88652ae57ca4f85a51b9f51641bb50d875af"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 18:13:51 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:56:09 2023 +0000"
      },
      "message": "cloud/agent/api: add missing placeholder\n\nChange-Id: Ia21dc413264d1b4d772869d6db1aff25e2a8e586\nReviewed-on: https://review.monogon.dev/c/monogon/+/1106\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "506b88652ae57ca4f85a51b9f51641bb50d875af",
      "tree": "3c9f18d07b1c925a814a090b9d446dd18e457d88",
      "parents": [
        "97f212c1d25424a099b6a2ff52e0464a2755f11e"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 14:54:13 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:13:14 2023 +0000"
      },
      "message": "commentwrap: ignore lines with URIs in them\n\nChange-Id: Iad0234ff59d74845bda35213deecf9719439d1aa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1105\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "97f212c1d25424a099b6a2ff52e0464a2755f11e",
      "tree": "f5da74b0ac98113b684f51c98946d405fbeacb77",
      "parents": [
        "6294854ace5e06e3b731878544eb39f5351de66d"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 21 19:06:34 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 24 16:16:59 2023 +0000"
      },
      "message": "build/ci: mark supervisor and e2e tests as flaky\n\nChange-Id: I56459eac238d3ecc5c8429226cab1c32ceb2e0c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1088\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6294854ace5e06e3b731878544eb39f5351de66d",
      "tree": "1281485cc669a4d77f9bc87684fb5539d0595e8a",
      "parents": [
        "7eeec65b849695e7bb1be072e6911694b8a02f54"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 13:28:44 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 24 13:39:54 2023 +0000"
      },
      "message": "c/agent: add hardware report\n\nThis adds an agent which currently just gathers hardware information and\ndumps it to stdout.\n\nChange-Id: Idb8518d3e40096dd3dd881808bc6ac98082083a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1067\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "7eeec65b849695e7bb1be072e6911694b8a02f54",
      "tree": "affecceb6edb6eb561a0970eb762684930b5e53e",
      "parents": [
        "a9580a7970010d14ccbfe86c22483eeae9b7c05c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 20 21:16:08 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 23 11:03:52 2023 +0000"
      },
      "message": "third_party/sandboxroot: stabilize repo URLs\n\nMetalink output is not stable, pin mirrors instead. We need to\nset up our own caching proxy next, but this will do for now.\n\nChange-Id: Ibc6ea9672890d88022a9310afb92db824226351d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1087\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a9580a7970010d14ccbfe86c22483eeae9b7c05c",
      "tree": "237a68cba739f4cc29b97bacd602412336a2372c",
      "parents": [
        "60a00a9b08b416be8a29a5d2a19f44e3ab3192d5"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jan 12 14:44:35 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Jan 23 09:53:32 2023 +0000"
      },
      "message": "c/bmaas/bmdb: implement backoff and history\n\nThis augments the existing Work mechanism with a Fail outcome/method\nwhich allows insertion of a machine \u0026 process backoff until a deadline\nexpires.\n\nWe also add a history/audit table which contains information about the\nwork history of a machine - when some work started, finished, failed or\ngot cancelled.\n\nChange-Id: If890a412977c1d3c7ff3baa69987fb74932818a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1086\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "60a00a9b08b416be8a29a5d2a19f44e3ab3192d5",
      "tree": "82c4213a532cd68c6939ebe2b469d0e331443a67",
      "parents": [
        "2aa8b184fcbc713d99bb7c3d868d1ab9df6f5b71"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 03 13:45:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Jan 23 09:53:32 2023 +0000"
      },
      "message": "c/bmaas/bmdb/model: split query files\n\nThis was starting to become slightly unwieldy.\n\nChange-Id: I8f9d63ff6f844f1452fca2a98d253a9582a3ee8d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1085\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "2aa8b184fcbc713d99bb7c3d868d1ab9df6f5b71",
      "tree": "6ee292c36be2008e8d2fc4d7af23157c17c0c981",
      "parents": [
        "bc93c2b50690e66712d80e4da5837554588ca065"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 23:31:43 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "third_party/rust: update rules_rust and deps\n\nThis is required for rules_rust to work with CC toolchains.\n\nChange-Id: I15f20c7bde09697fda248f7107be8bcd00e24d57\nReviewed-on: https://review.monogon.dev/c/monogon/+/1073\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bc93c2b50690e66712d80e4da5837554588ca065",
      "tree": "68842095e93b11649cdc23da3bb4a6ef24f9dc8a",
      "parents": [
        "e1ebf729194f3673ea0638f0aceb90cb70de23aa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 13:12:23 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: migrate to CC toolchains and Bazel 5.4.0\n\nChange-Id: Iff3c0ddda4413dd0c5fa657a5b7813223e98611e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e1ebf729194f3673ea0638f0aceb90cb70de23aa",
      "tree": "a50df2419e2826889a14781534bdace22cee732b",
      "parents": [
        "e2a302a9062d3ebfc33ad83dd382653e067ca009"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 08 14:18:15 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "README.md: improve developer setup instructions\n\nChange-Id: I3bd188efe774967d3aea512a2d5eb29d0114eafd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1069\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e2a302a9062d3ebfc33ad83dd382653e067ca009",
      "tree": "55165c3da49a1f7b4604c4db85b59bb305011718",
      "parents": [
        "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 15:39:18 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "metropolis/test/launch: convert :launch to a test\n\n\"bazel run\" simply executes the binary outside the sandbox, so swtpm\nand other dependencies from the sandbox sysroot won\u0027t be available.\n\nIf swtpm is installed on the host, running the _bin target still works,\nbut it\u0027s better to point contributors to something that works\nout of the box.\n\nThis is a temporary workaround. Tests have timeouts and take the global\nBazel server lock. The correct solution is a static swtpm build\nwhich can run outside the sandbox.\n\nChange-Id: Icf7bf5cc44825df676d37a75ea9c1e135de14fef\nReviewed-on: https://review.monogon.dev/c/monogon/+/1078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b",
      "tree": "02ead12ee79b10abfdd624071802acc771f6bb3e",
      "parents": [
        "bffdda85d7750c9a9a34289a79281edeae1d73ef"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 06 19:57:37 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: bring our own sandbox root\n\nThis change removes the build container and replaces it with a\nBazel-built Fedora 37 sysroot which is bind-mounted into the Bazel\nsandbox using --sandbox_add_mount_pair. The tools/bazel wrapper script\nautomatically (re-)generates the sysroot when needed.\n\nBoth Bazelisk and Bazel\u0027s native wrapper automatically run the\ntools/bazel script, which means that our build should now work without\nextra steps on any machine with a working Bazelisk setup and unpriv ns.\n\nThis fixes all kinds of weirdness caused by the previous podman setup\n(\"bazel run\"/container pushes, log access, weird podman bugs,\nbreaking the IDE plugin for any non-Monogon workspaces...).\n\nUsing the sandbox hash as an action var also ensures that the cache\nis invalidated whenever the ambient environment changes. Previously,\nBazel did not invalidate build steps when any host dependency changed.\nTo my knowledge, this was the only remaining cause for stale builds.\n\nIt also means we cannot depend on the host toolchain since it\nwon\u0027t be accessible in the sandbox, and anything that inspects the\nhost during analysis stage will fail. This currently means that\nrunning on a non-Fedora host won\u0027t work - we fix this next.\n\nAll RPMs are pinned and the sysroot is fully reproducible.\n\nOnce we upgrade to Bazel 5.x, we can take it further by enabling\n--experimental_use_hermetic_linux_sandbox and fully remove the\nremaining host paths from the sandbox for full hermeticity.\n\nIn a follow-up, we can clean up the CI image to only contain the\nminimum dependencies needed for Bazelisk and the agent.\n\nExisting IntelliJ users need to remove the -Dbazel.bep.path flag\nfrom their VM options.\n\nHandbook/Rust rules are disabled temporarily to keep CI green\n(requires a more recent rules_rust version).\n\nChange-Id: I1f17d57d985ff9d749bf3359f259d8ef52247c18\nReviewed-on: https://review.monogon.dev/c/monogon/+/1033\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bffdda85d7750c9a9a34289a79281edeae1d73ef",
      "tree": "09bd64e59e1ed5a2dd3db9e4336b449158ba8fa0",
      "parents": [
        "6c9535b36d033ac647b1cf4fca2a29e8c260a79f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 05:00:36 2023 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 19 17:32:52 2023 +0000"
      },
      "message": "m/p/scsi: add SCSI package\n\nThis adds a SCSI package to interact with SCSI devices.\nIt implements a subset of commands from the SPC-5 and SBC-4 standard\nuseful for discovery and health assessment.\nA follow-up will add SAT (SCSI-to-ATA translation) support.\n\nChange-Id: I7f084d26f11d9c951f51051040160e351cf5594c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1066\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6c9535b36d033ac647b1cf4fca2a29e8c260a79f",
      "tree": "1ede72b62493211ebda15975d29edcfea83af3f1",
      "parents": [
        "be326c24068009a0f8aa039f1fb5a004fbacae6a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 03 13:17:42 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jan 18 10:09:29 2023 +0000"
      },
      "message": "c/bmaas/bmdb: implement OS installation flow\n\nThis adds two new tags: OSInstallationRequest and\nOSInstallationResponse. It also implements interacting with these tags\nfrom the agent side.\n\nThis doesn\u0027t yet implement any admin/user-facing API to actually request\nOS installation, for now we just exercise this in tests.\n\nChange-Id: I2e31a8369a3a8670bb92bcacfb8231a0d5e1b9fd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1011\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "be326c24068009a0f8aa039f1fb5a004fbacae6a",
      "tree": "04bb044ad4aa292ac51ba7e8a402b519ad266fe6",
      "parents": [
        "acfad5b4d130084d58235a1eae54f4c51f936e44"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 20:42:59 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 21:45:48 2023 +0000"
      },
      "message": "*: add bazeldnf dependency\n\nThis adds https://github.com/rmohr/bazeldnf, a pure-Go RPM dependency\nresolver. Requires a dummy import for proper Go dependency resolution.\n\nChange-Id: I4d4e7716bfd7da7e3157f06dc1f1612c9e39c17e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1028\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "acfad5b4d130084d58235a1eae54f4c51f936e44",
      "tree": "ecfbf0e9635fa4a6ef49b524c914834eb195f986",
      "parents": [
        "af5086bfe505940699203d158ffa89307f28ebde"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:05:25 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 13:54:47 2023 +0000"
      },
      "message": "m/test/launch/cluster: add pcap dump\n\nDump all network traffic by default to help debug failed tests.\n\nChange-Id: I5466639fa00501373690bd95452b85b61fb5b172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1076\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "af5086bfe505940699203d158ffa89307f28ebde",
      "tree": "3ec03923903f2a5f9262f1b9ee79b6e80158520b",
      "parents": [
        "20a036ee94d0999ab632de4f9c2d1feff192d72b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:12:42 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:44:48 2023 +0000"
      },
      "message": "m/test/launch: print qemu options at startup\n\nChange-Id: I35b234301e7c06a910127a4cf2c1573d23af45a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1077\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "20a036ee94d0999ab632de4f9c2d1feff192d72b",
      "tree": "47b90debe3873ee1d8075ffac1995f3769bdae31",
      "parents": [
        "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 00:17:19 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:51 2023 +0000"
      },
      "message": "Fix some typos/grammar/variable shadows\n\nChange-Id: I43e78ec7931399c4f60f431d659953f084db7172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1074\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a",
      "tree": "f0b4cd6185a5d55273b33d0d5952db35204a86f7",
      "parents": [
        "94695969085cb2df182f58ee06443c5d7cf233ec"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 08 16:57:28 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:40 2023 +0000"
      },
      "message": ".bazelrc: remove hardcoded resource constraints\n\nLet Bazel figure out the appropriate number of jobs and RAM by itself.\nThis should improve default build performance on large machines.\n\nOne possible caveat: we use genrules that consume excessive CPU\non their own (i.e. edk2, kernel...), and removing the jobs limit\nmight cause worse resource contention in some scenarios - but\nfrom limited testing, this does not appear to be a problem.\n\nChange-Id: Ib96d7953b6530fe202f8b7b0aa160cc7e2f2c35c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1070\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    }
  ],
  "next": "94695969085cb2df182f58ee06443c5d7cf233ec"
}
