Skip to content

Releases: googlefonts/glyphsLib

v3.0.0

18 Jul 09:20
fe3cb96
Compare
Choose a tag to compare
  • Remove interpolation capabilities and thereby MutatorMath dependency. Use fontmake instead.
  • Repurposed and extended glyphs2ufo and ufo2glyphs command-line scripts to round-trip between formats with as much metadata intact as possible.
  • Fix a roundtrip bug where the Regular would be renamed to Normal

v2.4.0

20 Jun 17:16
v2.4.0
b3c84eb
Compare
Choose a tag to compare
  • Added support for "Reencode Glyphs" instance custom parameter (#378, #205).

v2.3.1

20 Jun 11:32
v2.3.1
1f1fe2e
Compare
Choose a tag to compare
  • Allow to load GSFont from a os.PathLike object on python3 (#359).
  • Fixed parsing and roundtripping of color tuples (#363).
  • Fixed regression in the generated designspace.filename when a custom family_name is provided that could lead to fontmake outputs overwriting each other (#377).

v2.3.0

04 May 11:08
754502e
Compare
Choose a tag to compare

Added:

  • glyphsLib.to_glyphs(DesignSpaceDocument | list<defcon.Font>) -> GSFont has been implemented and can create a Glyphs font from either a designspace document + source UFOs, or from a list of UFOs.
  • glyphsLib.to_designspace(GSFont) -> DesignSpaceDocument can translate a Glyphs font into a designspace document and UFOs (reachable via document.sources[i].font)
  • to_ufos() / to_designspace() (resp. to_glyphs()) have a new parameter minimize_glyphs_diffs (resp. minimize_ufo_diffs) which can be set to True when round-tripping. When true, glyphsLib stores more information in the produced file, in order to minimize diffs when coming back to the original file. It's interesting when using glyphsLib on files that are under version control.
  • Handle Axes and masters' Axis Location custom parameters.
  • Handle Glyphs "annotations" (under a lib key in generated UFOs).
  • Handle background images.
  • Handle smart components axes and values (but NOT outlines: there is no interpolation of smart components yet).
  • Handle multiple unicode values per glyph.
  • Handle guidelines.
  • Handle Glyphs hints (under a lib key in generated UFOs).
  • Support Glyphs API methods: GSFont.kerningForPair, GSFont.setKerningForPair, GSFont.removeKerningForPair

Fixed:

  • Don't crash on references to components that don't exist
  • Parse various formats for multiple unicode values.
  • Parse binary data as hex-encoded bytes.

Changed:

  • The command line argument -R/--no-round is now -r/--round-instances and does the opposite.
  • The default names for the width and weight axes is now "Width" and "Weight" in the generated designspace documents.

v2.2.1

18 Dec 16:13
Compare
Choose a tag to compare
  • Write the grid master property as gridLength in the *.glyphs file. Make gridLength a read-only property of GSMaster (equal to master.grid/master.gridSubDivisions) (#298).
  • Allow parsing datetime string without explicit timezone (fa9cdc8).
  • [MetaTools] Do not fetch license info when using external xml (#296).

v2.2.0

18 Dec 16:13
Compare
Choose a tag to compare
  • [builder.names] Set empty weight string if 'Regular' (#300, #301)
  • Support useProductionNames lib key introduced with ufo2ft v1.1.0.
    This is equivalent to the Glyphs.app-specific key "Don't use Production Names" (#294).

v2.1.1

02 Dec 16:11
Compare
Choose a tag to compare
  • Fixed issue when building UFO from .glyphs file containing layers that are associated with a non-existing master, or layers that don't have a name.
    These are now skipped, and a warning message is logged (#282, #291).

v2.1.0

27 Nov 13:55
Compare
Choose a tag to compare
  • Fixed issue parsing 12h formatted datetime (#274).
  • Fixed error parsing source file saved with Glyphs.app >= 1082 (googlefonts/fontmake#374, #267, #286).
  • Allow to generate glyphdata_generated.py from supplied xml files (#287).
  • Read colors and set UFO keys for Glyphs ColorIndex and public.markColor (#285).
  • Added support for "Replace Feature" custom parameter (#289).

v2.0.0

06 Nov 18:20
Compare
Choose a tag to compare
  • The new glyphsLib.classes module provides an API that should match the internal Python API of Glyphs.app: https://docu.glyphsapp.com/
    Note that currently not all the classes and methods may be fully implemented. We try to keep this up to date with upstream, but if you find something that is missing or does not work as expected, please open a issue.
  • The library now supports round-tripping (read/write) .glyphs files that were produced with Glyphs.app >= 2.5b (1076) without additional changes. If some Glyphs data doesn't round-trip, then it's a bug. Also, if you edit the Python objects (instances of GS* classes) before writing to .glyphs, then diff between the original Glyphs.app file and the modified one should only reflect the changes that were made to the Python objects.