Code Monkey home page Code Monkey logo

Comments (5)

arrowtype avatar arrowtype commented on June 10, 2024

Okay, that first issue was solved by pip installing ufoProcessor directly from its repo.

Now, onto new issues!

from recursive.

arrowtype avatar arrowtype commented on June 10, 2024

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.

arrowtype avatar arrowtype commented on June 10, 2024

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.

arrowtype avatar arrowtype commented on June 10, 2024

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.

arrowtype avatar arrowtype commented on June 10, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.