arrowtype / recursive

Recursive Mono & Sans is a variable font family for code & UI
https://recursive.design
SIL Open Font License 1.1
3.26k stars 51 forks source link

Build blocked: ValueError("Glyph names must be at least one character long.") #388

Closed arrowtype closed 4 years ago

arrowtype commented 4 years ago

Problem description

Build is blocked by a glyph that apparently has zero characters in its name ....

β–Ά python build.py --varfiles
🚚 Building files for mastering

🚚 Generating sources
πŸ—  Copying files
πŸ—  Opening sources
πŸ—  Checking family name
πŸ—  Removing non-exporting glyphs
Traceback (most recent call last):
  File "build.py", line 69, in <module>
    files = buildFiles(version=version, static=False)
  File "/Users/stephennixon/type-repos/recursive/mastering/build_files.py", line 95, in buildFiles
    makeSources(ds, paths["src"], version)
  File "/Users/stephennixon/type-repos/recursive/mastering/build_files.py", line 72, in makeSources
    prep(os.path.join(src, ds), version)
  File "/Users/stephennixon/type-repos/recursive/mastering/prep_fonts.py", line 507, in prep
    decomposeNonExportingGlyphs(fonts)
  File "/Users/stephennixon/type-repos/recursive/mastering/prep_fonts.py", line 248, in decomposeNonExportingGlyphs
    removeGlyphs(font, non_exporting)
  File "/Users/stephennixon/type-repos/recursive/mastering/prep_fonts.py", line 39, in removeGlyphs
    glyphOrder = font.glyphOrder
  File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.7/site-packages/fontParts/base/base.py", line 90, in __get__
    return getter()
  File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.7/site-packages/fontParts/base/font.py", line 1104, in _get_base_glyphOrder
    value = normalizers.normalizeGlyphOrder(value)
  File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.7/site-packages/fontParts/base/normalizers.py", line 96, in normalizeGlyphOrder
    normalizeGlyphName(v)
  File "/Users/stephennixon/type-repos/recursive/venv/lib/python3.7/site-packages/fontParts/base/normalizers.py", line 306, in normalizeGlyphName
    raise ValueError("Glyph names must be at least one character long.")
ValueError: Glyph names must be at least one character long.

Steps taken to resolve:

arrowtype commented 4 years ago

Yeeeeah that solved it! Thank goodness πŸ˜