{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":21244505,"defaultBranch":"main","name":"qutebrowser","ownerLogin":"qutebrowser","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-06-26T14:59:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/21955151?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717425750.0","currentOid":""},"activityList":{"items":[{"before":"1e1af23d34371dabbe224b0c9649981a1e412377","after":"44a631b43b6952cc1c03c0a592a0df331204f198","ref":"refs/heads/main","pushedAt":"2024-06-05T20:44:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"doc: Update similar project list","shortMessageHtmlLink":"doc: Update similar project list"}},{"before":"a8a84b81d1ee96bd14d33977e066f711f73bee82","after":"a6736dd0f41cec63c8562ff643ade838b00fdcb4","ref":"refs/heads/v3.2.x","pushedAt":"2024-06-04T20:32:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Fix earlyinit with no Qt available\n\nWe need to wait with init_qtlog until after we know we have Qt available.\n\nCloses #8220\n\n(cherry picked from commit 1e1af23d34371dabbe224b0c9649981a1e412377)","shortMessageHtmlLink":"Fix earlyinit with no Qt available"}},{"before":"60f5ce153a093150a4853916eaf3ebc2e490a0f6","after":"1e1af23d34371dabbe224b0c9649981a1e412377","ref":"refs/heads/main","pushedAt":"2024-06-04T20:32:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Fix earlyinit with no Qt available\n\nWe need to wait with init_qtlog until after we know we have Qt available.\n\nCloses #8220","shortMessageHtmlLink":"Fix earlyinit with no Qt available"}},{"before":"ae7d7fb426790f2efdc7abba783ffee59e2c424b","after":"a8a84b81d1ee96bd14d33977e066f711f73bee82","ref":"refs/heads/v3.2.x","pushedAt":"2024-06-04T20:28:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Update user agent completions in config\n\n(cherry picked from commit 60f5ce153a093150a4853916eaf3ebc2e490a0f6)","shortMessageHtmlLink":"Update user agent completions in config"}},{"before":"ae7d7fb426790f2efdc7abba783ffee59e2c424b","after":"60f5ce153a093150a4853916eaf3ebc2e490a0f6","ref":"refs/heads/main","pushedAt":"2024-06-04T20:28:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Update user agent completions in config","shortMessageHtmlLink":"Update user agent completions in config"}},{"before":null,"after":"ae7d7fb426790f2efdc7abba783ffee59e2c424b","ref":"refs/heads/v3.2.x","pushedAt":"2024-06-03T14:42:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Release v3.2.0","shortMessageHtmlLink":"Release v3.2.0"}},{"before":"9271e64bd538825c032cb4d3aa1d36b87b7ec58a","after":"ae7d7fb426790f2efdc7abba783ffee59e2c424b","ref":"refs/heads/main","pushedAt":"2024-06-03T14:42:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Release v3.2.0","shortMessageHtmlLink":"Release v3.2.0"}},{"before":"fb35cf9fdc4335d90c874e7bd42dbb4a3b588ea0","after":null,"ref":"refs/heads/update-dependencies","pushedAt":"2024-06-03T12:29:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"}},{"before":"af2d151175ef60cadc515882bcbe4d7ffebde11c","after":"9271e64bd538825c032cb4d3aa1d36b87b7ec58a","ref":"refs/heads/main","pushedAt":"2024-06-03T12:29:57.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Merge pull request #8217 from qutebrowser/update-dependencies\n\nUpdate dependencies","shortMessageHtmlLink":"Merge pull request #8217 from qutebrowser/update-dependencies"}},{"before":"d8480f9dde46795185bc83aec65fe09ace1a6c7a","after":null,"ref":"refs/heads/chore/6.7.1_requirements","pushedAt":"2024-06-03T06:55:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"}},{"before":"74e4476893405aa472fcaf67487eec7f6e7f3ea2","after":"fb35cf9fdc4335d90c874e7bd42dbb4a3b588ea0","ref":"refs/heads/update-dependencies","pushedAt":"2024-06-03T06:26:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"Revert \"Add Riverbank Computing as extra index for PyQt requirements\"\n\nMostly reverts the below, as the new release is on the main PyPI repo\nnow.\nKeeps the change to misc_checks.py\n\nThis reverts commit 470ec752e16fe4f4f1407b90ad5ce66da85a7b63.","shortMessageHtmlLink":"Revert \"Add Riverbank Computing as extra index for PyQt requirements\""}},{"before":null,"after":"74e4476893405aa472fcaf67487eec7f6e7f3ea2","ref":"refs/heads/update-dependencies","pushedAt":"2024-06-03T04:23:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"qutebrowser-bot","name":"qutebrowser bot","path":"/qutebrowser-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34445804?s=80&v=4"},"commit":{"message":"Update dependencies","shortMessageHtmlLink":"Update dependencies"}},{"before":"b77cbbb2c3b9482351d332f677fe09ac9560ee7c","after":"5677ebecc3ddc9d218923c11dbd50242f1d2c637","ref":"refs/heads/fix/7947_clean_up_selection_models","pushedAt":"2024-06-03T04:15:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"Add test to ensure `set_model(None)` cleans up\n\nWe want to make sure that the selection model gets deleted when clearing\nthe model, since we are switching from doing that directly to having it\nhappen indirectly based off of signals we don't manage.\n\nHopefully this doesn't end up to be flaky. I think we are depending on\nthis happening in two different Qt even loop runs (`model.deleteLater()`\nin the first one then `selmod.deleteLater()` gets called from the\n`model.deleted` signal).\n\nI tried using `qtbot.wait_signals()` with a list but it segfaulted in\nsome cleanup method. Perhaps is doesn't handle the deleted signal well?\n\nAlternately we could maybe just wait for the selmodel one and check\n`sip.isdelted(model)` to check the model is gone too.","shortMessageHtmlLink":"Add test to ensure set_model(None) cleans up"}},{"before":"22ee4f2e12b0e711fd53098da4993c197fb79545","after":"b77cbbb2c3b9482351d332f677fe09ac9560ee7c","ref":"refs/heads/fix/7947_clean_up_selection_models","pushedAt":"2024-06-03T00:45:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"Don't set completion model to None, just delete it\n\nTo avoid a leak when calling `QTreeView.setModel(None)`, this commit switches\nto relying on the `model.destroyed` signal to make sure related state is\ncleaned up. Upstream bug: https://bugreports.qt.io/browse/QTBUG-49966\n\nWhen you call `setModel(None)` on a QTreeView it causes a small memory leak\nof `QItemSelectionModel` objects created by the QTreeView's child QHeaderView\nobject.\n\n`QAbstractItemView` will create a new `QItemSelectionModel` whenever a model\nis set, even if that model is `None`. When the new model is non-null the\nnew selection model will be set to be deleted when the new model is, but when\nthe new model is None the new selection model will be linked to the\nstatic `QAbstractItemModelPrivate::staticEmptyModel()`. Since that empty model\nlives forever, so do the related section models, unless callers take care to\nclean them up themselves.\n\nBoth `QTreeView` and it's child `QHeaderView` implement `QAbstractItemView`\nand have this behaviour. For the `QTreeView` we were making sure to delete\nthe old selection model ourselves (as of fe1215c74d731). But for the one\ncreated by the `QHeaderView` we can't get a reference it because\n`QTreeView.setModel()` would call `QHeaderView.setModel()` and then\n`QHeaderView.setSelectionModel()` right away to assign it's own\nselection model to the child, leaving no references to the selection\nmodel created by `QHeaderView.setModel()`.\n\nI was previously using `header.findChildren(QItemSelectionModel)` to clean up\nold orphaned selection models, but this approach is a lot simpler!\n\nTo observe this for yourself you can plonk something like this in\n`set_model()` before the early return and switch between the old and new\nimplementation and see how it changes behaviour.\n\n header = self.header()\n header_children = header.findChildren(QItemSelectionModel)\n our_children = self.findChildren(QItemSelectionModel)\n print(f\"{len(our_children)=} {len(header_children)=}\")\n\nYou can also observer the selection models accumulating in Gammaray\n(https://github.com/KDAB/GammaRay/) if you just open and close the selection a\nlot and then filter the object view by \"model\".\n\nThe relevant code is in `QTreeView` and `QAbstractItemView`'s\n`setModel()`, `setSlectionModel()` and `modelDestroyed()`. Bot mostly in\nthe `setModels()` where you can see the relevant signals being connected\nand disconnected.\nhttps://code.qt.io/cgit/qt/qtbase.git/tree/src/widgets/itemviews/qtreeview.cpp#n179\n\nFixes: #7947","shortMessageHtmlLink":"Don't set completion model to None, just delete it"}},{"before":"d897d23140aef8d298486e06fb481fa4983f46dc","after":"7612b89680da9232121b83675a312ad9d78ebe3d","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-06-02T21:10:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"june 3rd","shortMessageHtmlLink":"june 3rd"}},{"before":"d3dc1bf4c1610a97a8e0f1020892d7072653151a","after":"af2d151175ef60cadc515882bcbe4d7ffebde11c","ref":"refs/heads/main","pushedAt":"2024-06-01T12:10:00.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Make __init__.py work on old Python","shortMessageHtmlLink":"Make __init__.py work on old Python"}},{"before":null,"after":"262267d72517ff3d17ab4b4f4932d041ba34bed1","ref":"refs/heads/qt671","pushedAt":"2024-06-01T11:27:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Test Qt 6.7.1","shortMessageHtmlLink":"Test Qt 6.7.1"}},{"before":"88574d5861013fe743950c8459590c69d7076f9d","after":"d897d23140aef8d298486e06fb481fa4983f46dc","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-06-01T05:00:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"june 1st","shortMessageHtmlLink":"june 1st"}},{"before":"2b5af7b5271c32ad23ff0f083e93526c7add3813","after":"d8480f9dde46795185bc83aec65fe09ace1a6c7a","ref":"refs/heads/chore/6.7.1_requirements","pushedAt":"2024-06-01T02:23:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"update changelog URLs for WebEngineSubwheel","shortMessageHtmlLink":"update changelog URLs for WebEngineSubwheel"}},{"before":null,"after":"2b5af7b5271c32ad23ff0f083e93526c7add3813","ref":"refs/heads/chore/6.7.1_requirements","pushedAt":"2024-06-01T00:48:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"Update requirements with 6.7.1 from riverbank server\n\nThis includes a new WebEngineSubwheel indirect dependency which is an\nattempt at getting around file size limitations of PyPI.\n\nNot sure why PyQt6-sip has gone to an underscore now.\n\nSee https://www.riverbankcomputing.com/pipermail/pyqt/2024-May/045875.html\nand https://github.com/pypi/support/issues/3949","shortMessageHtmlLink":"Update requirements with 6.7.1 from riverbank server"}},{"before":"fa3fc1e6a8d2b7516d750de166d88a276bb15658","after":"88574d5861013fe743950c8459590c69d7076f9d","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-31T06:33:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"may 31st","shortMessageHtmlLink":"may 31st"}},{"before":"daa67280c657a5b99c6177e4921bfa5601b9b527","after":"fa3fc1e6a8d2b7516d750de166d88a276bb15658","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-30T06:31:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"may 30th","shortMessageHtmlLink":"may 30th"}},{"before":"8e50b74bb053abb7083b09588e9946ce7cdd7217","after":"d3dc1bf4c1610a97a8e0f1020892d7072653151a","ref":"refs/heads/main","pushedAt":"2024-05-29T06:45:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Update changelog","shortMessageHtmlLink":"Update changelog"}},{"before":"9d4e6c3662a6f75cceb34085ac70d934c09f212b","after":"daa67280c657a5b99c6177e4921bfa5601b9b527","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-29T05:31:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"may 29th","shortMessageHtmlLink":"may 29th"}},{"before":"28697e943a24e57daa77f1715975a45492f90e92","after":"9d4e6c3662a6f75cceb34085ac70d934c09f212b","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-28T06:31:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"may 28th","shortMessageHtmlLink":"may 28th"}},{"before":"10faacff70d430af872201dde582badff62036f7","after":"28697e943a24e57daa77f1715975a45492f90e92","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-27T05:38:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"may 27th","shortMessageHtmlLink":"may 27th"}},{"before":"4577fcc8ebc188f36bc7f4f1e7aa9f457cdafc8d","after":null,"ref":"refs/heads/update-dependencies","pushedAt":"2024-05-27T05:09:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"}},{"before":"7d32df88cba0bfb75ee1a05d656eed6da253b1ab","after":"8e50b74bb053abb7083b09588e9946ce7cdd7217","ref":"refs/heads/main","pushedAt":"2024-05-27T05:09:45.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"The-Compiler","name":"Florian Bruhin","path":"/The-Compiler","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/625793?s=80&v=4"},"commit":{"message":"Merge pull request #8209 from qutebrowser/update-dependencies\n\nUpdate dependencies","shortMessageHtmlLink":"Merge pull request #8209 from qutebrowser/update-dependencies"}},{"before":null,"after":"4577fcc8ebc188f36bc7f4f1e7aa9f457cdafc8d","ref":"refs/heads/update-dependencies","pushedAt":"2024-05-27T04:21:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"qutebrowser-bot","name":"qutebrowser bot","path":"/qutebrowser-bot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34445804?s=80&v=4"},"commit":{"message":"Update dependencies","shortMessageHtmlLink":"Update dependencies"}},{"before":"82bb28adf60bdf1052e9fb2d5bf37e0dd2d7c370","after":"10faacff70d430af872201dde582badff62036f7","ref":"refs/heads/feat/ci_jobs_parallel_spike","pushedAt":"2024-05-26T00:30:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"toofar","name":null,"path":"/toofar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7419144?s=80&v=4"},"commit":{"message":"go back to hardcoding the worker number in each job\n\nTwo issues with putting it as an env var:\n* shellcheck (via actionlint) claim it needs to be enclosed in double\n quotes, but it's already in a double quoted string and I can't be\n bothered dealing with yaml quoting\n* the windows run doesn't seem to pick it up, maybe env vars don't work\n on windows?\n\nWhatever, we can figure out how to make it nicely over overridable later. I\njust want to get a stable branch I can re-run through the week.","shortMessageHtmlLink":"go back to hardcoding the worker number in each job"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXYstwgA","startCursor":null,"endCursor":null}},"title":"Activity ยท qutebrowser/qutebrowser"}