From 70b66837f480cbb4984673de76b1427cc22cab77 Mon Sep 17 00:00:00 2001 From: Marc Foley Date: Fri, 8 May 2026 12:45:12 +0100 Subject: [PATCH 1/2] deps: drop unused packages and bump diffenator2 to 0.5.0 Removed deps that are not imported anywhere in Lib/gftools and are not invoked as subprocesses: skia-pathops, statmake, babelfont, brotli, bumpfontversion, font-v, afdko. The fontmake [pathops] extra still pulls skia-pathops transitively when it is actually needed. Bumped diffenator2 to 0.5.0; earlier versions cap unicodedata2 below 16 and import pkg_resources (removed in setuptools 81), which forced the gftools resolver to backtrack heavily and hit pkg_resources at runtime. --- pyproject.toml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index db3c84c83..48cfe108a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,19 +51,12 @@ dependencies = [ 'pygit2>=1.16.0', 'strictyaml', 'fontmake[json]>=3.3.0', - 'skia-pathops', - 'statmake', 'PyYAML', - 'babelfont', 'ttfautohint-py', - 'brotli', 'jinja2', 'fontFeatures', 'vharfbuzz', - 'bumpfontversion', 'nanoemoji>=0.15.0', - 'font-v', - 'afdko', 'beautifulsoup4', 'rich', 'packaging', @@ -83,7 +76,7 @@ dependencies = [ [project.optional-dependencies] qa = [ "fontbakery[googlefonts]", - "diffenator2>=0.2.0", + "diffenator2>=0.5.0", # earlier versions cap unicodedata2<16 and import pkg_resources "pycairo", # needed for fontTools varLib.interpolatable --pdf ] test = [ From 5d3157a7637612339702cc1e7cb618a68d088a50 Mon Sep 17 00:00:00 2001 From: Marc Foley Date: Fri, 8 May 2026 13:06:06 +0100 Subject: [PATCH 2/2] deps: restore brotli CI showed `fonttools ttLib.woff2 compress` (called by gftools-builder) imports brotli lazily. fontTools does not pin it, so we have to. --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 48cfe108a..bd9cc2f33 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,6 +53,9 @@ dependencies = [ 'fontmake[json]>=3.3.0', 'PyYAML', 'ttfautohint-py', + # Not imported directly, but fontTools loads it lazily for woff2 compression + # (invoked by gftools-builder via `fonttools ttLib.woff2 compress`). + 'brotli', 'jinja2', 'fontFeatures', 'vharfbuzz',