Documentation on the .glyphspackage format?

I’m stoked that the .glyphspackage format exists, as it works much better for Git! However, life is immediately complicated because it is not yet supported by either FontMake or glyphsLib, both of which I need in the builds for my current project.

I am not really sure what is required to get support into FontMake and glyphsLib to implement support on their end, but it would likely at least be helpful to have a specific, official description of the format on the Glyphs site, so I can point to it in issues requesting support. Does such a page exist?

Here are some starter issues in those two repos:

It might make the most sense to comment over there, but I’m happy to try to communicate here, too, if that would be helpful.

Thank you!

There are two tools that take a .glyphspackage and convert it to a .glyphs file for workflows that don’t yet support .glyphspackage natively:

There is not much to document about the differences between the two format flavors:

  • the package writes each glyph to a glyphs directory where the files are named like the glyphs (with an additional underscore after capital letters) with the file extension .glyph
  • the order of the glyphs is written to a order.plist file
  • display strings are written to a UIState.plist file
  • all other data that would otherwise be in a .glyphs file is written to a fontinfo.plist file

I use makefiles to control generating variable fonts from glyphspackage files via fontmake. I just added the conversion step from .glyphspackage to .glyphs as a prerequisite for the fontmake task. I can post an example tomorrow.

1 Like

Awesome, thanks for making and sharing that, @jkutilek! I’ll give it a try this afternoon.

Here’s an example makefile:

BASE_R = DemoFamily
OUT_R = DemoFamilyVariable

GLYPHS = $(BASE_R).glyphs
GLYPHSPKG = $(GLYPHS)package
VF=variable_ttf/$(OUT_R).ttf

.PHONY: all
all: $(VF)

$(GLYPHS): $(GLYPHSPKG)
	glyphspkg $(GLYPHSPKG)

$(VF): $(GLYPHS)
	fontmake -g $(GLYPHS) \
	-o variable \
	--output-path "$(VF)"

Running make from the command line will convert the .glyphspackage file to .glyphs, then call fontmake to produce variable_ttf/DemoFamilyVariable.ttf.

Bildschirmfoto 2022-08-16 um 15.57.34

If make detects any changes on the .glyphspackage “file”, it will rebuild the .glyphs file, otherwise that step is skipped, and fontmake will be called directly on the .glyphs file.

Note: The variable font file name is set in the custom parameters of the VF export setting inside the .glyphspackage file.

master_ufo is a temporary directory that contains the master UFOs and designspace file generated by fontmake.

6 Likes

Awesome, thanks for sharing this example, @jkutilek! This is the first time I’ve seen an example of a makefile where the utility is super obvious. I’ll give it a try!