)]}'
{
  "log": [
    {
      "commit": "3b5a917c5a1ac49acad50eeacb5cf275efc3631e",
      "tree": "1da59c672acf3b68aab81fae38c6b6e5929b82a2",
      "parents": [
        "988403453448d27f6df6eea0a232e97c2a2e739b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 13:33:52 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 12:44:02 2024 +0000"
      },
      "message": "treewide: initialize empty structs with var\n\nChange-Id: I72d3993eaf5fe57c77b1dda8218e36a8cc11813d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3108\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "885668aeee35ec2644490912f91d81d4b55c3c3f",
      "tree": "87fd029792e55a3a95bce9dc56f14a271569a76f",
      "parents": [
        "073e7c4693e902852e4fa56f3000d60efee10e91"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Apr 19 00:01:06 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: remove comparison with boolean constant\n\nChange-Id: Iae5abb2a470865f0a831ed770b16eb439589d012\nReviewed-on: https://review.monogon.dev/c/monogon/+/3008\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d5f851bb477638436826adec756fe562db526865",
      "tree": "d981b1c62d613b45fb55023da289098d7e377705",
      "parents": [
        "69fec522d5db79d07bb1f227c2ab39c57fdf2831"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 14:59:37 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:14 2024 +0000"
      },
      "message": "treewide: replace error comparisons and assertions with errors.Is\n\nChange-Id: Id2424eb155f2c6842c72c5fafd124d428ef901f2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2994\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "36bde9cd3407402ef6e0b4d10b038a4020bdf295",
      "tree": "df868c44f56171a2dfef74f844848a218820846d",
      "parents": [
        "87bbf7e4b41500316e93f98bee0564eb2cfb0366"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@jschaer.ch",
        "time": "Tue Mar 19 15:05:33 2024 +0100"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@jschaer.ch",
        "time": "Tue Mar 19 15:25:01 2024 +0000"
      },
      "message": "m/pkg/event/memory: simplify and fix implementation\n\nThe old implementation is very complicated and has multiple concurrency \nbugs. One of these bugs is already described in a block comment. Another \nbug is that if a watcher is closed while being updated, `update` will \ntry to send on the closed channel `deadletterSubmitC`, which panics.\n\nThis changes it to a much simpler implementation.\n\nIt could be further simplified it by dropping the Sync flag entirely, \nwhich is currently unused. Or we could use the buffered channel also for \nSync values, and just skip dropping previous values. This still ensures \nthat all values are delivered, but changes the semantics slightly: Set \nwould no longer block until Get is called, if there is space in the \nchannel buffer.\n\nAdditionally, there is no longer a memory leak when a watcher is \nrepeatedly closed and readded, but Set never called. I added a test for \nthis.\n\nFixes #127\n\nChange-Id: I2775a36cf2d097c5961a09a387428774a068e1f5\nReviewed-on: https://review.monogon.dev/c/monogon/+/2875\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a004576acfd826bf8a2a3371a3fde787afb9629b",
      "tree": "09a029faa89414ea4e7ceaaaa4a424e2ea20f3ae",
      "parents": [
        "9933ef0d18cf42a604fc7ed25cec3e05f8ab6368"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jul 20 19:27:41 2023 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Fri Jul 21 12:04:38 2023 +0000"
      },
      "message": "Set flaky\u003dTrue on roleserve_test and memory_test\n\nThese are frequent CI failures.\n\nChange-Id: Ic45f4dcd22bb608bc96da84c9de74faae1f8daab\nReviewed-on: https://review.monogon.dev/c/monogon/+/1953\nReviewed-by: Lorenz Brun \u003clorenz@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": "d13c1c64387ca9a83bb832a3faa5c4b07268d265",
      "tree": "0c0f534db4726e4400486aad25235e8c573d455e",
      "parents": [
        "79a1a8f9dd49afe8e0a2364c4586b8f39525b204"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 30 19:58:58 2022 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Apr 05 10:35:29 2022 +0000"
      },
      "message": "treewide: switch to gomod and bump everything\n\nThis switches version resolution from fietsje to gomod and updates\nall Go dependencies. It also bumps rules_go (required by gVisor) and\nswitches the Gazelle naming convention from go_default_xxx to the\nstandard Bazel convention of the default target having the package\nname.\n\nSince Kubernetes dropped upstream Bazel support and doesn\u0027t check in\nall generated files I manually pregenerated the OpenAPI spec. This\nshould be fixed, but because of the already-huge scope of this CL\nand the rebase complexity this is not in here.\n\nChange-Id: Iec8ea613d06946882426c2f9fad5bda7e8aaf833\nReviewed-on: https://review.monogon.dev/c/monogon/+/639\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@nexantic.com\u003e\n"
    },
    {
      "commit": "8d45a0598ae83b8da89442ce8960e64f065182c7",
      "tree": "76fc262f260152be7be130ed2a078738e03073c2",
      "parents": [
        "52304a8aa84604846e316e28c955b67e68c52f34"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Oct 18 17:24:24 2021 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Nov 03 15:01:37 2021 +0000"
      },
      "message": "m/pkg/event/etcd: implement ranged watchers\n\nThis adds a new mode of operation to etcd Values/Watchers in which a\nrange of etcd keys is watched for updates instead of a single key.\n\nThis allows the implementation of watching a collection of objects\nstored in etcd for updates, eg. the node state in the Curator.\n\nThis has been implemented within the existing API of Event Values, which\nis likely the biggest contention point of this change. An alternative\nwould be to design a separate API for multi-value use, but this should\nallow us to more easily integrate with the existing code. We make use of\nGo\u0027s options-as-varargs paradigm to not break any existing use of this\ncodebase.\n\nSome behaviour of the Get() operation in ranged context is left\nunderdefined, but none of the expected users of this codebase are\nexpected to depend on this. Once the dust settles a bit, we can attempt\nto formalize this more strongly.\n\nChange-Id: I8f84d74332765e52b9bbec04b626d00f05c23071\nReviewed-on: https://review.monogon.dev/c/monogon/+/419\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "68ca5eebd0ccd00a2d60eb42289c64357fb2e83f",
      "tree": "5706f5b4fa8dc44775dbabe24cd577f1d37a0422",
      "parents": [
        "93bba15a0059da200a5d09a2bd7ec5ed5a667c60"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@nexantic.com",
        "time": "Tue Apr 27 16:09:16 2021 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@nexantic.com",
        "time": "Tue May 11 12:09:33 2021 +0200"
      },
      "message": "m/pkg/event: move MemoryValue to subpackage\n\nThis keeps metropolis/pkg/event as a pure interface package, and\nmoves the memory-backed implementation to a subpackage.\n\nTest Plan: Refactor, coevered by tests.\n\nX-Origin-Diff: phab/D764\nGitOrigin-RevId: 1337bf55a7752293791b3efe8648bbf5f6e6e9e1\n"
    }
  ]
}
