[merge] Merge GDEF marksets in Lookups properly (#2474).
[feaLib] Have fontTools feaLib script exit with error code when build fails (#2459)
[svgPathPen] Added ntos option to customize number formatting (e.g. rounding) (#2471).
[subset] Speed up subsetting of large CFF fonts (#2467).
[otTables] Speculatively promote lookups to extension to speed up compilation. If the offset to lookup N is too big to fit in a ushort, the offset to lookup N+1 is going to be too big as well, so we promote to extension all lookups from lookup N onwards (#2465).
[subset] Fixed bug while subsetting COLR table, whereby incomplete layer records pointing to missing glyphs were being retained leading to struct.error upon compiling. Make it so that glyf glyph closure, which follows the COLR glyph closure, does not influence the COLR table subsetting (#2461, #2462).
[docs] Fully document the cmap and glyf tables (#2454, #2457).
[colorLib.unbuilder] Fixed CLI by deleting no longer existing parameter (180bb18).
Dropped support for EOL Python 3.6, require Python 3.7 (#2417).
[ufoLib/glifLib] Make filename-clash checks faster by using a set instead of a list (#2422).
[subset] Don't crash if optional ClipList and LayerList are None (empty) (#2424, 2439).
[OT-SVG] Removed support for old deprecated version 1 and embedded color palettes, which were never officially part of the OpenType SVG spec. Upon compile, reuse offsets to SVG documents that are identical (#2430).
[feaLib] Added support for Variable Feature File syntax. This is experimental and subject to change until it is finalized in the Adobe FEA spec (#2432).
[unicodedata] Update Scripts/ScriptExtensions/Blocks to UnicodeData 14.0 (#2437).
[bezierTools] Fixed two floating-point bugs: one when computing t for a point lying on an almost horizontal/vertical line; another when computing the intersection point between a curve and a line (#2413).
[ttLib/otTables] Cleaned up virtual GID handling: allow virtual GIDs in Coverage and ClassDef readers; removed unused allowVID argument from TTFont constructor, and requireReal argument in TTFont.getGlyphID method.
Make TTFont.setGlyphOrder clear reverse glyphOrder map, and assume glyphOrder internal attribute is never modified outside setGlyphOrder; added TTFont.getGlyphNameMany and getGlyphIDMany (#1536, #1654, #2334, #2398).
[py23] Dropped internal use of fontTools.py23 module to fix deprecation warnings in client code that imports from fontTools (#2232, #2399, #2400).
[subset] Fix subsetting COLRv1 clip boxes when font is loaded lazily (#2408).
[transform] Added transformVector and transformVectors methods to the Transform class. Similar to transformPoint but ignore the translation part (#2386).