Features
- It is now possible to build a specific instance or instances with the `-i/--interpolate` option. This takes an optional regular expression that is matched against the instance "name" attribute in the designspace document.
E.g.: `-I "Noto Sans Bold"`; or `-I ".* UI Condensed"` (410).
- Added `--designspace-path` option to tell fontmake where to save the designspace file generated by glyphsLib (410).
- Added `--master-dir` and `--instance-dir` options to control where to save the UFOs generated when the input is a .glyphs file. These options also accept a special string `{tmp}` which to save the UFOs in a temporary directory, cleaned up automatically after the binary fonts are built (423).
- Added two new mutually exclusive options: `--output-path`, for when the output is a single file (e.g. a variable font, or a single static font), and `--output-dir`, which can be used for any sorts of outputs. The folder is created if it doesn't already exist (422).
- The `--interpolate-binary-layout` option now takes an optional argument to customize the location of the binary masters used to interpolate the GPOS table using varLib (422).
- Decomposing glyphs, removing overlaps, and converting curves to quadratic are now performed by ufo2ft preprocessor filters. The output produced is the same. The `FontProject` class methods `decompose_glyphs`, `remove_overlaps` and `conver_curves` are deprecated and will be dropped later (440).
- Added `--cff-round-tolerance` option to control rounding of float coordinates in CFF table (440).
- The `--kern-writer-class` and `--mark-writer-class` options were removed, and replaced with a generic `--feature-writer` option, which allows to load any ufo2ft (or compatible) feature writer class. Note that ufo2ft now also allows to store these feature writers' specifications inside the UFO lib. The fontmake command-line option overrides both the default ufo2ft writers and those stored in the UFO lib.
- `fontTools.designspaceLib` is now used to parse the input designspace file. The current version removes any kind of guessing about the axes and requires the presence of an explicit `<axes>` element, containing a list of `<axis>` sub-elements, each defining the axis name, tag, minimum, default and maximum location, and optional `<map>` sub-elements. The default master is expected at the intersection of all default values for each axis.
- fontmake's internal UFO to OTF compiler `ufo2ft` was updated to version 2.0, and includes a long list of new features and bugfixes, which transitively benefit fontmake as well. Read the full changelog here: