googlefonts / googlefonts/fontmake
make -o variable the default output format?
- Dominant language
- Python
- Stars
- 888
- Forks
- 97
- Avg merge
- 4d 52m
- Merged PRs (30d)
- 1
Description
I always felt like the existing default values ["ttf", "otf"] for the `-o` flag (which stands for output _format_, not file or path like in other unix tools -- too late to change that) ... are a bit odd, especially nowadays when VFs are becoming the norm.
How about we change it such that if input is either Glyphs or Designspace format, we assume the user wants to create a variable font by default, unless they specify otherwise via -o (optionally plus -i to get static instances rather than masters)?
And if the inputs are one or more UFOs, then the default -o will be, well, ... ttf? (Sorry otf!).
My reasoning is, it's unlikely that -- by default -- one wants to create binary (master) fonts in _both_ TTF and OTF format when starting from either .glyphs or .designspace sources. If anything, they want the _instances_ as binary files, not the masters which are sort of incomplete and intermediate build product. And nowadays, it's more likely that, by default, they want a variable font from a mostly (though not necessarily) interpolatable source format like .glyphs or .designspace.
Also, why was decided to produce both TTF and OTF by default is something that I've always asked myself. The two formats are mostly interchangeable, one either needs one or the other, rarely both; but fontmake will produce both by default. Or maybe it was not to open another chapter in the font wars... in which case, I'm willing to concede and withdraw the request.
Contributor guide
Research direction
Start by tracing fontmake’s command-line handling for -o and how it identifies Glyphs, Designspace, and UFO inputs. Resolve the intended defaults for each input type and the -i override, then add coverage for those combinations; done means the CLI selects the agreed output without an explicit -o.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100