Releases: googlefonts/fontmake
v1.7.1
- ufoLib with lxml support is now a hard requirement of fontmake. Lxml provides precompiled wheels for all python versions and platforms that fontmake supports so this is ok.
- Added self-contained python zipapps for all the platforms/python versions that are currently supported by fontmake. Just download the
fontmake*.pyz
file that matches your python, platform and architecture and run it like a normal executable. No need to create virtual environments or install any dependencies. They are all embedded in the .pyz file (which is actually a zip file with some magic bootstrapping python code and the whole site-packages embedded). Please report any issues that you find.
v1.7.0
-
Added new option
--overlaps-backend
that allows to optionally specify "pathops" instead of the default "booleanOperations" as the backend for the ufo2ft RemoveOverlapsFilter.
Install fontmake asfontmake[pathops]
to enable support for this, or install skia-pathops separately if you prefer. -
Added new option
--validate-ufo
to enable ufoLib validation upon reading and writing UFOs. It is disabled by default for marginally better speed. -
You can install as
fontmake[lxml]
(or install lxml yourself) to enable faster UFO reading/writing using the latest ufoLib. -
NOTE: You can specify multiple extras at the same time within the square brackets, e.g.
pip install --upgrade fontmake[pathops,lxml]
-
Updated minimum installation requirements:
- glyphsLib >= 3.0.3
- ufo2ft >= 2.2.0
- defcon >= 0.5.2
v1.6.1
v1.6.0
- Support new lib key for the "Keep Glyphs" custom parameter introduced since glyphsLib 2.3 (#446).
- Don't generate default kern/mark/mkmk feaures when
--interpolate-layout
option is passed, as they will be overwritten by the interpolated GPOS. - Bumped minimum requirements:
- fonttools >= 3.28.0
- Fixed an issue in varLib's model resolution algorithm
- It now uses a new rounding function better suited for visual data such as coordinates, advances, deltas, etc.
- ufo2ft >= 2.1.0
- Fixed issue when hhea/vhea metrics contain float values which need to be rounded to integers
- glyphsLib >= 2.4.0
- Fixed regression in the generated
designspace.filename
when a custom--family-name
is provided that could lead to fontmake outputs overwriting each other - Added support for "Reencode Glyphs" instance custom parameter.
- Fixed regression in the generated
- fonttools >= 3.28.0
Please consult the respective changelogs for the full list of changes.
v1.5.1
- Correctly handle "Keep Glyphs" custom parameter when subsetting the font: the global list always has priority over individual glyph export flags (#381).
- Fixed incorrect subsetting when the UFO glyphOrder and the built TTFont objects's glyph order don't align (e.g. ".notdef" glyph not in the first position) (#443, #444).
- In
FDKFeatureCompiler
, check makeotf exit code to determine whether build was successful.
v1.5.0
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 methodsdecompose_glyphs
,remove_overlaps
andconver_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:
https://github.com/googlei18n/ufo2ft/releases/tag/v2.0.0
Bugfixes
- Fixed issue when input ufo path has a trailing "/" at the end (#393).
- Fixed issue whith
FDKFeatureCompiler
not working on POSIX platform (#442).
Updated minimum requirements
- fonttools >= 3.27.1
- cu2qu >= 1.5.0
- glyphsLib >= 2.3.0
- ufo2ft >= 2.0.0
- MutatorMath >= 2.1.1
- defcon >= 0.5.1
v1.4.0
- Don't remove overlaps from empty or all-component glyphs, or else pyclipper fails with an error (27d7b4c, #389).
- Remove pre-existing instance UFOs before calling MutatorMath (6cdf44e, #372).
- Do not round geometry in interpolated instance UFOs. Added a new option
--round-instances
to re-enable old behavior (#390). - Use
font.path
attribute if present to generate the output path (#357). - Support building varfont from designspaces without
<instances>
(5626514). - Updated minimum installation requirements:
- fonttools >= 3.21.1
- cu2qu >= 1.3.0
- glyphsLib >= 2.2.1
- ufo2ft >= 1.1.0
- MutatorMath >= 2.1.0
- defcon >= 0.3.5
- booleanOperations >= 0.8.0
v1.3.0
Updated minimum required dependencies: fonttools >= 3.15.1 - [varLib] Add default mappings to all axes in avar to fix rendering issue in some rasterizers (19c4b377, 04eacf13). - [varLib] Flatten multiple tail PairPosFormat2 subtables before merging (c55ef525). ufo2ft >= 0.6.2 - Use preferred family and subfamily to compose the full name; make UniqueID fallback less verbose (#148). - Import and merge any TTX found in `data/com.github.fonttools.ttx` in the generated OpenType font (#142). glyphsLib >= 1.8.0 - Fixed random order of propagated anchors on python 3 (#207). - Correctly set instances' OS/2 weight and width class using values from the Instances tab's "Weight" and "Width" drop-down menus. - No longer set OS/2 Weight and With Class for generated master UFOs, as those are only defined for instances in Glyphs.app. - Generate UFO's `styleMapFamilyName` and `styleMapStyleName` attributes using values from the Instances tab's Style Linking section. - Support shortened versions of all the `openTypeName*` custom parameters.
v1.2.7
Updated minimum requirements: - fonttools: 3.13.1 -> 3.14.0 - glyphsLib: 1.7.5 -> 1.7.6 - defcon: 0.3.3 -> 0.3.4 - booleanOperations: 0.7.0 -> 0.7.1
v1.2.6
- Disabled mapping to designspace's internal space when using varLib's interpolate_layout (#321). Fixes https://github.com/fonttools/fonttools/issues/950 Updated minimum requirements: - fonttools >= 3.13.0 * Adds `mapped` keyword argument to varLib.interpolate_layout. * Fixed bug with recombining PairPosClass2 subtables. - cu2qu >= 1.2.0 * Uses 0.001 as default approximation error for cubic to quadratic conversion. To keep using the previous value, you can pass the option -e 0.0025. - ufo2ft >= 0.5.3 * Only writeFeatures_mark if neither mark or mkmk is present. - defcon >= 0.3.3 * minor bugfixes. - glyphsLib >= 1.7.5: * support 'codePageRanges', 'GASP Table' and 'openTypeHeadFlags' custom parameters.