Skip to content

Releases: googlefonts/glyphsLib

v3.4.0b1

07 May 09:53
v3.4.0b1
2a87a88
Compare
Choose a tag to compare
v3.4.0b1 Pre-release
Pre-release
  • Generate brace layer name automatically if the user added a brace layer outside Glyphs and forgot to insert the special glyph lib key storing the original brace layer name as used by Glyphs (#522).
  • Support public.skipExportGlyphs lib key for storing export flags: the export status is no longer written to the glyph lib key com.schriftgestaltung.Glyphs.Export, but to the UFO and Designspace lib key public.skipExportGlyphs, following the addition of it to the UFO specification.
    Needs ufo2ft 2.8.0-b1 or above to honor (#519).
  • Support glyph lib key ComponentInfo. It's used to preserve which non-default anchor a mark is attached to when automatic alignment is active (can be important in e.g. Vietnamese composites) (#521).

v3.3.0

22 Mar 19:43
Compare
Choose a tag to compare
  • Opportunistically round coordinates and other values of the form x.0 to int
  • Round-trip the filter com.github.googlei18n.ufo2ft.filters. It will show up in the custom attributes of masters, where Glyphs ignores it
  • Try harder to derive (sub)category for ligatures
  • Make use of the OS/2 width class value when determining where on the width axis a Glyphs master is
  • Remove 'build_instances' from __all__; fixes AttributeError when doing 'from glyphsLib import *'

v3.2.0

04 Feb 12:44
f5bcfc4
Compare
Choose a tag to compare

Updated GlyphInfo*.xml files to state of Glyphs 2.6.

Also refer to the beta notes.

v3.2.0b2

01 Feb 18:15
2a34f0b
Compare
Choose a tag to compare
v3.2.0b2 Pre-release
Pre-release
  • Master, Custom parameters, "Axis Location": run int() on location to work around a bug in Glyphs.app that sometimes stores the number as a string instead of an int.
  • Added CLI option --no-store-editor-state to not store state like the currently opened glyph tabs ("DisplayStrings"), as this easily leads to gratuitous merge conflicts.
  • build_masters will now correctly store masters on disk. Before, source layers would overwrite the full master UFOs.
  • Support automatic generation of bracket layers. They are extracted into freestanding glyphs in glyphs2ufo and back again in ufo2glyphs. Only the foreground layer is currently preserved!

v3.1.4

07 Nov 15:04
297d251
Compare
Choose a tag to compare

UFO2Glyphs: Ensure color tuples consist of integers in Python 2.

v3.1.3

31 Oct 17:15
477f9b8
Compare
Choose a tag to compare

Prevent crash of glyphs2ufo when running script from the same directory as the .glyphs file and not explicitly specifying --output-dir.

v3.1.2

19 Oct 12:32
v3.1.2
cfef8fb
Compare
Choose a tag to compare
  • Customize the ufo2ft's featureWriters by setting a key in the generated designspace <lib>. This is necessary in order to keep the current behavior in light of an upcoming change in the KernFeatureWriter default mode which is planned for the next ufo2ft release (#441).

  • parser: no longer accept invalid comma-separated lists of unicode values which are not wrapped within quotes (#436).

v3.1.1

20 Sep 10:07
ca7febe
Compare
Choose a tag to compare
  • More robustly handle public.glyphOrder: It is now generated/recovered in the way Glyphs.app expects it, leading to fewer differences when round-tripping. See 11d1111 for details.
  • Glyph classes are now always placed at the top of generated feature files: custom lookups are usually placed in the "Prefix" of a .glyphs file and may use these classes. Previously, classes were placed after them, breaking them.
  • Fix parsing backslash escaped glyph names in features. Fixes googlefonts/fontmake#445.
  • A GDEF table is now only generated by glyphs2ufo if you pass the --generate-GDEF argument. The GDEF table should only be generated if you are generating final binaries and may need the --propagate-anchors argument to work properly.
  • Make sure fontMasterID lib keys in UFOs are unique and error out otherwise. This can happen if you make a new master outside Glyphs.app.
  • Italic masters aren't named "Regular Italic" anymore.

v3.1.0

10 Sep 14:31
v3.1.0
44af0f8
Compare
Choose a tag to compare
  • [axes] Fixed issue when 'Axes' custom parameter is defined but not all the masters contain a 'Axis Location' custom parameter (#409, #411, #416).
  • [kerning] Round-trip kerning pairs as they are between UFO and glyphs, without performing any conflict resolution (best left to compiler) (#407).
  • [glyphs2ufo] Made normalization of UFOs opt-in, instead of opt-out. Use -N or --normalize-ufos to enable this from the command line script. Requires the ufonormalizer module (#415).
  • [glyphdata] Embed GlyphData.xml And GlyphData_Ideographs.xml as package data files and parse them at run-time. Removed glyphdata_generated module. Expose 'script' and 'description' attributes of GlyphData database (#410).
  • [parser] Always return list of hex strings when parsing unicode attribute (#405, 95dd3cd).
  • Added pre-commit hooks configuration and automatic linting and code reformatting to the CI checks. Reformatted the whole codebase with black. Fixed a few flake8 linter issues (#414).

v3.0.3

10 Aug 10:36
1f2f8a0
Compare
Choose a tag to compare
  • Correct handling of codePageRanges
    • UFO's openTypeOS2CodePageRanges has a few bits that Glyphs doesn't support, save those to a custom parameter on round-tripping.
    • Empty openTypeOS2CodePageRanges lists stay empty instead of being removed.
  • Fix openTypeOS2Selection handling
    • Store unsupported bits in a openTypeOS2SelectionUnsupportedBits custom value on round-tripping
    • Empty lists are preserved on round-tripping
    • openTypeOS2Selection will be sorted
  • Properly handle categorization of glyph variants
    • Non-spacing marks are properly categorized. This helps with proper feature building and zeros their width.
    • Handle not only matches for full glyph names, but also ligatures and glyph
      variants. Opportunistically concatenate uni* values.
    • Comment the code better.
  • Round-trip italicAngle == zero
  • glyphs2ufo: Make creating background layers optional (off by default)