- Font tables read from XML can now be written back to XML with no loss.
- GSUB/GPOS LookupType is written out in XML as an element, not comment. (#792)
- When parsing cmap table, do not store items mapped to glyph id 0. (#790)
- [otlLib] Make ClassDef sorting deterministic. Fixes #766 (7d1ddb2)
- [mtiLib] Added unit tests (#787)
- [cvar] Implemented cvar table
- [gvar] Renamed GlyphVariation to TupleVariation to match OpenType terminology.
- [otTables] Handle gracefully empty VarData.Item array when compiling XML. (#797)
- [varLib] Re-enabled generation of `HVAR` table for fonts with TrueType
  outlines; removed `--build-HVAR` command-line option.
- [feaLib] The parser can now be extended to support non-standard statements in
  FEA code by using a customized Abstract Syntax Tree. See, for example,
  `feaLib.builder_test.test_extensions` and baseClass.feax (#794, fixes #773).
- [feaLib] Added `feaLib` command to the 'fonttools' command-line tool; applies
  a feature file to a font. `fonttools feaLib -h` for help.
- [ci] Measure test coverage on all supported python versions and OSes, combine
  coverage data and upload to https://codecov.io/gh/fonttools/fonttools (#786)
- [ci] Configured Travis and Appveyor for running tests on Python 3.6 (#785, 55c03bc)
- The manual pages installation directory can be customized through
  FONTTOOLS_MANPATH environment variable (#799, fixes #84).
- [Snippets] Added otf2ttf.py, for converting fonts from CFF to TrueType using
  the googlei18n/cu2qu module (#802)

## TTX/FontTools Version 3.4.0

2016-12-21

- [feaLib] Added support for generating FEA text from abstract syntax tree
  (AST) objects (#776). Thanks @mhosken
- Added `agl.toUnicode` function to convert AGL-compliant glyph names to
  Unicode strings (#774)
- Implemented MVAR table (b4d5381)

## TTX/FontTools Version 3.3.1

2016-12-15

- [setup] We no longer use versioneer.py to compute fonttools version from git
  metadata, as this has caused issues for some users (#767). Now we bump the
  version strings manually with a custom `release` command of setup.py script.

## TTX/FontTools Version 3.3.0

2016-12-06

- [ttLib] Implemented STAT table from OpenType 1.8 (#758)
- [cffLib] Fixed decompilation of CFF fonts containing non-standard key/value pairs in FontDict (issue #740; PR #744)
- [py23] minor: in `round3` function, allow the second argument to be `None` (#757)
- The standalone `sstruct` and `xmlWriter` modules, deprecated since vesion 3.2.0, have been removed. They can be imported from the `fontTools.misc` package.

## TTX/FontTools Version 3.2.3

2016-12-02

- [py23] optimized performance of round3 function; added backport for py35 math.isclose() (9d8dacb)
- [subset] fixed issue with 'narrow' (UCS-2) Python 2 builds and --text/--text-file options containing non-BMP chararcters (16d0e5e)
- [varLib] fixed issuewhen normalizing location values (8fa2ee1, #749)
- [inspect] Made it compatible with both python2 and python3 (167ee60, #748). Thanks @pnemade

## TTX/FontTools Version 3.2.2

2016-11-24

- [varLib] Do not emit null axes in fvar (1bebcec). Thanks @robmck-ms
- [varLib] Handle fonts without GPOS (7915a45)
- [merge] Ignore LangSys if None (a11bc56)
- [subset] Fix subsetting MathVariants (78d3cbe)
- [OS/2] Fix "Private Use (plane 15)" range (08a0d55). Thanks @mashabow

## TTX/FontTools Version 3.2.1 

2016-11-03

- [OS/2] fix checking `fsSelection` bits matching `head.macStyle` bits
- [varLib] added `--build-HVAR` option to generate `HVAR` table for fonts with TrueType outlines. For `CFF2`, it is enabled by default.

## TTX/FontTools Version 3.2.0

2016-11-02

- [varLib] Improve support for OpenType 1.8 Variable Fonts:
  * Implement GDEF's VariationStore
  * Implement HVAR/VVAR tables
  * Partial support for loading MutatorMath .designspace files with varLib.designspace module
  * Add varLib.models with Variation fonts interpolation models
  * Implement GSUB/GPOS FeatureVariations
  * Initial support for interpolating and merging OpenType Layout tables (see varLib.interpolate_layout and varLib.merger)
- [API change] Change version to be an integer instead of a float in XML output for GSUB, GPOS, GDEF, MATH, BASE, JSTF, HVAR, VVAR, feat, hhea and vhea tables. Scripts that set the Version for those to 1.0 or other float values also need fixing. A warning is emitted when code or XML needs fix.
- several bug fixes to the cffLib module, contributed by Adobe's @readroberts
- The XML output for CFF table now has a 'major' and 'minor' elements for specifying whether it's version 1.0 or 2.0 (support for CFF2 is coming soon)
- [setup.py] remove undocumented/deprecated 'extra_path' Distutils argument. This means that we no longer create a "FontTools" subfolder in site-packages containing the actual fontTools package, as well as the standalone xmlWriter and sstruct modules. The latter modules are also deprecated, and scheduled for removal in upcoming releases. Please change your import statements to point to from fontTools.misc import xmlWriter and from fontTools.misc import sstruct.
- [scripts] Add a 'fonttools' command-line tool that simply runs fontTools.* sub-modules: e.g. `fonttools ttx`, `fonttools subset`, etc.
- [hmtx/vmts] Read advance width/heights as unsigned short (uint16); automatically round float values to integers.
- [ttLib/xmlWriter] add 'newlinestr=None' keyword argument to `TTFont.saveXML` for overriding os-specific line endings (passed on to `XMLWriter` instances).
- [versioning] Use versioneer instead of setuptools_scm to dynamically load version info from a git checkout at import time.
- [feaLib] Support backslash-prefixed glyph names.

## TTX/FontTools Version 3.1.2

2016-09-27

- restore Makefile as an alternative way to build/check/install
- README.md: update instructions for installing package from source, and for running test suite
- NEWS: Change log was out of sync with tagged release

## TTX/FontTools Version 3.1.1

2016-09-27

- Fix 'ttLibVersion' attribute in TTX files still showing '3.0' instead of '3.1'.
- Use setuptools_scm to manage package versions.

## TTX/FontTools Version 3.1.0

2016-09-26

- [feaLib] New library to parse and compile Adobe FDK OpenType Feature files.
- [mtiLib] New library to parse and compile Monotype 'FontDame' OpenType Layout Tables files.
- [voltLib] New library to parse Microsoft VOLT project files.
- [otlLib] New library to work with OpenType Layout tables.
- [varLib] New library to work with OpenType Font Variations.
- [pens] Add ttGlyphPen to draw to TrueType glyphs, and t2CharStringPen to draw to Type 2 Charstrings (CFF); add areaPen and perimeterPen.
- [ttLib.tables] Implement 'meta' and 'trak' tables.
- [ttx] Add --flavor option for compiling to 'woff' or 'woff2'; add --with-zopfli option to use Zopfli to compress WOFF 1.0 fonts.
- [subset] Support subsetting 'COLR'/'CPAL' and 'CBDT'/'CBLC' color fonts tables, and 'gvar' table for variation fonts.
- [Snippets] Add symfont.py, for symbolic font statistics analysis; interpolatable.py, a preliminary script for detecting interpolation errors; {merge,dump}_woff_metadata.py.
- [classifyTools] Helpers to classify things into classes.
- [CI] Run tests on Windows, Linux and macOS using Appveyor and Travis CI; check unit test coverage with Coverage.py/Coveralls; automatic deployment to PyPI on tags.
- [loggingTools] Use Python built-in logging module to print messages.
- [py23] Make round() behave like Python 3 built-in round(); define round2() and round3().

## TTX/FontTools Version 3.0

2015-09-01 <https://github.com/behdad/fonttools/commit/58f86f318af8b2f8b553e8cceef678d6ce0017c5>

- Add Snippet scripts for cmap subtable format conversion, printing GSUB/GPOS features, building a GX font from two masters
- TTX WOFF2 support and a `-f` option to overwrite output file(s)
- Support GX tables: `avar`, `gvar`, `fvar`, `meta`
- Support `feat` and gzip-compressed SVG tables
- Upgrade Mac East Asian encodings to native implementation if available
- Add Roman Croatian and Romanian encodings, codecs for mac-extended East Asian encodings
- Implement optimal GLYF glyph outline packing; disabled by default

## TTX/FontTools Version 2.5

2014-09-24 <https://github.com/behdad/fonttools/commit/8388a2e37ce349dac6555bb824c82723e3b65fbf>

- Add a Qt pen
- Add VDMX table converter
- Load all OpenType sub-structures lazily
- Add support for cmap format 13.
- Add pyftmerge tool
- Update to Unicode 6.3.0d3
- Add pyftinspect tool
- Add support for Google CBLC/CBDT color bitmaps, standard EBLC/EBDT embedded bitmaps, and `SVG ` table (thanks to Read Roberts at Adobe)
- Add support for loading, saving and ttx'ing WOFF file format
- Add support for Microsoft COLR/CPAL layered color glyphs
- Support PyPy
- Support Jython, by replacing numpy with array/lists modules and removed it, pure-Python StringIO, not cStringIO
- Add pyftsubset and Subsetter object, supporting CFF and TTF
- Add to ttx args for -q for quiet mode, -z to choose a bitmap dump format

## TTX/FontTools Version 2.4

- Option to write to arbitrary files
- Better dump format for DSIG
- Better detection of OTF XML
- Fix issue with Apple's kern table format
- Fix mangling of TT glyph programs
- Fix issues related to mona.ttf
- Fix Windows Installer instructions
- Fix some modern MacOS issues
- Fix minor issues and typos

## TTX/FontTools Version 2.3

- TrueType Collection (TTC) support
- Python 2.6 support
- Update Unicode data to 5.2.0
- Couple of bug fixes

## TTX/FontTools Version 2.2

- ClearType support
- cmap format 1 support
- PFA font support
- Switched from Numeric to numpy
- Update Unicode data to 5.1.0
- Update AGLFN data to 1.6
- Many bug fixes

## TTX/FontTools Version 2.1

- Many years worth of fixes and features

## TTX/FontTools Version 2.0 beta 2 (released ??? 2002)

- Be "forgiving" when interpreting the maxp table version field:
  interpret any value as 1.0 if it's not 0.5. Fixes dumping of these
  GPL fonts: http://www.freebsd.org/cgi/pds.cgi?ports/chinese/wangttf
- Fixed ttx -l: it turned out this part of the code didn't work with
  Python 2.2.1 and earlier. My bad to do most of my testing with a
  different version than I shipped TTX with :-(
- Fixed bug in ClassDef format 1 subtable (Andreas Seidel bumped into
  this one).

## TTX/FontTools Version 2.0 beta 1 (released September 10 2002)

- Fixed embarrassing bug: the master checksum in the head table is now
  calculated correctly even on little-endian platforms (such as Intel).
- Made the cmap format 4 compiler smarter: the binary data it creates is
  now more or less as compact as possible. TTX now makes more compact
  data than in any shipping font I've tested it with.
- Dump glyph names as a separate "GlyphOrder" pseudo table as opposed to
  as part of the glyf table (obviously needed for CFF-OTF's).
- Added proper support for the CFF table.
- Don't barf on empty tables (questionable, but "there are font out there...")
- When writing TT glyf data, align glyphs on 4-byte boundaries. This seems
  to be the current recommendation by MS. Also: don't barf on fonts which
  are already 4-byte aligned.
- Windows installer contributed bu Adam Twardoch! Yay!
- Changed the command line interface again, now by creating one new tool
  replacing the old ones: ttx
  It dumps and compiles, depending on input file types. The options have
  changed somewhat. 
  - The -d option is back (output dir)
  - ttcompile's -i options is now called -m (as in "merge"), to avoid clash
    with dump's -i.
  - The -s option ("split tables") no longer creates a directory,
    but instead outputs a small .ttx file containing references to the
    individual table files. This is not a true link, it's a simple file
    name, and the referenced file should be in the same directory so
    ttcompile can find them.
  - compile no longer accepts a directory as input argument. Instead it
    can parse the new "mini-ttx" format as output by "ttx -s".
  - all arguments are input files
- Renamed the command line programs and moved them to the Tools
  subdirectory. They are now installed by the setup.py install script.
- Added OpenType support. BASE, GDEF, GPOS, GSUB and JSTF are (almost)
  fully supported. The XML output is not yet final, as I'm still
  considering to output certain subtables in a more human-friendly
  manner.
- Fixed 'kern' table to correctly accept subtables it doesn't know about,
  as well as interpreting Apple's definition of the 'kern' table headers
  correctly.
- Fixed bug where glyphnames were not calculated from 'cmap' if it was
  (one of the) first tables to be decompiled. More specifically: it cmap
  was the first to ask for a glyphID -> glyphName mapping.
- Switched XML parsers: use expat instead of xmlproc. Should be faster.
- Removed my UnicodeString object: I now require Python 2.0 or up, which
  has unicode support built in.
- Removed assert in glyf table: redundant data at the end of the table
  is now ignored instead of raising an error. Should become a warning.
- Fixed bug in hmtx/vmtx code that only occured if all advances were equal.
- Fixed subtle bug in TT instruction disassembler.
- Couple of fixes to the 'post' table.
- Updated OS/2 table to latest spec.

## TTX/FontTools Version 1.0 beta 1 

2001-08-10

- Reorganized the command line interface for ttDump.py and ttCompile.py,
  they now behave more like "normal" command line tool, in that they accept
  multiple input files for batch processing. 
- ttDump.py and ttCompile.py don't silently override files anymore, but ask
  before doing so. Can be overridden by -f.
- Added -d <destination-directory> option to both ttDump.py and ttCompile.py.
- Installation is now done with distutils. (Needs work for environments without
  compilers.)
- Updated installation instructions.
- Added some workarounds so as to handle certain buggy fonts more gracefully.
- Updated Unicode table to Unicode 3.0 (Thanks Antoine!)
- Included a Python script by Adam Twardoch that adds some useful stuff to the
  Windows registry.
- Moved the project to SourceForge.

## TTX/FontTools Version 1.0 alpha 6

2000-03-15

- Big reorganization: made ttLib a subpackage of the new fontTools package,
  changed several module names. Called the entire suite "FontTools"
- Added several submodules to fontTools, some new, some older.
- Added experimental CFF/GPOS/GSUB support to ttLib, read-only (but XML dumping
  of GPOS/GSUB is for now disabled)
- Fixed hdmx endian bug
- Added -b option to ttCompile.py, it disables recalculation of bounding boxes,
  as requested by Werner Lemberg.
- Renamed tt2xml.pt to ttDump.py and xml2tt.py to ttCompile.py
- Use ".ttx" as file extension instead of ".xml".
- TTX is now the name of the XML-based *format* for TT fonts, and not just
  an application.

## Version 1.0 alpha 5

Never released

- More tables supported: hdmx, vhea, vmtx

## Version 1.0 alpha 3 & 4

Never released

- fixed most portability issues
- retracted the "Euro_or_currency" change from 1.0a2: it was nonsense!

## Version 1.0 alpha 2 

1999-05-02

- binary release for MacOS
- genenates full FOND resources: including width table, PS
  font name info and kern table if applicable. 
- added cmap format 4 support. Extra: dumps Unicode char names as XML comments! 
- added cmap format 6 support 
- now accepts true type files starting with "true"
  (instead of just 0x00010000 and "OTTO") 
- 'glyf' table support is now complete: I added support for composite scale, 
  xy-scale and two-by-two for the 'glyf' table. For now, component offset scale 
  behaviour defaults to Apple-style. This only affects the (re)calculation of 
  the glyph bounding box. 
- changed "Euro" to "Euro_or_currency" in the Standard Apple Glyph order list, 
  since we cannot tell from the 'post' table which is meant. I should probably 
  doublecheck with a Unicode encoding if available. (This does not affect the 
  output!)

Fixed bugs: 
- 'hhea' table is now recalculated correctly 
- fixed wrong assumption about sfnt resource names

## Version 1.0 alpha 1

1999-04-27

- initial binary release for MacOS

