Fontbakery: generate-glyphdata not working

Created on 20 Feb 2020  路  6Comments  路  Source: googlefonts/fontbakery

Observed behaviour

Running fontbakery generate-glyphdata downloads some ttf files (what? the? heck?) and then fails:

$ fontbakery generate-glyphdata
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/sourceserifpro/SourceSerifPro-Bold.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/rosarivo/Rosarivo-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/raleway/Raleway-BlackItalic.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/librebaskerville/LibreBaskerville-Bold.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/worksans/WorkSans-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ufl/ubuntu/Ubuntu-BoldItalic.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/vollkorn/Vollkorn-BlackItalic.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/breeserif/BreeSerif-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/carme/Carme-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/creteround/CreteRound-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/eczar/Eczar-Bold.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/faunaone/FaunaOne-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/hind/Hind-Light.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ufl/ubuntumono/UbuntuMono-Bold.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/belgrano/Belgrano-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/trirong/Trirong-Light.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/mitr/Mitr-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/overpass/Overpass-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/jura/Jura-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/overpass/Overpass-Black.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/montserrat/Montserrat-Regular.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/montserrat/Montserrat-Black.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/ofl/montserrat/Montserrat-Thin.ttf
Downloading and generating glyph data for http://github.com/google/fonts/raw/master/apache/roboto/Roboto-Regular.ttf
Collating font data into glyph data file
Traceback (most recent call last):
  File "/Users/johannes/.pyenv/versions/fontbakery/bin/fontbakery", line 11, in <module>
    load_entry_point('fontbakery', 'console_scripts', 'fontbakery')()
  File "/Users/johannes/Packages/fontbakery/Lib/fontbakery/cli.py", line 22, in main
    "fontbakery.commands." + subcommand_module, run_name='__main__')
  File "/Users/johannes/.pyenv/versions/3.7.6/lib/python3.7/runpy.py", line 208, in run_module
    return _run_code(code, {}, init_globals, run_name, mod_spec)
  File "/Users/johannes/.pyenv/versions/3.7.6/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/johannes/Packages/fontbakery/Lib/fontbakery/commands/generate_glyphdata.py", line 101, in <module>
    sys.exit(main())
  File "/Users/johannes/Packages/fontbakery/Lib/fontbakery/commands/generate_glyphdata.py", line 89, in main
    glyph_data = collate_fonts_data(fonts_data)
  File "/Users/johannes/Packages/fontbakery/Lib/fontbakery/commands/generate_glyphdata.py", line 40, in collate_fonts_data
    for glyph in family:
TypeError: 'NoneType' object is not iterable

Expected behaviour

I have not used the command before, but I'd expect it to scan the current directory for ttf files and output a METADATA.pb file as mentioned in the documentation here.

Resources and exact process needed to replicate

Run the CLI command on the latest commit.

P0 Urgent

All 6 comments

No, this command is not for generating METADATA.pb and it is not mentioned in the documentation you referenced.

But yes, it seems the command has some problem that needs fixing. I'll take a look at that.

The real purpose of this command is to build statistics of typical amount of glyph contours based on a set of reference font files (the ones you saw being downloaded). This is later used in a fontbakery glyph contour count check.

Ah sorry, I got confused, apparently. On a side note, I can't seem to locate that fontbakery-build-metadata.py anywhere except for ancient commits that mention it... is that functionality still available somehow?

if you want to generate metadata.pb files for google/fonts, use gftools add-font instead. Repo is here, https://github.com/googlefonts/gftools

Thank you for finding these edge cases.

A long time ago (hence, ancient commits), we reduced the scope of fontbakery to be laser-focused on the task of checking font files. Auxiliary tools were migrated into the GFTools project that @m4rc1e just mentioned ;-)

Makes sense, thanks for pointing me to the right command there.

this is now fixed. It was still using python2-only syntax. Now it is python 3 safe as well

Was this page helpful?
0 / 5 - 0 ratings