- 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.
- [pens] The `T2CharStringPen` now takes an optional `roundTolerance` argument
  to control the rounding of coordinates (#804, fixes #769).
- [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

