Comments (5)
Okay, that first issue was solved by pip installing ufoProcessor directly from its repo.
Now, onto new issues!
from recursive.
Current blocker:
version=1.086 # (replace version number)
python build.py --varfiles --version $version
python build.py --variable --version $version
π Building files for mastering
π Generating sources
π Copying files
π Opening sources
π Checking family name
π Removing non-exporting glyphs
π Decomposing scaled, flipped, and nested components
π Clearing guides
π Removing glyphs that aren't in every font
π Removing non-compatible glyphs
π Making kerning compatible
π Sorting glyph order to be common
π Setting production names
π Setting version
π Closing and saving sources
π Checking full design space
π Writing report
β
Done preparing sources
π Moved features into UFOs
π Added mark, mkmk, and GDEF to features
Exception ignored in: <function UFOOperator.__del__ at 0x107390900>
Traceback (most recent call last):
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufoProcessor/ufoOperator.py", line 485, in __del__
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufoProcessor/ufoOperator.py", line 490, in changed
AttributeError: 'NoneType' object has no attribute 'keys'
π Constructing variable font
Traceback (most recent call last):
File "/Users/stephennixon/type-repos/recursive/mastering/build.py", line 66, in <module>
build_variable(designspacePath=files["designspace"],
File "/Users/stephennixon/type-repos/recursive/mastering/build_variable.py", line 147, in build_variable
fp.build_variable_font(designspacePath,
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 298, in build_variable_font
font = ufo2ft.compileVariableTTF(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 597, in compileVariableTTF
fonts = compileVariableTTFs(designSpaceDoc, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 663, in compileVariableTTFs
vfNameToTTFont = varLib.build_many(
^^^^^^^^^^^^^^^^^^
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/__init__.py", line 1120, in build_many
vf = build(
^^^^^^
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/__init__.py", line 1209, in build
_merge_OTL(vf, model, master_fonts, axisTags)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/__init__.py", line 758, in _merge_OTL
merger.mergeTables(font, master_fonts, ["GSUB", "GDEF", "GPOS"])
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 156, in mergeTables
self.mergeThings(font[tag], [m.get(tag) for m in master_ttfs])
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 1245, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 143, in mergeThings
self.mergeObjects(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 114, in mergeObjects
mergerFunc(self, value, values)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 1245, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 143, in mergeThings
self.mergeObjects(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 114, in mergeObjects
mergerFunc(self, value, values)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 1245, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 143, in mergeThings
self.mergeObjects(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 114, in mergeObjects
mergerFunc(self, value, values)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 1245, in mergeThings
super(VariationMerger, self).mergeThings(out, lst)
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/fontTools/varLib/merger.py", line 148, in mergeThings
raise ShouldBeConstant(self, expected=out, got=lst)
fontTools.varLib.errors.ShouldBeConstant:
Couldn't merge the fonts, because some values were different, but should have
been the same. This happened while performing the following operation:
GPOS.table.FeatureList.FeatureCount
The problem is likely to be in Recursive Mono Casual A Slanted:
Expected to see .FeatureCount==5, instead saw 3
Incompatible features between masters.
Expected: kern, kern, kern, mark, mkmk.
Got: kern, mark, mkmk.
In the varfontprep-report.txt
, there is a line saying that kerning is different... This is what Iβll investigate next.
[kerning: kerning group does not match / public.kern1.H_right: ['H', 'Hbrevebelow', 'Hcircumflex', 'Hdotbelow', 'N', 'Nacute', 'Ncaron', 'Ncommaaccent', 'Ndot', 'Ndotbelow', 'Nlinebelow', 'Ntilde', 'U', 'Uacute', 'Ubreve', 'Ucircumflex', 'Udieresis', 'Udotbelow', 'Ugrave', 'Ugravedbl', 'Uhook', 'Uhorn', 'Uhornacute', 'Uhorndot', 'Uhorngrave', 'Uhornhook', 'Uhorntilde', 'Uhungarumlaut', 'Uinvertedbreve', 'Umacron', 'Umacrondieresis', 'Uogonek', 'Uring', 'Utilde', 'Utildeacute', 'Eng', 'LJ', 'NJ', 'Nhookleft', 'd', 'ddotbelow', 'dlinebelow'], ['H', 'Hbrevebelow', 'Hcircumflex', 'Hdotbelow', 'N', 'Nacute', 'Ncaron', 'Ncommaaccent', 'Ndot', 'Ndotbelow', 'Nlinebelow', 'Ntilde', 'U', 'Uacute', 'Ubreve', 'Ucircumflex', 'Udieresis', 'Udotbelow', 'Ugrave', 'Ugravedbl', 'Uhook', 'Uhorn', 'Uhornacute', 'Uhorndot', 'Uhorngrave', 'Uhornhook', 'Uhorntilde', 'Uhungarumlaut', 'Uinvertedbreve', 'Umacron', 'Umacrondieresis', 'Uogonek', 'Uring', 'Utilde', 'Utildeacute', 'Eng', 'LJ', 'NJ', 'Nhookleft', 'd', 'ddotbelow', 'dlinebelow', 'one.sans'], font: Recursive Sans Casual B, groupName: public.kern1.H_right (5, 2)]
from recursive.
Well, Iβm not yet sure how to get past this, so itβll take more digging.
I think the solution may lie in understanding and fixing this early part of the above traceback:
π Added mark, mkmk, and GDEF to features
Exception ignored in: <function UFOOperator.__del__ at 0x107390900>
Traceback (most recent call last):
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufoProcessor/ufoOperator.py", line 485, in __del__
File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.11/site-packages/ufoProcessor/ufoOperator.py", line 490, in changed
AttributeError: 'NoneType' object has no attribute 'keys'
from recursive.
Another possible issue causing the build failure is detailed at googlefonts/fontmake#894.
Basically, ufo2ft now splits kerning by script, and the Sans sources for Recursive have kerning for /pi and other Greek characters. Iβll try adding some blank kerns for Greek into the Mono sources, and see whether that makes a difference here.
Also, re: "In the varfontprep-report.txt, there is a line saying that kerning is different... This is what Iβll investigate next." I see that the second font in that list includes one.sans
in the list. So, Iβll set groups to be the same, again.
from recursive.
Adding blank kerning to mono sources for /pi /pi actually did help, but didn't fully solve things:
Couldn't merge the fonts, because some values were different, but should have
been the same. This happened while performing the following operation:
GPOS.table.FeatureList.FeatureCount
The problem is likely to be in Recursive Mono Casual A Slanted:
Expected to see .FeatureCount==5, instead saw 4
Incompatible features between masters.
Expected: kern, kern, kern, mark, mkmk.
Got: kern, kern, mark, mkmk.
Next, Iβll debug the ufoOperator traceback.
from recursive.
Related Issues (20)
- some ligatures for minus glyph does not vertical aligned HOT 2
- Stylistic Set label bug on macOS, for ss08 HOT 7
- Consider Link to point "latest" branch to the most current Zip download HOT 2
- How can I get this shape of `i` HOT 2
- Recursive Sans Linear displays to thin in pdf files HOT 3
- Add Georgian (mkhedruli & MTAVRULI) Support
- Building fonts on linux fails
- Cannot get font to work in any code editor HOT 7
- put a screenshot of rendered text in the readme file HOT 1
- Double arrows HOT 3
- Make a new release with improvements to Rec Mono/Code fonts, then merge a PR over in that repo
- Clipping on 'g' on macOS Terminal.app HOT 4
- It is possible to separate roman and italic variable font file? HOT 3
- Interpolation problems in `Recursive[CASL,CRSV,MONO,slnt,wght].ttf` HOT 19
- Interpolation problems in `Recursive[CASL,CRSV,MONO,slnt,wght].ttf` HOT 2
- Release planning for v1.086 HOT 1
- support web dev icons ( i.e.: ryanoasis/vim-devicons ) HOT 3
- Make the width of em-dash larger and variable with MONO.
- Arrows not working on the web with Google Fonts HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from recursive.