{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":25163509,"defaultBranch":"master","name":"ganeti","ownerLogin":"ganeti","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-10-13T15:03:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8798225?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1684841346.75651","currentOid":""},"activityList":{"items":[{"before":"31e5194a9fa24053defce12d58f8fc5c6fc9c907","after":"fd9a72695fcb87af244076b1db3086b60f6aed7c","ref":"refs/heads/master","pushedAt":"2024-05-18T20:46:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Fix minor hotplug documentation issue\n\nThis fixes a minor docs / example issue. Fixes #823","shortMessageHtmlLink":"Fix minor hotplug documentation issue"}},{"before":"4906e46ca6531cc31d56902b9ba7011cbdc57a32","after":"31e5194a9fa24053defce12d58f8fc5c6fc9c907","ref":"refs/heads/master","pushedAt":"2024-05-17T14:06:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"switch name- and ip-checking to opt-in (#1589)\n\nAs often discussed (at Ganeticons etc.) many people like to just create\r\ninstances without the need to resolv their name via DNS or /etc/hosts.\r\nSo a common boilerplate in the add command is to use `--no-name-check`\r\n`--no-ip-check`. This commit inverts the logic to an opt-in model.\r\n\r\nDuring changing the code, I discovered an undocumented value of the\r\ninstance's NIC: `ip=auto`, which resolves the instance name and sets the\r\nIP to the result. Until now, I was not aware of this.\r\n\r\nFix the QA by blind guessing with this idea: before the name-check was\r\nimplicitly enabled. Now it must be explicitly enabled via extra CLI option.\r\n\r\nSigned-off-by: Sascha Lucas ","shortMessageHtmlLink":"switch name- and ip-checking to opt-in (#1589)"}},{"before":"529a73222f9f3b747ec55f1301dd78b8a62f1a38","after":"4906e46ca6531cc31d56902b9ba7011cbdc57a32","ref":"refs/heads/master","pushedAt":"2024-05-16T18:58:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Make sure QA does not fail on empty hypervisor parameters\n\nThe fake HV does not come with any hypervisor parameters, which breaks\nthe QA suite when parsing the YAML output of `gnt-instance info $instance`.\n\nThis commit adds a safety check to catch this corner case.\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Make sure QA does not fail on empty hypervisor parameters"}},{"before":"6d90736d5f6e136c8b357f41d4ddb022215d6782","after":"529a73222f9f3b747ec55f1301dd78b8a62f1a38","ref":"refs/heads/master","pushedAt":"2024-05-15T20:41:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"replace simplejson with pythons buildin json\n\nThis commit replaces the simplejson library with the python build-in json module.\nIn the newer Python versions starting from 3.2, there is no reason to prefer simplejson to the build in\nSee https://bugs.python.org/issue7451\n\nTo deal with bytes, which build-in json cannot handle by default, a ByteEncoder has been implemented.\nSee #1427\n\nThis removes simplejson as external dependency.\n\nSigned-off-by: codefritzel ","shortMessageHtmlLink":"replace simplejson with pythons buildin json"}},{"before":"0e45a62e54a78d5f36da48ba14593c2d23f98925","after":"6d90736d5f6e136c8b357f41d4ddb022215d6782","ref":"refs/heads/master","pushedAt":"2024-05-13T19:43:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"fix MNode in gnt-node list for >= Ubuntu-22.04\n\nGaneti has used `Active` memory from `/proc/meminfo` to get how much\nmemory a hypervisor is using (shown in `gnt-node list` fild `MNode`). As\nit turns out by upgrading from Ubuntu-20.04 to 22.04 the included Linux\nkernel does no longer satisfy this assumption. There is a big\ndifference:\n\n```\nroot@node:~# grep Active: /proc/meminfo\nActive: 2019624 kB\n\nroot@node:~# free -k\n total used free shared buff/cache available\nMem: 1055942572 164543996 890356300 10728 1042276 887191112\n```\n\nActive memory shows approx. 1.9 GiB, while in reality 157 GiB is used.\nAnd while at it, switch free memory calculation to newer metric\n`MemAvailable`[1], introduced in Linux-3.14.\n\n[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773\n\nSigned-off-by: Sascha Lucas ","shortMessageHtmlLink":"fix MNode in gnt-node list for >= Ubuntu-22.04"}},{"before":"52f7d5b21cff4b910abac092fd1bf04242a924f8","after":"0e45a62e54a78d5f36da48ba14593c2d23f98925","ref":"refs/heads/master","pushedAt":"2024-05-07T21:23:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"fix pydoctor conf\n\nIn commit da6aba31874a87e81280c41f65541b9cb780827a Zachary N replaced\nbroken epydoc by pydoctor as a drop in replacement. However the supplied\nconfiguration file did not work. Fix it according the upstream\ndocumentation[1]. After years we can build now basic python API docs and\npublish them on docs.ganeti.org.\n\n[1] https://pydoctor.readthedocs.io/en/latest/help.html#configuration-file\n\nSigned-off-by: Sascha Lucas ","shortMessageHtmlLink":"fix pydoctor conf"}},{"before":"a28c51a87ccbeca80b3b48d89b9d0d39fba5c286","after":"52f7d5b21cff4b910abac092fd1bf04242a924f8","ref":"refs/heads/master","pushedAt":"2024-05-02T16:17:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"drop distutils\n\ndistutils was only used to check if the pyopenssl is greater than 0.7.\npackageing.version.parse is now used for the version comparison.","shortMessageHtmlLink":"drop distutils"}},{"before":"a881f5117d89fed9cfa038588948fc54b07f91ce","after":"a28c51a87ccbeca80b3b48d89b9d0d39fba5c286","ref":"refs/heads/master","pushedAt":"2024-04-12T16:00:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Rework documentation\n\nThis reworks large parts of the documentation:\n\n- drop dated/wrong information\n- update and enhance installation guide\n- extend the administration guide\n- remove duplicate content\n- restructure index page\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Rework documentation"}},{"before":"9cd307ee20a46e61949bb752d4f4afcdd75d55c1","after":"a881f5117d89fed9cfa038588948fc54b07f91ce","ref":"refs/heads/master","pushedAt":"2024-04-03T16:12:24.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"switch to debian bookwork image","shortMessageHtmlLink":"switch to debian bookwork image"}},{"before":"8bb2178b97105b9bea4a79600991dc0018f87a0c","after":"9cd307ee20a46e61949bb752d4f4afcdd75d55c1","ref":"refs/heads/master","pushedAt":"2024-04-03T16:08:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"use new 'unittest.mock' from standard library\n\ninstead of old 'mock' module","shortMessageHtmlLink":"use new 'unittest.mock' from standard library"}},{"before":"872f6713f2fdf13863b4fbe7b0f2c868a58fb1c7","after":"8bb2178b97105b9bea4a79600991dc0018f87a0c","ref":"refs/heads/master","pushedAt":"2024-03-15T14:48:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Fix flaky GetCmdline() tests in Github Action containers\n\nThe test for utils.GetCmdline() sometimes returns an error because the\nprocess started by subprocess.popen() does not _yet_ return a valid\ncommand line via /proc/$pid/cmdline. This does only seem to happen in\ncontainers running in the Github Actions environment as I was not able\nto reproduce this anywhere else. The \"fix\" is to wait for one second so\nthings can settle.\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Fix flaky GetCmdline() tests in Github Action containers"}},{"before":"dfce61ed7f3f1c0dcda9a2b0070b79b4b6c7b85f","after":"872f6713f2fdf13863b4fbe7b0f2c868a58fb1c7","ref":"refs/heads/master","pushedAt":"2024-03-14T23:21:21.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"master-ip-setup: set master ip as deprecated\n\nThis way it is not used as a source address by the node.","shortMessageHtmlLink":"master-ip-setup: set master ip as deprecated"}},{"before":"f22b5fa1e9a46513e02823654beee02b86139d4d","after":"dfce61ed7f3f1c0dcda9a2b0070b79b4b6c7b85f","ref":"refs/heads/master","pushedAt":"2023-12-18T19:24:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Drop testing against bullseye, add bookworm instead\n\nThe ci-images have been updated to provide Debian Bookworm as stable\nenvironment while the `debian-testing` image has moved on to Trixie.\nThis commit updates the Github Actions workflow accordingly.\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Drop testing against bullseye, add bookworm instead"}},{"before":"dfce61ed7f3f1c0dcda9a2b0070b79b4b6c7b85f","after":"f22b5fa1e9a46513e02823654beee02b86139d4d","ref":"refs/heads/master","pushedAt":"2023-12-18T19:22:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"blah","shortMessageHtmlLink":"blah"}},{"before":"68dc7eddc277f3e84ac3d63b80a151169ff03a2d","after":"dfce61ed7f3f1c0dcda9a2b0070b79b4b6c7b85f","ref":"refs/heads/master","pushedAt":"2023-12-18T16:56:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Drop testing against bullseye, add bookworm instead\n\nThe ci-images have been updated to provide Debian Bookworm as stable\nenvironment while the `debian-testing` image has moved on to Trixie.\nThis commit updates the Github Actions workflow accordingly.\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Drop testing against bullseye, add bookworm instead"}},{"before":"456ea285a7583183c2c8e5bcffe9006ec8a9d658","after":"68dc7eddc277f3e84ac3d63b80a151169ff03a2d","ref":"refs/heads/master","pushedAt":"2023-09-25T16:07:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"kvm_extra supports now spaces (#1713)\n\nThis commit replaces the simple string split with the Python integrated\r\nmethod shlex.split, which is made to split strings like in the shell.\r\n\r\nThis has the result that quoted strings with spaces are no longer split.","shortMessageHtmlLink":"kvm_extra supports now spaces (#1713)"}},{"before":"ea55205d0cf884d455095fb9bfd320c8d12ca827","after":"456ea285a7583183c2c8e5bcffe9006ec8a9d658","ref":"refs/heads/master","pushedAt":"2023-05-28T10:17:36.912Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"Add warning about setting the PVID as instance vlan\n\nAs discussed in #1670 this commit adds a warning to not set the PVID\n(port vlan ID) as an instance VLAN ID. Network equipment might drop\nframes which explicitly have the VLAN ID set which is configured as the\ndefault VLAN ID/port VLAN ID on the network side.\n\nSigned-off-by: Rudolph Bott ","shortMessageHtmlLink":"Add warning about setting the PVID as instance vlan"}},{"before":"8dfab3583fb5e51242db26783621285b6369cc94","after":"ea55205d0cf884d455095fb9bfd320c8d12ca827","ref":"refs/heads/master","pushedAt":"2023-05-25T14:46:42.607Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"move-instance: allow users to empty out NIC parameters\n\nIn #1696, I ended up in a situation where the instance I'm moving had\nboth \"network\" and \"link\" parameters. That seems like a natural\nconfiguration in our cluster, but something move-instance really\ndoesn't like, as it's passing this verbatim to create-instance which\nnaturally freaks out on the contradictory arguments.\n\nInstead of just crashing, detect empty parameters (`not v` is a\nshortcut here) and null them out. This will result in those parameters\nbeing passed as empty to create-instance, or to be more accurate, not\nbe passed at all.\n\nI've been able to fix the crash in #1696 by passing `--net\n0:ip=pool,network=gnt-dal-01,mode=,link=` to move-instance with this\npatch.\n\nI'm not sure it's the right approach though. I'd much rather *not*\nhave to pass `--net` at all, as I actually want to move multiple\ninstances across clusters, and that seems incompatible with `--net`\nfor some reason I cannot currently fathom (but which is possibly\nrelated to this problem).","shortMessageHtmlLink":"move-instance: allow users to empty out NIC parameters"}},{"before":"5e0f0f04c3045036d7d8279061379415a91b4390","after":"8dfab3583fb5e51242db26783621285b6369cc94","ref":"refs/heads/master","pushedAt":"2023-05-25T14:41:24.381Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"optimize move-instance: do not wait for DRBD sync\n\nThis is debatable and a change from the default in create-instance,\nbut I think it makes sense. We're already creating a copy of the VM in\nmove-instance, if `keep_source_instance` is set, of course, but\nalso *while* the migration is happening, in any case. So we shouldn't\nworry too much about the lack of DRBD consistency during the move.\n\nOtherwise this takes twice the time it could normally take, as the\nmove needs to wait for the entire disk to sync. In my tests, it turns\na 17 minutes migration into a ~7 minutes migration, improving\nperformance by a twofold.\n\nNaturally, this could also be made configurable, but I am not sure we\nwant to exactly copy all of the instance creation parameters here, and\nthis one particularly feels like a default that could be improved.\n\nJust like `keep_source_instance` used to be hardcoded, let's start\nwith a hardcoded value and switch it to configurable if people\nactually need to.\n\nCloses: #1702","shortMessageHtmlLink":"optimize move-instance: do not wait for DRBD sync"}},{"before":"093e39caca82c32b9d188bf7db6950a0019bad05","after":"5e0f0f04c3045036d7d8279061379415a91b4390","ref":"refs/heads/master","pushedAt":"2023-04-20T19:19:36.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"saschalucas","name":null,"path":"/saschalucas","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8359898?s=80&v=4"},"commit":{"message":"Merge pull request #1704 from saschalucas/watcher_enhancements\n\ncherry-pick watcher enhancements from attic branch","shortMessageHtmlLink":"Merge pull request #1704 from saschalucas/watcher_enhancements"}},{"before":"b966c23c1db63996690ae56fa5c8d1b5fa9505e2","after":"093e39caca82c32b9d188bf7db6950a0019bad05","ref":"refs/heads/master","pushedAt":"2023-04-07T13:00:35.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"daemon: drop event scheduler\n\nThe main loop event scheduler was introduced with e2be81cf2 (Implement\ntimers in confd, 2009-08-23) to support timed events for ganeti-confd\n(at the time a Python daemon). Since the conversion of confd to Haskell,\nthis asyncore-specific code has been unused and it makes sense to remove\nit as asyncore will be dropped in Python 3.12. Drop all dead code\ntogether with the relevant tests.\n\nSigned-off-by: Apollon Oikonomopoulos ","shortMessageHtmlLink":"daemon: drop event scheduler"}},{"before":null,"after":"e16097b226a7ebee75d434cd545c5a219b0f8478","ref":"refs/heads/deprecation/asyncore","pushedAt":"2023-03-21T10:01:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"daemon: drop event scheduler\n\nThe main loop event scheduler was introduced with e2be81cf2 (Implement\ntimers in confd, 2009-08-23) to support timed events for ganeti-confd\n(at the time a Python daemon). Since the conversion of confd to Haskell,\nthis asyncore-specific code has been unused and it makes sense to remove\nit as asyncore will be dropped in Python 3.12. Drop all dead code\ntogether with the relevant tests.\n\nSigned-off-by: Apollon Oikonomopoulos ","shortMessageHtmlLink":"daemon: drop event scheduler"}},{"before":"114e59fcc9d4a7c82618569f5d6b7389a0f80123","after":"b966c23c1db63996690ae56fa5c8d1b5fa9505e2","ref":"refs/heads/master","pushedAt":"2023-03-17T23:38:42.928Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rbott","name":"Rudolph Bott","path":"/rbott","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13122740?s=80&v=4"},"commit":{"message":"move-instance: fix crash in Python 3\n\nAny move-instance call without --opportunistic-tries currently crashes\nwith this:\n\n File \"/usr/lib/ganeti/tools/move-instance\", line 1132, in \n main()\n File \"/usr/share/ganeti/3.0/ganeti/rapi/client.py\", line 274, in wrapper\n return fn(*args, **kwargs)\n File \"/usr/lib/ganeti/tools/move-instance\", line 1069, in main\n CheckOptions(parser, options, args)\n File \"/usr/lib/ganeti/tools/move-instance\", line 1007, in CheckOptions\n _CheckAllocatorOptions(parser, options)\n File \"/usr/lib/ganeti/tools/move-instance\", line 941, in _CheckAllocatorOptions\n if not options.iallocator and (options.opportunistic_tries > 0):\nTypeError: '>' not supported between instances of 'NoneType' and 'int'\n\nIt is said this was a problem related to the 2to3 migration, but I\nhaven't investigated fully.\n\nSee: #1696","shortMessageHtmlLink":"move-instance: fix crash in Python 3"}},{"before":"e77dcc47a893ecea30ed0e9e998eb21bd6f44760","after":null,"ref":"refs/heads/fix/procps_negative_uid","pushedAt":"2023-03-08T10:25:28.364Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"}},{"before":"c295246da01504b68c287be73f5429e2ae38d016","after":null,"ref":"refs/heads/fix/ghc_9_lens_5","pushedAt":"2023-03-08T10:25:25.294Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"}},{"before":"5e302a9bfd0d3c87a97cdbfc9d529d408d73b05f","after":null,"ref":"refs/heads/compat/python_3.12","pushedAt":"2023-03-08T10:25:04.488Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"}},{"before":"9cd67e6a81c66ed326d68ea8c3241d14eea6550b","after":"114e59fcc9d4a7c82618569f5d6b7389a0f80123","ref":"refs/heads/master","pushedAt":"2023-03-07T20:56:06.673Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"Convert custom condition methods to snake_case\n\nSingleNotifyPipeCondition and PipeCondition are designed to be\nAPI-compatible with threading.Condition. Since the rest of the code now\nexpects threading.Condition to respond to notify_all rather than\nnotifyAll, rename the latter in the custom condition code.","shortMessageHtmlLink":"Convert custom condition methods to snake_case"}},{"before":"03c845ec660b164e03e10359aae43ac5f902463e","after":"5e302a9bfd0d3c87a97cdbfc9d529d408d73b05f","ref":"refs/heads/compat/python_3.12","pushedAt":"2023-03-07T11:58:11.971Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"Convert custom condition methods to snake_case\n\nSingleNotifyPipeCondition and PipeCondition are designed to be\nAPI-compatible with threading.Condition. Since the rest of the code now\nexpects threading.Condition to respond to notify_all rather than\nnotifyAll, rename the latter in the custom condition code.","shortMessageHtmlLink":"Convert custom condition methods to snake_case"}},{"before":"ed8344030029dc154d950b1ae828a36dca01562f","after":"03c845ec660b164e03e10359aae43ac5f902463e","ref":"refs/heads/compat/python_3.12","pushedAt":"2023-03-07T11:55:18.735Z","pushType":"push","commitsCount":1,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"Convert custom condition methods to snake_case\n\nSingleNotifyPipeCondition and PipeCondition are designed to be\nAPI-compatible with threading.Condition. Since the rest of the code now\nexpects threading.Condition to respond to notify_all rather than\nnotifyAll, rename the latter in the custom condition code.","shortMessageHtmlLink":"Convert custom condition methods to snake_case"}},{"before":"6000f5a6ffe6e29f76d85198148e531a55087131","after":"ed8344030029dc154d950b1ae828a36dca01562f","ref":"refs/heads/compat/python_3.12","pushedAt":"2023-03-07T11:25:05.604Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"apoikos","name":"Apollon Oikonomopoulos","path":"/apoikos","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1160889?s=80&v=4"},"commit":{"message":"Replace calls to deprecated threading methods\n\nPython 3.10 has deprecated a bunch of camelCase threading methods in\nfavor of snake_case methods and getter/setter attributes. The new\nmethods/attributes have existed since Python 2.6, so switching does not\nbreak backward compatibility.\n\nThis is part of #1687.","shortMessageHtmlLink":"Replace calls to deprecated threading methods"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETcfuEAA","startCursor":null,"endCursor":null}},"title":"Activity ยท ganeti/ganeti"}