{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":617476783,"defaultBranch":"main","name":"cyraft","ownerLogin":"OpenCyphal-Garage","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-03-22T13:28:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/102383674?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721313566.0","currentOid":""},"activityList":{"items":[{"before":"f5a87a272a719d88cd39ea2bb18a23ce2ff80286","after":"9504d06092f9e35cdc896265e8415ac916dd9aec","ref":"refs/heads/main","pushedAt":"2024-07-29T08:07:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Complete with test _unittest_raft_leader_changes() (#11)\n\n* Changed the logic of the terms, and also changed the tests\r\n\r\n* Update tests/raft_node.py\r\n\r\nCo-authored-by: maksimdrachov <39975120+maksimdrachov@users.noreply.github.com>\r\n\r\n* Made some minor changes\r\n\r\n* In node.py: expanded the log information for some values ​​to make it easier to analyze the code\r\n\r\nIn raft_log_replication.py: start to write test that log replication happens correctly if leadership changes\r\n\r\nIn raft_node.py: add a couple of lines of code to close node after each test, so that after running pytest it does not crash\r\n\r\nnew issue: after the leader changes, the new leader is not aware of the latest index of the neighboring nodes and begins to rewrite them, even though his nodes completely coincide with the neighboring node.\r\n\r\n* Added test _unittest_raft_leader_changes for log_replication.py\r\n\r\n* In node.py: expanded the log information for some values ​​to make it easier to analyze the code\r\n\r\nIn raft_log_replication.py: start to write test that log replication happens correctly if leadership changes\r\n\r\nIn raft_node.py: add a couple of lines of code to close node after each test, so that after running pytest it does not crash\r\n\r\nnew issue: after the leader changes, the new leader is not aware of the latest index of the neighboring nodes and begins to rewrite them, even though his nodes completely coincide with the neighboring node.\r\n\r\n* Added test _unittest_raft_leader_changes for log_replication.py\r\n\r\n* Adapted the test to term Changes\r\n\r\n* Returned the deleted fragment from the test _unittest_raft_log_replication()\r\n\r\n* Reformatted code\r\n\r\n* Returned the test _unittest_raft_node_heartbeat()\r\n\r\n* Added Black Formatter to the VSCode\r\n\r\n* Formatted tests\r\n\r\n* Changed raft_node.py tests\r\n\r\n---------\r\n\r\nCo-authored-by: maksimdrachov <39975120+maksimdrachov@users.noreply.github.com>","shortMessageHtmlLink":"Complete with test _unittest_raft_leader_changes() (#11)"}},{"before":"a18bc15d75de0a18e34f4981e58caba474cfab56","after":"f5a87a272a719d88cd39ea2bb18a23ce2ff80286","ref":"refs/heads/main","pushedAt":"2024-07-19T13:07:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Fix term: leader only increases term on election_timeout (#18)\n\n* Changed the logic of the terms, and also changed the tests\r\n\r\n* Update tests/raft_node.py\r\n\r\nCo-authored-by: maksimdrachov <39975120+maksimdrachov@users.noreply.github.com>\r\n\r\n* Made some minor changes\r\n\r\n---------\r\n\r\nCo-authored-by: maksimdrachov <39975120+maksimdrachov@users.noreply.github.com>","shortMessageHtmlLink":"Fix term: leader only increases term on election_timeout (#18)"}},{"before":"12f1b993b8b451c9489e612d3c1b211faa902819","after":null,"ref":"refs/heads/maksim-fix-term","pushedAt":"2024-07-18T14:39:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"}},{"before":null,"after":"12f1b993b8b451c9489e612d3c1b211faa902819","ref":"refs/heads/maksim-fix-term","pushedAt":"2024-07-18T14:18:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Fix term","shortMessageHtmlLink":"Fix term"}},{"before":"978b313c84754f6507003392588f42b38cb2815c","after":"a18bc15d75de0a18e34f4981e58caba474cfab56","ref":"refs/heads/main","pushedAt":"2024-06-20T13:17:08.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Update README.md file","shortMessageHtmlLink":"Update README.md file"}},{"before":"ad7a109403a45f664decd8e932a3f8c92530f301","after":"978b313c84754f6507003392588f42b38cb2815c","ref":"refs/heads/main","pushedAt":"2024-06-19T14:15:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Update README","shortMessageHtmlLink":"Update README"}},{"before":"f079bb3a7b5c07b6e4876218320845706ceb0f38","after":"ad7a109403a45f664decd8e932a3f8c92530f301","ref":"refs/heads/main","pushedAt":"2024-06-19T14:13:25.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Merge pull request #9 from OpenCyphal-Garage/cleanup\n\nCleanup","shortMessageHtmlLink":"Merge pull request #9 from OpenCyphal-Garage/cleanup"}},{"before":"e6114c323416675ee9836972a9b73f95dcb38b84","after":"b2185a3a8e4d71deb241cef6a8a63192c02953e4","ref":"refs/heads/cleanup","pushedAt":"2024-06-19T14:12:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"testing","shortMessageHtmlLink":"testing"}},{"before":null,"after":"e6114c323416675ee9836972a9b73f95dcb38b84","ref":"refs/heads/cleanup","pushedAt":"2024-06-19T13:54:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"cleanup I","shortMessageHtmlLink":"cleanup I"}},{"before":"b217a9452d5c3b2c3c98e057d03b739db240fb7d","after":"f079bb3a7b5c07b6e4876218320845706ceb0f38","ref":"refs/heads/main","pushedAt":"2023-05-16T04:17:12.015Z","pushType":"push","commitsCount":2,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"all tests passing","shortMessageHtmlLink":"all tests passing"}},{"before":"9b5a46ee76025f6357dda2af68fc08ff8f243449","after":"b217a9452d5c3b2c3c98e057d03b739db240fb7d","ref":"refs/heads/main","pushedAt":"2023-05-15T11:47:42.262Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_log","shortMessageHtmlLink":"_unittest_raft_log"}},{"before":"a542aabc1c9635e7dba109217a9e89b9ed9e392c","after":"9b5a46ee76025f6357dda2af68fc08ff8f243449","ref":"refs/heads/main","pushedAt":"2023-05-15T10:30:16.354Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"updated _send_heartbeat","shortMessageHtmlLink":"updated _send_heartbeat"}},{"before":"45be13bb43b14a67c625376be6713901e9214f9c","after":"a542aabc1c9635e7dba109217a9e89b9ed9e392c","ref":"refs/heads/main","pushedAt":"2023-05-14T12:06:50.141Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"started with log replication","shortMessageHtmlLink":"started with log replication"}},{"before":"a8e2121532546285fbd43818ed6bfa7a46ffd62b","after":"45be13bb43b14a67c625376be6713901e9214f9c","ref":"refs/heads/main","pushedAt":"2023-05-14T11:08:20.273Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"delayed scheduling is fixed","shortMessageHtmlLink":"delayed scheduling is fixed"}},{"before":"af314755189257b0ff4dfd5b6de031c27f2bd847","after":"a8e2121532546285fbd43818ed6bfa7a46ffd62b","ref":"refs/heads/main","pushedAt":"2023-05-12T08:36:39.384Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"some weird bug with election_timeout","shortMessageHtmlLink":"some weird bug with election_timeout"}},{"before":"33a497f533118965bbc65b4e98ee05976eff6c75","after":"af314755189257b0ff4dfd5b6de031c27f2bd847","ref":"refs/heads/main","pushedAt":"2023-05-11T15:47:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"99% done with leader election","shortMessageHtmlLink":"99% done with leader election"}},{"before":"7d4022222c99684fe19ec04d3ee529b1459ae95a","after":"33a497f533118965bbc65b4e98ee05976eff6c75","ref":"refs/heads/main","pushedAt":"2023-05-11T15:46:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"99% done with log replication","shortMessageHtmlLink":"99% done with log replication"}},{"before":"c06951c06061362dba568640251decbb206a2243","after":"7d4022222c99684fe19ec04d3ee529b1459ae95a","ref":"refs/heads/main","pushedAt":"2023-05-11T13:11:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"assuming a yes from this point onwards","shortMessageHtmlLink":"assuming a yes from this point onwards"}},{"before":"3780e618eae895a363239e12d2b7cc07927cc48d","after":"c06951c06061362dba568640251decbb206a2243","ref":"refs/heads/main","pushedAt":"2023-05-11T11:49:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_fsm","shortMessageHtmlLink":"_unittest_raft_fsm"}},{"before":"cf5d5baf322056017428dfad430d8276294d9443","after":"3780e618eae895a363239e12d2b7cc07927cc48d","ref":"refs/heads/main","pushedAt":"2023-05-11T11:02:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_fsm_4","shortMessageHtmlLink":"_unittest_raft_fsm_4"}},{"before":"85b9b06a368ac2bf6e3b631be20875f3c1b43ada","after":"cf5d5baf322056017428dfad430d8276294d9443","ref":"refs/heads/main","pushedAt":"2023-05-11T10:51:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"some issue with _unittest_raft_fsm_2","shortMessageHtmlLink":"some issue with _unittest_raft_fsm_2"}},{"before":"2d029aae64d578b59f4aa3006d3ddb175f8b4e03","after":"85b9b06a368ac2bf6e3b631be20875f3c1b43ada","ref":"refs/heads/main","pushedAt":"2023-05-10T16:03:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"almost finished with leader election","shortMessageHtmlLink":"almost finished with leader election"}},{"before":"2127d079549bca88871c6f679083970d8c3e9d6c","after":"2d029aae64d578b59f4aa3006d3ddb175f8b4e03","ref":"refs/heads/main","pushedAt":"2023-05-10T11:12:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_node_append_entries_rpc","shortMessageHtmlLink":"_unittest_raft_node_append_entries_rpc"}},{"before":"77b2809daaeb2833e508f8b243c0192793bb47cf","after":"2127d079549bca88871c6f679083970d8c3e9d6c","ref":"refs/heads/main","pushedAt":"2023-05-10T08:26:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"cleanup","shortMessageHtmlLink":"cleanup"}},{"before":"ef62dd192def4a1e53f42d27c41282eed53da6e6","after":"77b2809daaeb2833e508f8b243c0192793bb47cf","ref":"refs/heads/main","pushedAt":"2023-05-10T07:35:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_node_start_election","shortMessageHtmlLink":"_unittest_raft_node_start_election"}},{"before":"fc87d9cbf8a76d3d8ee8119f3d0279d2aac3d986","after":"ef62dd192def4a1e53f42d27c41282eed53da6e6","ref":"refs/heads/main","pushedAt":"2023-05-09T13:10:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"_unittest_raft_node_request_vote_rpc","shortMessageHtmlLink":"_unittest_raft_node_request_vote_rpc"}},{"before":"f7e9afdab8c189f6003db9b8028564fb9d4af08e","after":"2f83a3f471be093f19b4445ffabf18c02e7d9587","ref":"refs/heads/watchdog-election-timer","pushedAt":"2023-05-09T10:02:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"term and election timeout working,some warning tho","shortMessageHtmlLink":"term and election timeout working,some warning tho"}},{"before":"088b4adaa95f4651f61cfbcabf863c91ec4f3de6","after":"f7e9afdab8c189f6003db9b8028564fb9d4af08e","ref":"refs/heads/watchdog-election-timer","pushedAt":"2023-05-09T07:47:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"Added method desciptions","shortMessageHtmlLink":"Added method desciptions"}},{"before":"8bd2cd76b87d8b0828339f4ffefca2bf07e15ace","after":"088b4adaa95f4651f61cfbcabf863c91ec4f3de6","ref":"refs/heads/watchdog-election-timer","pushedAt":"2023-05-08T15:41:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"removing some dust (cleanup)","shortMessageHtmlLink":"removing some dust (cleanup)"}},{"before":"9d0fb4680e02c05406503fac76f33a7df966299f","after":"8bd2cd76b87d8b0828339f4ffefca2bf07e15ace","ref":"refs/heads/watchdog-election-timer","pushedAt":"2023-05-08T15:26:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"maksimdrachov","name":null,"path":"/maksimdrachov","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/39975120?s=80&v=4"},"commit":{"message":"HEUREKA","shortMessageHtmlLink":"HEUREKA"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0yOVQwODowNzoxOS4wMDAwMDBazwAAAASLoRdv","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0wNS0wOFQxNToyNjo0My4wMDAwMDBazwAAAAMoYDOJ"}},"title":"Activity · OpenCyphal-Garage/cyraft"}