{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":13253303,"defaultBranch":"master","name":"eos-updater","ownerLogin":"endlessm","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-10-01T19:23:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1930958?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718187492.0","currentOid":""},"activityList":{"items":[{"before":"ff1d8514f220383b9292a4e8a6a8c242ead0313a","after":"c42ce0f1c41e990d16b1b9cda8f88e9784991458","ref":"refs/heads/eos6.0","pushedAt":"2024-06-11T18:22:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge pull request #341 from endlessm/readme-tests\n\nUpdate README with testing information","shortMessageHtmlLink":"Merge pull request #341 from endlessm/readme-tests"}},{"before":"16c1285c078d77ba26c13049eff9bf4e14d0d784","after":null,"ref":"refs/heads/readme-tests","pushedAt":"2024-04-23T12:24:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"manuq","name":null,"path":"/manuq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83944?s=80&v=4"}},{"before":"ff1d8514f220383b9292a4e8a6a8c242ead0313a","after":"c42ce0f1c41e990d16b1b9cda8f88e9784991458","ref":"refs/heads/master","pushedAt":"2024-04-23T12:24:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"manuq","name":null,"path":"/manuq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83944?s=80&v=4"},"commit":{"message":"Merge pull request #341 from endlessm/readme-tests\n\nUpdate README with testing information","shortMessageHtmlLink":"Merge pull request #341 from endlessm/readme-tests"}},{"before":"5d69317ae116074ab856271fb4a14a515a0df75a","after":"16c1285c078d77ba26c13049eff9bf4e14d0d784","ref":"refs/heads/readme-tests","pushedAt":"2024-04-23T11:52:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"manuq","name":null,"path":"/manuq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83944?s=80&v=4"},"commit":{"message":"Update README with testing information","shortMessageHtmlLink":"Update README with testing information"}},{"before":null,"after":"5d69317ae116074ab856271fb4a14a515a0df75a","ref":"refs/heads/readme-tests","pushedAt":"2024-04-18T18:41:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"manuq","name":null,"path":"/manuq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/83944?s=80&v=4"},"commit":{"message":"Update README with testing information","shortMessageHtmlLink":"Update README with testing information"}},{"before":null,"after":"ff1d8514f220383b9292a4e8a6a8c242ead0313a","ref":"refs/heads/eos6.0","pushedAt":"2024-04-03T08:36:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"eos-shell-build","name":null,"path":"/eos-shell-build","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4185042?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin/eos5.1'","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/eos5.1'"}},{"before":"0f3dd81e88309107159a0afbe28adb400ca7369d","after":"ff1d8514f220383b9292a4e8a6a8c242ead0313a","ref":"refs/heads/master","pushedAt":"2024-03-22T09:18:05.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'origin/eos5.1'","shortMessageHtmlLink":"Merge remote-tracking branch 'origin/eos5.1'"}},{"before":null,"after":"4956d512b739c9450a9dd4e7929f21a98f2af409","ref":"refs/heads/wip/tests-use-libostree-api","pushedAt":"2024-03-21T21:30:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"WIP: Use libostree API rather than ostree CLI","shortMessageHtmlLink":"WIP: Use libostree API rather than ostree CLI"}},{"before":"f084fd59075b550316ad77b803c2452a51907378","after":null,"ref":"refs/heads/T35247-g-autofree-more-carefully","pushedAt":"2024-03-21T16:03:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dbnicholson","name":"Dan Nicholson","path":"/dbnicholson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6495518?s=80&v=4"}},{"before":"79ba404655fbef90ad646fe2344ae071e09a61f9","after":"30b4efdcf6437227876bfa7a2de9e0941a1eba64","ref":"refs/heads/eos5.1","pushedAt":"2024-03-21T16:03:51.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"dbnicholson","name":"Dan Nicholson","path":"/dbnicholson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6495518?s=80&v=4"},"commit":{"message":"Merge pull request #340 from endlessm/T35247-g-autofree-more-carefully\n\nInitialise g_auto* variables","shortMessageHtmlLink":"Merge pull request #340 from endlessm/T35247-g-autofree-more-carefully"}},{"before":null,"after":"f084fd59075b550316ad77b803c2452a51907378","ref":"refs/heads/T35247-g-autofree-more-carefully","pushedAt":"2024-03-21T15:30:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"poll: Initialise UpdateRefInfo locals\n\nIn metadata_fetch_new(), the case where no finders are found would\npreviously call update_ref_info_clear() on an uninitialised struct.\n\nIn metadata_fetch_from_main(), the update_ref_info_init() call is\nalready early enough to avoid that.\n\nIn both cases, 0-initialise the struct at its declaration, and\nunconditionally call update_ref_info_init(). In fact that function is\njust a very long-winded way of 0-initialising it, but perhaps one day it\nwill do something fancier.\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"poll: Initialise UpdateRefInfo locals"}},{"before":"2d6487f2390be9dfda7dea5a7c7aa0020943af49","after":"0f3dd81e88309107159a0afbe28adb400ca7369d","ref":"refs/heads/master","pushedAt":"2024-03-21T11:01:48.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge commit '79ba404'","shortMessageHtmlLink":"Merge commit '79ba404'"}},{"before":"c7084c24ae232b99615fe8279c84267acf19e62b","after":null,"ref":"refs/heads/T35247-remove-unused-test-override","pushedAt":"2024-03-20T17:08:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dbnicholson","name":"Dan Nicholson","path":"/dbnicholson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6495518?s=80&v=4"}},{"before":"d102f3cf877920e0519e8144f6ac9e22e6b7f8c9","after":"79ba404655fbef90ad646fe2344ae071e09a61f9","ref":"refs/heads/eos5.1","pushedAt":"2024-03-20T17:08:52.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"dbnicholson","name":"Dan Nicholson","path":"/dbnicholson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6495518?s=80&v=4"},"commit":{"message":"Merge pull request #339 from endlessm/T35247-remove-unused-test-override\n\nRemove support for overriding hardware descriptors","shortMessageHtmlLink":"Merge pull request #339 from endlessm/T35247-remove-unused-test-override"}},{"before":null,"after":"c7084c24ae232b99615fe8279c84267acf19e62b","ref":"refs/heads/T35247-remove-unused-test-override","pushedAt":"2024-03-20T16:29:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Remove support for overriding hardware descriptors\n\nThe logic in the tests that used this\nEOS_UPDATER_TEST_UPDATER_CUSTOM_DESCRIPTORS_PATH environment variable\nwas removed in 019eb5971e75f3ec2087758822e9ea0a3c233586.\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Remove support for overriding hardware descriptors"}},{"before":"59ef66712b34eb308170918231d48aea3b3f0f0f","after":"2d6487f2390be9dfda7dea5a7c7aa0020943af49","ref":"refs/heads/master","pushedAt":"2024-03-20T11:33:40.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge commit 'd102f3c'\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Merge commit 'd102f3c'"}},{"before":"7c1e0b6d19c4eae8243aaf18a30c72754f8b2731","after":null,"ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-20T11:31:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"}},{"before":"52995411b6657c2b969eea33f9e3097d5fd3c197","after":"d102f3cf877920e0519e8144f6ac9e22e6b7f8c9","ref":"refs/heads/eos5.1","pushedAt":"2024-03-20T11:31:30.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge pull request #338 from endlessm/T35247-nvme-remap-checkpoint\n\nPrevent systems using nvme-remap from crossing checkpoints","shortMessageHtmlLink":"Merge pull request #338 from endlessm/T35247-nvme-remap-checkpoint"}},{"before":"c6d0d0c00125a2a7c44a26b3b7a91460026ac37b","after":null,"ref":"refs/heads/misc","pushedAt":"2024-03-19T20:59:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"}},{"before":"e0d04fe233f4c7ddff967451be36054f86af163f","after":"59ef66712b34eb308170918231d48aea3b3f0f0f","ref":"refs/heads/master","pushedAt":"2024-03-19T20:59:11.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Merge pull request #335 from endlessm/misc\n\nMiscellaneous cleanup","shortMessageHtmlLink":"Merge pull request #335 from endlessm/misc"}},{"before":"632edb3aabd031711103bc6e139b58ffa167e275","after":"7c1e0b6d19c4eae8243aaf18a30c72754f8b2731","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-19T20:58:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Add a tool to check checkpoint checks on the current system\n\nThis is for interactive use to verify the checkpoint checks on a real\nsystem without needing to branch, create the checkpoint metadata, etc.\n\nIt is shipped as part of the eos-updater package so that it can be used\non a pristine installation of Endless OS. The binary is only about\n25 KiB.\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Add a tool to check checkpoint checks on the current system"}},{"before":"e3f30af120bdff16711af510bcfd89d4971c99ad","after":null,"ref":"refs/heads/T35247-checkpoint-block-cleanup","pushedAt":"2024-03-19T20:55:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"}},{"before":"9cbeea4e1f10429b4744d85051896f77eb15f7d6","after":"c6d0d0c00125a2a7c44a26b3b7a91460026ac37b","ref":"refs/heads/misc","pushedAt":"2024-03-19T20:17:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"gitignore: Ignore Debian build artifacts","shortMessageHtmlLink":"gitignore: Ignore Debian build artifacts"}},{"before":"35d99a71c7e028f4be921b0d86096d00c1ef1d65","after":"9cbeea4e1f10429b4744d85051896f77eb15f7d6","ref":"refs/heads/misc","pushedAt":"2024-03-19T14:01:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"gitignore: Ignore Debian build artifacts","shortMessageHtmlLink":"gitignore: Ignore Debian build artifacts"}},{"before":"3a821522a155b78434173ec945e01e7e1ad47d14","after":"632edb3aabd031711103bc6e139b58ffa167e275","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-19T10:44:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Add a tool to check checkpoint checks on the current system\n\nThis is for interactive use to verify the checkpoint checks on a real\nsystem without needing to branch, create the checkpoint metadata, etc.\n\nIt is shipped as part of the eos-updater package so that it can be used\non a pristine installation of Endless OS. The binary is only about\n25 KiB.\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Add a tool to check checkpoint checks on the current system"}},{"before":"d9a06301b53f4c60373c7a77656eff73062162c4","after":"3a821522a155b78434173ec945e01e7e1ad47d14","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-18T16:30:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Add a pseudo-test case to check checkpoint checks on the current system\n\nThis is for interactive use to verify the checkpoint checks on a real\nsystem without needing to branch, create the checkpoint metadata, etc.\n\nThis is an abuse of the test framework but this executable will already\nbe included in libeos-updater-util-0-tests so it saves on build system\nscaffolding to just put this here.\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Add a pseudo-test case to check checkpoint checks on the current system"}},{"before":"5237a793dfdc7406bd6fb6401ac43fb8259d9dbd","after":"d9a06301b53f4c60373c7a77656eff73062162c4","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-18T15:53:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Record a metrics event when crossing a checkpoint is blocked\n\nThis supersedes EOS_UPDATER_METRIC_BRANCH_SELECTED, which has been\nignored on the server since eos4.0. This event contained a boolean\nindicating whether the device was being held back from updating, which\nwas at one point implemented by the updater sending the device vendor &\nproduct to a server, which would instruct it whether to hold back the\nupdate. That functionality was removed long ago, around the time we\nimplemented USB and LAN updates, so the flag was a stub. What remained\nis a singular event recorded at an unspecified frequency.\n\nThe mechanism we have now, with ad-hoc checks in eos-updater to prevent\ndevices crossing a checkpoint when they rely on functionality that has\nbeen removed, is the spiritual successor to that mechanism. But\nbecause being blocked from crossing a checkpoint is not considered an\nerror, we don't get anything from the existing \"updater failed\" event\nwhen this happens.\n\nThe new event is aggregated on the client side, in the metrics daemon,\nat daily and monthly frequency. This will let us count how many devices\nare held back from upgrading to EOS 6 due to using nvme-remapped\nstorage.\n\nThe test suite only covers the metrics-disabled path. I have manually\ntested the metrics-enabled path and the expected events (daily and\nmonthly) appear in the client-side metrics daemon's database.\n\nhttps://phabricator.endlessm.com/T35247\nhttps://phabricator.endlessm.com/T35250","shortMessageHtmlLink":"Record a metrics event when crossing a checkpoint is blocked"}},{"before":"348f3c4c9e44b92b3cd8047cf444bc9077c61f15","after":"5237a793dfdc7406bd6fb6401ac43fb8259d9dbd","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-18T15:52:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Record a metrics event when crossing a checkpoint is blocked\n\nThis supersedes EOS_UPDATER_METRIC_BRANCH_SELECTED, which has been\nignored on the server since eos4.0. This event contained a boolean\nindicating whether the device was being held back from updating, which\nwas at one point implemented by the updater sending the device vendor &\nproduct to a server, which would instruct it whether to hold back the\nupdate. That functionality was removed long ago, around the time we\nimplemented USB and LAN updates, so the flag was a stub. What remained\nis a singular event recorded at an unspecified frequency.\n\nThe mechanism we have now, with ad-hoc checks in eos-updater to prevent\ndevices crossing a checkpoint when they rely on functionality that has\nbeen removed, is the spiritual successor to that mechanism. But\nbecause being blocked from crossing a checkpoint is not considered an\nerror, we don't get anything from the existing \"updater failed\" event\nwhen this happens.\n\nThe new event is aggregated on the client side, in the metrics daemon,\nat daily and monthly frequency. This will let us count how many devices\nare held back from upgrading to EOS 6 due to using nvme-remapped\nstorage.\n\nThe test suite only covers the metrics-disabled path. I have manually\ntested the metrics-enabled path and the expected events (daily and\nmonthly) appear in the client-side metrics daemon's database.\n\nhttps://phabricator.endlessm.com/T35247\nhttps://phabricator.endlessm.com/T35250","shortMessageHtmlLink":"Record a metrics event when crossing a checkpoint is blocked"}},{"before":null,"after":"348f3c4c9e44b92b3cd8047cf444bc9077c61f15","ref":"refs/heads/T35247-nvme-remap-checkpoint","pushedAt":"2024-03-15T22:23:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Prevent systems using nvme-remap from crossing checkpoints\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Prevent systems using nvme-remap from crossing checkpoints"}},{"before":"34dc393b849e7ed522732f4840a383855ac2c2e1","after":"e3f30af120bdff16711af510bcfd89d4971c99ad","ref":"refs/heads/T35247-checkpoint-block-cleanup","pushedAt":"2024-03-15T20:28:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"wjt","name":"Will Thompson","path":"/wjt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/86760?s=80&v=4"},"commit":{"message":"Add a skeleton test for euu_should_follow_checkpoint()\n\nhttps://phabricator.endlessm.com/T35247","shortMessageHtmlLink":"Add a skeleton test for euu_should_follow_checkpoint()"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYoo-AAA","startCursor":null,"endCursor":null}},"title":"Activity · endlessm/eos-updater"}