{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":8233105,"defaultBranch":"main","name":"fontbakery","ownerLogin":"fonttools","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-02-16T07:47:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20555868?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714862558.0","currentOid":""},"activityList":{"items":[{"before":"8eb87055b84a665e5b273d19b06c885358a6d260","after":null,"ref":"refs/heads/glyphsets-v1.0.0","pushedAt":"2024-05-04T22:42:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"8e815c055e4ba2366e5abe26962e8e75482ad1d4","after":null,"ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-04T22:42:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"0d495cad22de828c431224bb1ffc17300feecadb","after":null,"ref":"refs/heads/preparing_v0_12_5","pushedAt":"2024-05-04T22:42:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"2fa158aa9544a5e13f26aafb7be3fa478dafe7d6","after":"3c5ee2229e47a86b5b43be7b4411059bafc3ada4","ref":"refs/heads/main","pushedAt":"2024-05-03T16:16:51.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"update CHANGELOG in preparation for new release","shortMessageHtmlLink":"update CHANGELOG in preparation for new release"}},{"before":null,"after":"0d495cad22de828c431224bb1ffc17300feecadb","ref":"refs/heads/preparing_v0_12_5","pushedAt":"2024-05-03T16:02:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"update CHANGELOG in preparation for new release","shortMessageHtmlLink":"update CHANGELOG in preparation for new release"}},{"before":"6c5556bfd1417ccf38b3ac19602dd09f78658162","after":"2fa158aa9544a5e13f26aafb7be3fa478dafe7d6","ref":"refs/heads/main","pushedAt":"2024-05-03T15:12:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Improved tabular_kerning check\n\nEliminated false positives and other errors.\n\ncom.google.fonts/check/tabular_kerning\nOn the Universal Profile\n\n(issue #4640)","shortMessageHtmlLink":"Improved tabular_kerning check"}},{"before":"b962f5e701e4a591bcc466a8a2dbc2afecf3c1d2","after":"8e815c055e4ba2366e5abe26962e8e75482ad1d4","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-03T14:39:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Improved tabular_kerning check\n\nEliminated false positives and other errors.\n\ncom.google.fonts/check/tabular_kerning\nOn the Universal Profile\n\n(issue #4640)","shortMessageHtmlLink":"Improved tabular_kerning check"}},{"before":"65ed01eae889641862ec69470b523c6b5c262bd9","after":"6c5556bfd1417ccf38b3ac19602dd09f78658162","ref":"refs/heads/main","pushedAt":"2024-05-03T10:19:22.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Update pyproject.toml","shortMessageHtmlLink":"Update pyproject.toml"}},{"before":"b7aadf40b597ce0cb74dec27f6551ce876c63297","after":"8eb87055b84a665e5b273d19b06c885358a6d260","ref":"refs/heads/glyphsets-v1.0.0","pushedAt":"2024-05-03T09:58:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Update pyproject.toml","shortMessageHtmlLink":"Update pyproject.toml"}},{"before":"9052e19a5afce7449613ba31df4f31564f52d3ca","after":"b7aadf40b597ce0cb74dec27f6551ce876c63297","ref":"refs/heads/glyphsets-v1.0.0","pushedAt":"2024-05-03T09:57:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Update pyproject.toml","shortMessageHtmlLink":"Update pyproject.toml"}},{"before":"65ed01eae889641862ec69470b523c6b5c262bd9","after":"9052e19a5afce7449613ba31df4f31564f52d3ca","ref":"refs/heads/glyphsets-v1.0.0","pushedAt":"2024-05-03T09:50:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Update pyproject.toml","shortMessageHtmlLink":"Update pyproject.toml"}},{"before":null,"after":"65ed01eae889641862ec69470b523c6b5c262bd9","ref":"refs/heads/glyphsets-v1.0.0","pushedAt":"2024-05-03T09:49:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Fix ordering of log-messages on reports\n\nto show FAILs at the top.\n\n(issue #4672)","shortMessageHtmlLink":"Fix ordering of log-messages on reports"}},{"before":"5884d8006c607b357588c815ec6c58a2e9eb1b7c","after":"65ed01eae889641862ec69470b523c6b5c262bd9","ref":"refs/heads/main","pushedAt":"2024-05-02T14:21:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Fix ordering of log-messages on reports\n\nto show FAILs at the top.\n\n(issue #4672)","shortMessageHtmlLink":"Fix ordering of log-messages on reports"}},{"before":"513d115c210097a31df442b1983f99ee77818855","after":"b962f5e701e4a591bcc466a8a2dbc2afecf3c1d2","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T13:58:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Must have been wrong conflict resolution","shortMessageHtmlLink":"Must have been wrong conflict resolution"}},{"before":"6cbcf034efd1e8aa65483b51c085f99e7d687643","after":"513d115c210097a31df442b1983f99ee77818855","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T13:53:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Update universal_test.py","shortMessageHtmlLink":"Update universal_test.py"}},{"before":"f6db70745d6a39023946d72916df6a2fcaf9d5d7","after":"6cbcf034efd1e8aa65483b51c085f99e7d687643","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T13:50:30.000Z","pushType":"push","commitsCount":194,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Merge branch 'main' into improve-tabular_kerning","shortMessageHtmlLink":"Merge branch 'main' into improve-tabular_kerning"}},{"before":"3d2ab94dcbd887a6570caabff545fa61e6a0297c","after":"f6db70745d6a39023946d72916df6a2fcaf9d5d7","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T13:43:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md","shortMessageHtmlLink":"Update CHANGELOG.md"}},{"before":"a78d382ac7cdac710b995d349e7b01001a872eb4","after":"3d2ab94dcbd887a6570caabff545fa61e6a0297c","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T13:01:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Improved tabular_kerning check","shortMessageHtmlLink":"Improved tabular_kerning check"}},{"before":null,"after":"a78d382ac7cdac710b995d349e7b01001a872eb4","ref":"refs/heads/improve-tabular_kerning","pushedAt":"2024-05-02T08:00:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yanone","name":"Yanone","path":"/yanone","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/175386?s=80&v=4"},"commit":{"message":"Line length","shortMessageHtmlLink":"Line length"}},{"before":"c2a144003752af7798f5736fd0249f1a9f0bf8e0","after":null,"ref":"refs/heads/fix-multithreading-errors","pushedAt":"2024-05-02T07:09:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"af92d717682e41831101e718502fac22257acd7a","after":"5884d8006c607b357588c815ec6c58a2e9eb1b7c","ref":"refs/heads/main","pushedAt":"2024-05-02T06:13:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"--list-subcommands option\n\nAdd back the `--list-subcommands` option that had been removed by mistake on the v0.12.0 release.\n\n(issue #4685)","shortMessageHtmlLink":"--list-subcommands option"}},{"before":"55029477007468c8630ce7a3c8615e8f1289b350","after":"af92d717682e41831101e718502fac22257acd7a","ref":"refs/heads/main","pushedAt":"2024-05-02T04:54:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Eager-load fonts while protected by a lock\n\nI'm eager-loading all tables of the ttFont under test while we're opening the ttFont in a cached_property, because that decorator uses proper locking. In my previously bad runs with --auto-jobs, this now completes the run without errors, however it introduces a long pause at the start of execution before running any check, presumably while the whole font gets loaded.\n\nAn alternative solution would be to introduce locking in fontTools, so that lazy-loading a single table has a lock on that entry in the TTFont table cache. That way, only the tables actually needed by tests would get loaded.\n\nIt could be interesting to try also with deepcopy; and yet another idea could be that the getter would need to be cached per-thread instead of globally, i.e. use thread-local storage for the caching of cached_property, and so have one ttFont instance per thread. There would be duplicated work to load tables but each thread would have its own copy so hopefully they wouldn't step on each other's toes, and possibly each thread would only load the few tables that the checks running in that thread will use.\n\nBut for now we'll simply eager-load the fonts when the user enables multi-threading.\n\n(issue #4638)","shortMessageHtmlLink":"Eager-load fonts while protected by a lock"}},{"before":"da020af76259de0d471f5a37384211fc31ef55c0","after":"c2a144003752af7798f5736fd0249f1a9f0bf8e0","ref":"refs/heads/fix-multithreading-errors","pushedAt":"2024-05-02T04:40:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Eager-load fonts while protected by a lock\n\nI'm eager-loading all tables of the ttFont under test while we're opening the ttFont in a cached_property, because that decorator uses proper locking. In my previously bad runs with --auto-jobs, this now completes the run without errors, however it introduces a long pause at the start of execution before running any check, presumably while the whole font gets loaded.\n\nAn alternative solution would be to introduce locking in fontTools, so that lazy-loading a single table has a lock on that entry in the TTFont table cache. That way, only the tables actually needed by tests would get loaded.\n\nIt could be interesting to try also with deepcopy; and yet another idea could be that the getter would need to be cached per-thread instead of globally, i.e. use thread-local storage for the caching of cached_property, and so have one ttFont instance per thread. There would be duplicated work to load tables but each thread would have its own copy so hopefully they wouldn't step on each other's toes, and possibly each thread would only load the few tables that the checks running in that thread will use.\n\nBut for now we'll simply eager-load the fonts when the user enables multi-threading.\n\n(issue #4638)","shortMessageHtmlLink":"Eager-load fonts while protected by a lock"}},{"before":"7c6ab52ac289e687b4975015c90b3f7ea67820fd","after":"da020af76259de0d471f5a37384211fc31ef55c0","ref":"refs/heads/fix-multithreading-errors","pushedAt":"2024-05-02T03:32:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"fix CI build (and make it safer)","shortMessageHtmlLink":"fix CI build (and make it safer)"}},{"before":"9f8fc9720cf131effaa31ab4582164a61d86616d","after":"e5cddc606c3dc98e57d5834782670a7f3d8f27a1","ref":"refs/heads/gh-pages","pushedAt":"2024-05-02T00:42:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"add microsoft profile","shortMessageHtmlLink":"add microsoft profile"}},{"before":"6bcd893bbcd341439ff99502fe4eca1c30316a0c","after":null,"ref":"refs/heads/validate-contour-direction","pushedAt":"2024-05-02T00:00:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"36fc91a6a13fc0546afc084587cf10af7881cd45","after":null,"ref":"refs/heads/tnum_glyphs_equal_widths","pushedAt":"2024-05-01T23:59:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"}},{"before":"00c2c0f985bdfd63ddb7aee4af91464becb9e594","after":"55029477007468c8630ce7a3c8615e8f1289b350","ref":"refs/heads/main","pushedAt":"2024-05-01T23:58:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"felipesanches","name":"Felipe Corrêa da Silva Sanches","path":"/felipesanches","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/213676?s=80&v=4"},"commit":{"message":"Fix com.microsoft/check/tnum_glyphs_equal_widths\n\nThe code had multiple issues that would result in shaping failure\n(buffer content would be UNICODE instead of GLYPHS). The new code should\nbe more robust and it asserts that the buffer has the correct content\ntype.","shortMessageHtmlLink":"Fix com.microsoft/check/tnum_glyphs_equal_widths"}},{"before":"19c1206afe553b245e6f4932bd2b382f8b805028","after":"36fc91a6a13fc0546afc084587cf10af7881cd45","ref":"refs/heads/tnum_glyphs_equal_widths","pushedAt":"2024-05-01T23:31:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"},"commit":{"message":"Fix com.microsoft/check/tnum_glyphs_equal_widths\n\nThe code had multiple issues that would result in shaping failure\n(buffer content would be UNICODE instead of GLYPHS). The new code should\nbe more robust and it asserts that the buffer has the correct content\ntype.","shortMessageHtmlLink":"Fix com.microsoft/check/tnum_glyphs_equal_widths"}},{"before":null,"after":"19c1206afe553b245e6f4932bd2b382f8b805028","ref":"refs/heads/tnum_glyphs_equal_widths","pushedAt":"2024-05-01T23:28:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"khaledhosny","name":"خالد حسني (Khaled Hosny)","path":"/khaledhosny","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/93914?s=80&v=4"},"commit":{"message":"Fix com.microsoft/check/tnum_glyphs_equal_widths\n\nThe code had multiple issues that would result in shaping failure\n(buffer content would be UNICODE instead of GLYPHS). The new code should\nbe more robust and it asserts that the buffer has the correct content\ntype.","shortMessageHtmlLink":"Fix com.microsoft/check/tnum_glyphs_equal_widths"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQZtE-gA","startCursor":null,"endCursor":null}},"title":"Activity · fonttools/fontbakery"}