{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":845079,"defaultBranch":"main","name":"pgxn-manager","ownerLogin":"pgxn","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-08-17T23:54:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/702668?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1708190597.0","currentOid":""},"activityList":{"items":[{"before":"98c0a0648d3d477d0e5772d0eb0aff5abe258932","after":"e15aafffbb5bc3b40f586faa4ef4c2d4de2656ef","ref":"refs/heads/main","pushedAt":"2024-02-27T23:26:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Ignore .vscode","shortMessageHtmlLink":"Ignore .vscode"}},{"before":"6310b0da5dd9c92604de8c1c06aec2406d81601a","after":"98c0a0648d3d477d0e5772d0eb0aff5abe258932","ref":"refs/heads/main","pushedAt":"2024-02-27T23:20:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Fix typos in SQL comments","shortMessageHtmlLink":"Fix typos in SQL comments"}},{"before":"5a87f3f8291c75f287e30bf88e415cd533f10bd6","after":"6310b0da5dd9c92604de8c1c06aec2406d81601a","ref":"refs/heads/main","pushedAt":"2024-02-21T23:24:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Omit doc generation scripts from release\n\nAlso tweak the HTML handling in Build.PL to live in the subclass, and\nteach `bin/format_l10n_docs` to parse `.md` or `.mmd` files.","shortMessageHtmlLink":"Omit doc generation scripts from release"}},{"before":"02eb7a914f15eedb3947f064ce749724f1f6a4f4","after":"5a87f3f8291c75f287e30bf88e415cd533f10bd6","ref":"refs/heads/main","pushedAt":"2024-02-18T13:18:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Explicitly test shutdown called multiple times","shortMessageHtmlLink":"Explicitly test shutdown called multiple times"}},{"before":"8c4ef1f50dae0f87875663e2bb6590341c46eb70","after":"02eb7a914f15eedb3947f064ce749724f1f6a4f4","ref":"refs/heads/main","pushedAt":"2024-02-17T17:45:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add TRACE log level","shortMessageHtmlLink":"Add TRACE log level"}},{"before":"2e7cd4eb5ed506491daa479e97a6d48f46d679c1","after":"8c4ef1f50dae0f87875663e2bb6590341c46eb70","ref":"refs/heads/main","pushedAt":"2024-02-17T17:42:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Fix typo","shortMessageHtmlLink":"Fix typo"}},{"before":"adca2de55a9b26ac222e77851dabfb7729b2b1d2","after":"2e7cd4eb5ed506491daa479e97a6d48f46d679c1","ref":"refs/heads/main","pushedAt":"2024-02-17T17:27:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Increment to v0.32.1","shortMessageHtmlLink":"Increment to v0.32.1"}},{"before":"97e9c13756060641d519e9de8783460d2ef50bf0","after":null,"ref":"refs/heads/issues","pushedAt":"2024-02-17T17:20:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"}},{"before":"2084b09bc10c165ecdd9e0e0afbce295a69a9377","after":"adca2de55a9b26ac222e77851dabfb7729b2b1d2","ref":"refs/heads/main","pushedAt":"2024-02-17T17:20:12.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Timestamp v0.32.0","shortMessageHtmlLink":"Timestamp v0.32.0"}},{"before":"fc97bbf564396f0f1d79dbd913ea1799d99af635","after":"97e9c13756060641d519e9de8783460d2ef50bf0","ref":"refs/heads/issues","pushedAt":"2024-02-17T17:16:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Increment to 0.32.0 and update Copyright year","shortMessageHtmlLink":"Increment to 0.32.0 and update Copyright year"}},{"before":"4816746ed7773e0ecf1d9e69fea479dcaa61669e","after":"fc97bbf564396f0f1d79dbd913ea1799d99af635","ref":"refs/heads/issues","pushedAt":"2024-02-17T16:49:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add releease status to social posts\n\nFor non-stable releases, that is. Closes #72.","shortMessageHtmlLink":"Add releease status to social posts"}},{"before":null,"after":"4816746ed7773e0ecf1d9e69fea479dcaa61669e","ref":"refs/heads/issues","pushedAt":"2024-02-17T16:36:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Move howto to Locale and script to format HTML\n\nRather than manually regenerate it and store it in %Lexicon, ship it as\nan `.html` file in the appropriate locale directory. Pilfer the\n`from_file` Locale method from PGXN::Site, but remove the\nLocale::Maketext processing step to avoid the need to escape characters\nit looks for. There should be no Locale::Maketext processing anyway:\njust the translated document. Fixes #76.\n\nAdd `bin/format_l10n_docs`, a simple script that uses `multimarkdown` to\nregenerate the `.html` version of Markdown files in `lib`. This will\nallow other localize-able documents to be added in the future.","shortMessageHtmlLink":"Move howto to Locale and script to format HTML"}},{"before":"2084b09bc10c165ecdd9e0e0afbce295a69a9377","after":null,"ref":"refs/heads/signal-pid","pushedAt":"2024-02-17T00:12:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"}},{"before":"19a3ff6fc8b3ee69930266a5f3e6fb29320e3735","after":"2084b09bc10c165ecdd9e0e0afbce295a69a9377","ref":"refs/heads/main","pushedAt":"2024-02-17T00:12:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Try to shut down more aggressively\n\nAdd a separate `_shutdown` method called by `run` and by signal\nhandlers. It's responsible for removing the PID file and for setting\n`continue` to `0`. This should ensure that it's always called at least\nonce, and is safe to call multiple times. Either way the PID file should\nnow always be deleted and the shutdown activity properly logged.\n\nAlso set all the signal handlers in the `_signal_handlers` method, and\nteach it to nest signal handlers if necessary. This will keep the\nconsumer from wiping out its own handlers. I have no reason to think\nthey have been, but it seems best to play it as safe as possible.\n\nAdd a slew of new tests to test all these behaviors thoroughly.","shortMessageHtmlLink":"Try to shut down more aggressively"}},{"before":"ea05446f35c4eb79c7a3e563d4c0b62696f11067","after":"2084b09bc10c165ecdd9e0e0afbce295a69a9377","ref":"refs/heads/signal-pid","pushedAt":"2024-02-17T00:09:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Try to shut down more aggressively\n\nAdd a separate `_shutdown` method called by `run` and by signal\nhandlers. It's responsible for removing the PID file and for setting\n`continue` to `0`. This should ensure that it's always called at least\nonce, and is safe to call multiple times. Either way the PID file should\nnow always be deleted and the shutdown activity properly logged.\n\nAlso set all the signal handlers in the `_signal_handlers` method, and\nteach it to nest signal handlers if necessary. This will keep the\nconsumer from wiping out its own handlers. I have no reason to think\nthey have been, but it seems best to play it as safe as possible.\n\nAdd a slew of new tests to test all these behaviors thoroughly.","shortMessageHtmlLink":"Try to shut down more aggressively"}},{"before":null,"after":"ea05446f35c4eb79c7a3e563d4c0b62696f11067","ref":"refs/heads/signal-pid","pushedAt":"2024-02-17T00:03:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Try to shut down more aggressively\n\nAdd a separate `shutdown` method called by `run` and by signal handlers.\nIt's responsible for removing the PID file and for setting `continue` to\n`0`. This should ensure that it's always called at least once, and is\nsafe to call multiple times. Either way the PID file should now always\nbe deleted and the shutdown activity properly logged.\n\nAlso set all the signal handlers in the `_signal_handlers` method, and\nteach it to nest signal handlers if necessary. This will keep the\nconsumer from wiping out its own handlers. I have no reason to think\nthey have been, but it seems best to play it as safe as possible.\n\nAdd a slew of new tests to test all these behaviors thoroughly.","shortMessageHtmlLink":"Try to shut down more aggressively"}},{"before":"19a3ff6fc8b3ee69930266a5f3e6fb29320e3735","after":null,"ref":"refs/heads/given-when","pushedAt":"2024-02-16T23:14:10.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"}},{"before":"abd96f18a002ac25813833d1ee11521fa39162dd","after":"19a3ff6fc8b3ee69930266a5f3e6fb29320e3735","ref":"refs/heads/main","pushedAt":"2024-02-16T23:14:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Remove deprecated given/when syntax\n\nWas always experimental, been deprecated for a while, and for some\nreason the warnings jumped out at me today. So replace them with bog\nstandard `if`/`elseif`/`else` syntax, instead.","shortMessageHtmlLink":"Remove deprecated given/when syntax"}},{"before":"abd96f18a002ac25813833d1ee11521fa39162dd","after":null,"ref":"refs/heads/fix-pid","pushedAt":"2024-02-16T22:56:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"}},{"before":"c9d5255fb3faa7f17972a3d593f877b2c8216577","after":"abd96f18a002ac25813833d1ee11521fa39162dd","ref":"refs/heads/main","pushedAt":"2024-02-16T22:56:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Move PID deletion out of DEMOLISH method\n\nThere is no guarantee from Perl that it's called in a timely manner or\norder when shutting down. The `pid_file` field may no longer be set.\nThis might explain why the PID file was never cleaned up.\n\nMove it instead to the `run` method, where it should always run once a\nsignal handler has set `continue` to false. It exits the loop on the\nnext run, then cleans up the PID file before exiting. At least that's\nthe idea.\n\nMove the PID test to the `run` test section of `t/consumer.t`, since\n`run` is where it happens now.","shortMessageHtmlLink":"Move PID deletion out of DEMOLISH method"}},{"before":null,"after":"19a3ff6fc8b3ee69930266a5f3e6fb29320e3735","ref":"refs/heads/given-when","pushedAt":"2024-02-16T22:55:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Remove deprecated given/when syntax\n\nWas always experimental, been deprecated for a while, and for some\nreason the warnings jumped out at me today. So replace them with bog\nstandard `if`/`elseif`/`else` syntax, instead.","shortMessageHtmlLink":"Remove deprecated given/when syntax"}},{"before":"c9d5255fb3faa7f17972a3d593f877b2c8216577","after":null,"ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T22:37:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"}},{"before":"70fc8912e644377b277947889cd5a53949c38989","after":"c9d5255fb3faa7f17972a3d593f877b2c8216577","ref":"refs/heads/main","pushedAt":"2024-02-16T22:36:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add proper logger to consumer and handlers\n\nCreate (hidden) package PGXN::API::Consumer::Log and set it up with log\nlevel as the first argument to its `log` method, and suppress logging\naccording to verbosity. Teach Consumer to use it, then also teach the\nMastodon and Twitter handlers. Add tests to ensure it all works,\nincluding time mocking in the Mastodon and Twitter tests.\n\nNote that the handlers no longer throw an error on failure, but simply\nlog it. The Consumer still wraps the handlers in `try`/`catch` in order\nto log any unexpected errors and continue runnnig.\n\nThis will mean additional log information from the handlers, in\nparticular, which did no logging previously. Will be helpful when\nsomething happens to the consumer and we can see in the log what the\nlast release to be processed was.\n\nWhile at it, remove unnecessary uses of Carp.","shortMessageHtmlLink":"Add proper logger to consumer and handlers"}},{"before":"6005d67c875539e301f8659ff42adce31cc55c66","after":"abd96f18a002ac25813833d1ee11521fa39162dd","ref":"refs/heads/fix-pid","pushedAt":"2024-02-16T22:36:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Move PID deletion out of DEMOLISH method\n\nThere is no guarantee from Perl that it's called in a timely manner or\norder when shutting down. The `pid_file` field may no longer be set.\nThis might explain why the PID file was never cleaned up.\n\nMove it instead to the `run` method, where it should always run once a\nsignal handler has set `continue` to false. It exits the loop on the\nnext run, then cleans up the PID file before exiting. At least that's\nthe idea.\n\nMove the PID test to the `run` test section of `t/consumer.t`, since\n`run` is where it happens now.","shortMessageHtmlLink":"Move PID deletion out of DEMOLISH method"}},{"before":null,"after":"6005d67c875539e301f8659ff42adce31cc55c66","ref":"refs/heads/fix-pid","pushedAt":"2024-02-16T22:31:06.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Fix PID","shortMessageHtmlLink":"Fix PID"}},{"before":"7dc7eb31e63a4f399407c538515de932352a6a10","after":"c9d5255fb3faa7f17972a3d593f877b2c8216577","ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T22:30:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add proper logger to consumer and handlers\n\nCreate (hidden) package PGXN::API::Consumer::Log and set it up with log\nlevel as the first argument to its `log` method, and suppress logging\naccording to verbosity. Teach Consumer to use it, then also teach the\nMastodon and Twitter handlers. Add tests to ensure it all works,\nincluding time mocking in the Mastodon and Twitter tests.\n\nNote that the handlers no longer throw an error on failure, but simply\nlog it. The Consumer still wraps the handlers in `try`/`catch` in order\nto log any unexpected errors and continue runnnig.\n\nThis will mean additional log information from the handlers, in\nparticular, which did no logging previously. Will be helpful when\nsomething happens to the consumer and we can see in the log what the\nlast release to be processed was.\n\nWhile at it, remove unnecessary uses of Carp.","shortMessageHtmlLink":"Add proper logger to consumer and handlers"}},{"before":"9105e79cc4e0be86b7ecec882ecf26e5819744e2","after":"7dc7eb31e63a4f399407c538515de932352a6a10","ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T22:26:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add proper logger to consumer and handlers\n\nCreate (hidden) package PGXN::API::Consumer::Log and set it up with log\nlevel as the first argument to its `log` method, and suppress logging\naccording to verbosity. Teach Consumer to use it, then also teach the\nMastodon and Twitter handlers. Add tests to ensure it all works,\nincluding time mocking in the Mastodon and Twitter tests.\n\nNote that the handlers no longer throw an error on failure, but simply\nlog it. The Consumer still wraps the handlers in `try`/`catch` in order\nto log any unexpected errors and continue runnnig.\n\nThis will mean additional log information from the handlers, in\nparticular, which did no logging previously. Will be helpful when\nsomething happens to the consumer and we can see in the log what the\nlast release to be processed was.\n\nWhile at it, remove unnecessary uses of Carp.","shortMessageHtmlLink":"Add proper logger to consumer and handlers"}},{"before":"cdf09c80bcee3f453cd059430e8f2802c74e2c21","after":"9105e79cc4e0be86b7ecec882ecf26e5819744e2","ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T21:09:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Add Twitter logging","shortMessageHtmlLink":"Add Twitter logging"}},{"before":"5292ec52f2dadd8a40ca815ac8e17d92b72ca30f","after":"cdf09c80bcee3f453cd059430e8f2802c74e2c21","ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T03:23:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Test Mastodon logging","shortMessageHtmlLink":"Test Mastodon logging"}},{"before":"3dfceb44f5ea9c179eb815ffc6e3a1c00d9ab30a","after":"5292ec52f2dadd8a40ca815ac8e17d92b72ca30f","ref":"refs/heads/consumer-log","pushedAt":"2024-02-16T02:59:59.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"theory","name":"David E. Wheeler","path":"/theory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/46604?s=80&v=4"},"commit":{"message":"Pass logger to handlers","shortMessageHtmlLink":"Pass logger to handlers"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEBw8PMwA","startCursor":null,"endCursor":null}},"title":"Activity ยท pgxn/pgxn-manager"}