[Work Log] Organising Google fonts/build chain

1,009 views
Skip to first unread message

Marc Foley

unread,
Jul 25, 2016, 3:24:57 PM7/25/16
to Google Fonts Discussions
Hello folks,

I'm Marc Foley, a font engineer/developer. I previously worked at Dalton Maag for several years as an engineer.

I'm helping to get the Google Font library into .glyphs format and work on a possible automatic build chain, as well as some other niceties. I will be working in collaboration with Lasse Fister. We officially started today so we are still finding our feet in this project.

What I did today:
-Drafted a brief for what we need to achieve in the next 3 months.
-Setup my system to use Google's18n tools.
-Submitted a fontmake issue which has been solved.
-Built Wei's Work-Sans as a test with Fontmake

What I will do tomorrow:
- Compare fontmake against Georg's Applescript build approach
- Inspect the old Font sources which reside in the Mercurial repository.



Dave Crossland

unread,
Jul 25, 2016, 10:36:07 PM7/25/16
to googlefonts-discuss


Hi!

On 25 July 2016 at 15:22, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:

>

>
> I'm Marc Foley, a font engineer/developer. I previously worked at Dalton Maag for several years as an engineer.

Marc specialise in Python scripting, non Latin engineering, workflows and testing. He is a BA graduate from Reading University, back in the day, currently developing web apps freelance and automating tedious tasks faced by publishers, accountants, and small businesses who use Office products, and by type designers who use font editors ;)

On this 3 month project, he and Lasse will be working on the following areas:

- Moving Google font families into git repos

- Mastering/converting font sources to .glyphs

- Scripting/Dev work for tooling

- Automating or improving as much as possible the font build/compilation and quality checking process.

Does anyone have any question you may have about this?

They are  both in Germany and their timezone is Central European TZ (UTC+01:00) and can join our community calls


 
> I'm helping to get the Google Font library into .glyphs format and work on a possible automatic build chain, as well as some other niceties. I will be working in collaboration with Lasse Fister. We officially started today so we are still finding our feet in this project.
>
> What I did today:
> -Drafted a brief for what we need to achieve in the next 3 months.
> -Setup my system to use Google's18n tools.
> -Submitted a fontmake issue which has been solved.
> -Built Wei's Work-Sans as a test with Fontmake

Cool

> What I will do tomorrow:
> - Compare fontmake against Georg's Applescript build approach

Perfect

> - Inspect the old Font sources

I am uploading them now to google drive as I only had access to a corporate chromebook today and no access to real UNIX.

--
Cheers
Dave

Dave Crossland

unread,
Jul 25, 2016, 10:44:47 PM7/25/16
to googlefonts-discuss

I wonder if you will be able to use AppleScript to get work sans built with Glyphs via Travis CI - you can install it using homebrew cask.

Georg's AppleScript is here

http://forum.glyphsapp.com/t/how-to-automate-glyphs-export/4800/4

Marc Foley

unread,
Jul 26, 2016, 7:17:22 PM7/26/16
to Google Fonts Discussions
Day 2:

What I did today:
- Compare the difference between Glyphsapp 2.3 vs fontmake for building ttfs. Google doc of differences here. Github repo of experiment setup here. See below for further info
- Submitted a small 1 line to pr for Fontmake. The tool now successfully builds for python 2.7. I needed this in order to create my comparison. 

What I will do tomorrow:
- Attempt to get Travis, Georg's apple script into a rough CI workflow with Wei's Work Sans.



Font comparison details:
Forgive the roughness of this experiment. There is a shell build script so we can all gen the same ttx files to test. I feel this tool has a lot of potential. However, I cannot give a definite answer. I first need to get a CI workflow running with Georg's approach. The differing output from fontmake seems deliberate, such as using an os/2 v4 table etc. I will be following the development of this tool closely. Once I have attempted a Travis workflow, I must jump back into converting all the .vfbs into .glyphs files.

Marc Foley

unread,
Jul 27, 2016, 4:59:06 PM7/27/16
to Google Fonts Discussions
Day 3:

What I did today:
- Attempted Travis, Apple Script, glyhpsapp build**
- Added additional test to see if fonts with smart components can be generated with fontmake. Added to report as well. For this repo, I have started using unit tests for each test. This will ensure as the tools are updated, we have tests we can rerun to check for changes.

What I will do tomorrow:
- Analyse all the issues present in https://github.com/google/fonts/issues and see if any can be batched for all fonts. We can then implement this when we convert the families into .glyphs.

**
Unfortunately my Travis setup was a failure for the time I had allocated.

Using applescript with Python relies on py-applescript. This wrapper uses the PyObjC library which I couldn't get to work. I didn't want to waste my day on hacking dependencies together. I also have some doubts about this approach, due to all the dependencies involved. Travis would need to install Glyphsapp through brew which is also a bit ghetto. Honestly, going from .glyphs -> .ufo -> .ttf with fontmake will be easier, when it works. I think it is best we invest our time in the primary aim of getting everything into .glyphs at the moment. Due to personal interests, I may invest some of my time on weekends to fontmake. It could solve many problems.

Marc Foley

unread,
Jul 28, 2016, 5:27:00 PM7/28/16
to Google Fonts Discussions
Day 4:

What I did today:
- Started clean up for Francoise One with Lasse. We are working out how we can best batch these in the future. We did the majority of the steps provided in check list of Fonts mini-work... spreadsheet. We left out a few because they seemed to fit the role of a designer better.
- Briefly viewed all issues in google/fonts. I have come up with a list of possible global fixes that we may need to apply or at least have automated tests for. I will add these to a repo tomorrow. It works with a small shell script.

What I will do tomorrow:
- Me and Lasse will clean up Montserrat
- Start writing a script to automate this process.

Dave Crossland

unread,
Jul 28, 2016, 5:28:55 PM7/28/16
to googlefonts-discuss
Hi!

On 28 July 2016 at 16:39, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
- Started clean up for Francoise One with Lasse. We are working out how we can best batch these in the future. We did the majority of the steps provided in check list of Fonts mini-work... spreadsheet. We left out a few because they seemed to fit the role of a designer better.
 
Which did you leave out?

- Briefly viewed all issues in google/fonts. I have come up with a list of possible global fixes that we may need to apply or at least have automated tests for. I will add these to a repo tomorrow. It works with a small shell script.

Are these things that Font Bakery is not yet checking for?

--
Cheers
Dave

Alexei Vanyashin

unread,
Jul 29, 2016, 9:35:17 AM7/29/16
to Google Fonts Discussions, da...@lab6.com
Hi Mark, about the expanded kerning problem,

Here is how I tackled this issue. This is typical for many fonts in the repo. 


1. Open this font fileIt shows 2046 extracted pair. 
3. Press compress kerning. Boom! 1011


N.B. If I run the Remove all kerning exceptions script at this point, this results in 0 pairs. See output-step2.txt




3. Press compress kerning again.
Boom! 633. My assumption, Glyphs has a two-step algorithm for compressing pairs. 



4. Now I want to get rid of exceptions like these:

T/C is redundant. O and C are in the same class. No exception here needed.


After running Remove all kerning exceptions script: 481 pairs.

See output-step4.txt


Any thoughts in this?

-a



output-step4.txt
output-step2.txt

Alexei Vanyashin

unread,
Jul 29, 2016, 9:40:46 AM7/29/16
to Google Fonts Discussions

Boom! 633. My assumption, Glyphs has a two-step algorithm for compressing pairs. 

Marc Foley

unread,
Jul 29, 2016, 6:32:53 PM7/29/16
to Google Fonts Discussions
Day 5:

What I did today:
- We had to redo Francois One. We found Gunnar had already done some updates: https://github.com/m4rc1e/francoisone
- Briefly had a play with Fontbakery. I fear we may have a dependency hell happening. However, it does have some cool stuff. I will start a doc on this topic soon.
- Added 2 new scripts to my Glyphsapp repot
   1. ''Mark glyphs in the selected font which exist in all opened fonts''' (useful if you are updating an old font)
    2.' Automate Google Font project Spec.' **

** This is the big one. Please bare in mind this is a wip extreme at the moment, myself and Lasse will be adding tests/fixes as we progress. I went through our checklist for Francois One and wanted to kill myself. The checklist/spec is absolutely amazing, a lot of thought put into each step. However, this is a job for a machine, not a human. Over the weekend, I will try and cover everything we need. I will push it to git on Sunday.

Questions for the team:
- Is any one using FontBakery in there workflow at the moment?

Marc Foley

unread,
Jul 29, 2016, 6:32:54 PM7/29/16
to Google Fonts Discussions
Hey Alexei,

Thank you so much for writing up your step by step on this. I will try and summarise my thoughts on this by Sunday.

Cheers,
Marc

Dave Crossland

unread,
Jul 29, 2016, 6:37:17 PM7/29/16
to googlefonts-discuss, Pablo Impallari

On 29 July 2016 at 17:42, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
- Is any one using FontBakery in there workflow at the moment?

Me. Alexei and Khaled have reported bugs, so I guess them too. Thomas and Jacques and Nhung have focused on design so far, not production. 

I think Pablo might have some other scripts he used to pre-flight projects..?

Marc Foley

unread,
Aug 1, 2016, 4:48:24 PM8/1/16
to Google Fonts Discussions, da...@lab6.com
Weekend push

Day 6–7:

What I did today:

Francois One is ready for Mr Jockin

Here's the first super draft https://github.com/m4rc1e/mf-glyphs-scripts/blob/master/test_gf_spec.py. I wouldn't usually upload a script in such a primitive condition. However, it has helped me so far. I'll keep on improving it as I come across more edges cases in projects.

What I'll do tomorrow:
I will get Raleway ready.

Marc Foley

unread,
Aug 1, 2016, 4:48:24 PM8/1/16
to Google Fonts Discussions
Day 8:

What I did today:
-Started cleanup work on Raleway. 90% complete
-Half completed a vertical metric checking script for Glyphsapp/FontTools. It checks the 2 metrics schemes (Khaled's and Kalapi's), it will also see if the metrics fulfill the old 125% rule as well.The functions are quite loose so hopefully we can recycle this back into Fontbakery as well. I will need Khaled and Kalapi to review my functions in this script, to see if it meets their specifications. I should have something uploaded tomorrow. 

I'm splitting my day so 50% is repo work, the other 50% is necessary cleanup scripts/tooling commits.

Questions for the team:
-Hey Alexei, I looked into the kerning a little and recreated what happened to you. Yep, it is weird as hell. I've checked the 'Remove all kerning exceptions' script and can't really fault it. Your link to the forum explains everything ;). 

Alexei Vanyashin

unread,
Aug 1, 2016, 5:11:24 PM8/1/16
to Google Fonts Discussions
Hi Mark, 

It's great that you're prepping Raleway. I'm mainly concerned about kerning classes.

When I open the UFO master(src/Masters/*.UFO), I see 3936 expanded pairs. 




The kerning classes are declared in the OT panel:


But not there in the font view: (no classes assigned)


Ideally I want to see them in the font view to be able to kern in Glyphs App.  


I tried importing metrics via .AFM from FL sources with no luck. 


Is there an elegant solution for this?


Alexei

Marc Foley

unread,
Aug 2, 2016, 5:18:37 PM8/2/16
to Google Fonts Discussions
Day 9:

What I did today:
- Prep Oswald font, 90% complete
- Implement Khaled's vertical metrics scheme as a python script for Glyphsapp. FontTools version can come later.

What I will do tomorrow:
- Prep another font on our list.
- Implement Kalapi's vertical metrics scheme and the 125% rule as well.
- Get Khaled to review my scripts schema.
- Start a repo of glyphsapp scripts and get designers to submit script requests.

@Alexei: Thank you for raising 2 great issues. I hope by collecting these in a repo, we can make some cool scripts that will save you folks time.

Night all,
Marc

Marc Foley

unread,
Aug 2, 2016, 5:18:38 PM8/2/16
to Google Fonts Discussions
Hey Alexei,

I noticed this to. I will see if I can some up with something for you. Since me and Lasse are prepping 5 repos, we may not get time to cover this.

I'll keep you in the loop.

Cheers,
Marc

Marc Foley

unread,
Aug 2, 2016, 5:18:38 PM8/2/16
to Google Fonts Discussions
I forgot my questions for the team:

What do we do with fonts which have VTT sources? do we drop them and use ttfautohint?


Marc Foley

unread,
Aug 2, 2016, 5:18:38 PM8/2/16
to Google Fonts Discussions
Hey Alexei,

This is a great find. I will mention this in my 'what I will do tomorrow'

Marc Foley

unread,
Aug 3, 2016, 4:56:12 PM8/3/16
to Google Fonts Discussions
Day 10:

What I did today:
- Wrote Kalapi's vertical metric scheme as a script
- Revived Kalapi's vertical metric thread

What I will do tomorrow:
- Prepare Maven

any questions for the team:
Maven Pro has VVT sources. I strongly suggest we drop these and stick to ttfautohint. If you adjust an outline or change the metrics, you will need to manually rehint that glyph using VTT. It also means we will need to write our own VTT hint transferring scripts and build more infrastructure and rehint stuff we change. Also, its Windows only. The downside is, VTT hinting takes a lot of effort so the original author may be sad to see it go. 

Dave Crossland

unread,
Aug 4, 2016, 12:11:15 PM8/4/16
to googlefonts-discuss, Sascha Brawer

Hi Marc!

On 3 August 2016 at 16:45, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:

any questions for the team:
Maven Pro has VVT sources. I strongly suggest we drop these and stick to ttfautohint. If you adjust an outline or change the metrics, you will need to manually rehint that glyph using VTT. It also means we will need to write our own VTT hint transferring scripts and build more infrastructure and rehint stuff we change. Also, its Windows only. The downside is, VTT hinting takes a lot of effort so the original author may be sad to see it go.

Yeah I am totally comfortable dropping the VTT hinting and using ttfautohint. We may need an extra day of your time for this after the redrawing is completed to make a ttfautohint controls file, to polish up any major issues with the ttfa results that are regressions from the VTT hints. 


Next week when the schedule has a few days for bug resolution, I'd like to ask you to review the latest release of fontdiff, and make a list of things you would like to see implemented in fontdiff so it becomes more useful for you :)


Sascha has also experimented with using travis and fontmake to push commits with git tags to github releases:

Cheers
Dave

Marc Foley

unread,
Aug 4, 2016, 5:37:49 PM8/4/16
to Google Fonts Discussions
Day 11:

What I did today:
-Got Rokkit to 90%
-Wrote a script to get the interpolation value of instances if you know the master values. It needs a yaml file, check it out here:

What I will do tomorrow:
-Polish all 3 repos at 90%
-Do Maven Pro
-Sleep 

Questions for the team:

Another big one I am afraid. A lot of these families can have 9 weights. I personally would not want a .glyphs file which has 9 masters in them. I would like to have at most 3 masters. There is a problem in doing this. If you go back to just 3 masters say thin, reg, black. You'll delete any refinements made the bold etc.

Here's a screenshot to show what I mean:


The stem weights match perfectly but the width is different. 


Here's two words. (can't do a paragraph yet, some MM problems)



So which one has been drawn or interpolated? 


And what would you guys prefer or think we should do? my heart is still with 3 masters because doing the same thing to 9 fonts is insanity.


Cheers,

Marc




Dave Crossland

unread,
Aug 4, 2016, 5:50:26 PM8/4/16
to googlefonts-discuss

On 4 August 2016 at 17:36, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
Another big one I am afraid. A lot of these families can have 9 weights. I personally would not want a .glyphs file which has 9 masters in them. I would like to have at most 3 masters. There is a problem in doing this. If you go back to just 3 masters say thin, reg, black. You'll delete any refinements made the bold etc.

The refinements likely won't be made to every glyph, though, so I wonder if you can script comparing the 'intermediate masters' glyphs to the interpolated glyphs to make 2 sets, the identical and the different ones, and the designer can decide to make the different ones as a bracket/brace master or accept the interpolation?

Marc Foley

unread,
Aug 7, 2016, 2:50:58 PM8/7/16
to Google Fonts Discussions
day 12–14:

What I did these days:
-All repos have been mastered for the designers, urls below:
• Nunito
Oswald 
Rokkit 
Raleway (Currently being worked on Sohn) 
 

What I will do tomorrow:
- Finalise Dancing script repo.

I'll forward this message of all the folks who need to work on these repos for tomorrow. 

Cheers,
Marc

Marc Foley

unread,
Aug 9, 2016, 2:09:26 AM8/9/16
to Google Fonts Discussions
Day 15:

What I did today:
- Prepared Dancing Script


What I will do tomorrow:
- Bug elimination begins ;)


Marc Foley

unread,
Aug 10, 2016, 5:38:05 AM8/10/16
to Google Fonts Discussions
Day 16:

What I did today:
- Look at Pacifico for JL
- Investigated outstanding bugs and started developing workflow.

What I will do tomorrow:
- Manually do a few bugs.
- Write necessary scripts to fix repetitive tasks

Marc Foley

unread,
Aug 11, 2016, 5:53:23 PM8/11/16
to Google Fonts Discussions
Day 17-18:

Firstly, I apologise for missing yesterdays update. I will also make my updates more detailed as well.

What I did today and yesterday.

I fixed the following bugs. 

Repos are here:

I've added the following QA scripts to my repo:

**more on this below

What I will do tomorrow:
- Document/refine my scripts and workflow better
- Make a screencast tackling a bug fix with repo rebuild


In order for me to bug fix, I've needed to write tools to help me. For every bug I encounter, I try and write a script for it. This means we can solve the same bugs in different fonts more easily in the future. Unfortunately, they are very rough and not very well documented. The names are also terrible. We have a fantastic opportunity here to produce some excellent QA scripts. These tasks should never ever be done by a human. Glyphsapp is currently lacking in this area and I think we can really give something back.

Dave Crossland

unread,
Aug 11, 2016, 8:08:31 PM8/11/16
to googlefonts-discuss
Hi Marc

Thanks for this update! All good :)

I'd also like to ask that you include 2-3 images of your work each day.  I see you posted some images in these issues; would be great to include them in this post inline too :) 

You've made some simple but powerful scripts that I think are important - but I only know about why and how to use them because you showed them to me and explained why its valuable :)  And I think your scripts are less useful when they are living on their own like this; each requires a user to remember to run it. 

So, I think what I'd like to request is that you make a single "Test My Font" script, that (imports and) runs all possible checks, and has a very simple vanilla UI. 

The output is only in the Macro window's output area and often seems quite cryptic; beyond adding/changing print statements to be more self-evidentially informative, making UIs with Vanilla can be fast and easy. (It seems that to show UIs then Glyphs scripts must be packaged as Plugins (https://glyphsapp.com/tutorials/plugins) although Vanilla might not have this requirement and that would make it a better choice for me for now.)

Your scripts seem to be more 'straight fix'ers rather than a 'check and fix'ers; the latter might say something like, 'some diacritic glyphs' sidebearings should match their parents, click here to see the list of glyphs in a popup, and here to make them so.' 
 
In order for me to bug fix, I've needed to write tools to help me. For every bug I encounter, I try and write a script for it. This means we can solve the same bugs in different fonts more easily in the future. Unfortunately, they are very rough and not very well documented. The names are also terrible. We have a fantastic opportunity here to produce some excellent QA scripts. These tasks should never ever be done by a human. Glyphsapp is currently lacking in this area and I think we can really give something back.

I agree with all that :)

What I will do tomorrow:
- Document/refine my scripts and workflow better
- Make a screencast tackling a bug fix with repo rebuild

Sounds great - perhaps you can migrate the https://github.com/googlefonts/gf-docs/blob/master/ProjectChecklist.md document to live inside your tool. 

However, please scope this to just tomorrow :)

--
Cheers
Dave

Marc Foley

unread,
Aug 12, 2016, 7:41:58 PM8/12/16
to Google Fonts Discussions
Thank you Dave,

Day 19:

What I did today:
- As Dave suggested, I refactored and turned all the single scripts into a testing module. It now has a rather funky UI as well.


It definitely makes the process much clearer. 

I have held off from making a screencast due to Dave's suggestion. It would be much better to do a screencast when I have this QA testing tool finished.

The output is very simple and just prints a PASS or FAIL message for each check.



I still need to combine this tool with Dave's checklist. I have been given editing permissions for the document. My aim is to elaborate how this tool will fit into his spec.

What I will do next week:
- I'm mean't to be off. However, I don't mind doing some work on this in the evenings. Instead of only checking for issues, this tool should have the option to fix them as well.

Welcome to the wonderful world of QA ;)

Dave Crossland

unread,
Aug 17, 2016, 11:34:54 AM8/17/16
to googlefonts-discuss
On 12 August 2016 at 16:41, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
Welcome to the wonderful world of QA ;)

Alexei Vanyashin

unread,
Aug 19, 2016, 2:10:35 PM8/19/16
to Google Fonts Discussions, da...@lab6.com
Hi Marc, 

I would really appreciate it if you could prep Rubik font files, and port to them to glyphs?

Alexei 

Marc Foley

unread,
Aug 22, 2016, 9:18:03 AM8/22/16
to Google Fonts Discussions
What I did last week:

I was away on a short break. I had some no fly days so I continued to work on our QA tool. It still isn't finished. It can only report at the moment. It will have the ability to fix certain things which are wrong (not everything though ;).

A preview of it is here:

If you're intrigued. Look at the frontpage/readme of the folder above.


What I did today:
- Prepared Muli

What I will do tomorrow.
- Prepare Cabin
- Prepare Dosis

Questions for the team:
@Pablo: do you have the sources for Dosis?


**Instead of manually copying and pasting font info between two fonts. Here's a script to copy the font info the background font, into the selected font.


1 open fonts.



2 run script


3 info will be transferred to font in foreground. Error will be returned if there are more or less than two fonts opened.




This script is very useful when making families which have Italics.

Cheers,
Marc

Dave Crossland

unread,
Aug 22, 2016, 10:35:07 AM8/22/16
to googlefonts-discuss

On Aug 19, 2016 11:10 AM, "Alexei Vanyashin" <a...@cyreal.org> wrote:
>
> I would really appreciate it if you could prep Rubik font files, and port to them to glyphs?

Do you still need this Alexei?

Marc Foley

unread,
Aug 22, 2016, 10:35:30 AM8/22/16
to Google Fonts Discussions
Also, I have my flights booked for NYC. I took your advice and used https://flightfox.com saved around $100.

Alexei Vanyashin

unread,
Aug 22, 2016, 11:02:02 AM8/22/16
to Google Fonts Discussions, da...@lab6.com
No, It's sorted out now.  Thanks to Rubik people. 

Marc Foley

unread,
Aug 22, 2016, 11:06:49 AM8/22/16
to Google Fonts Discussions
Hey Alexei,

Thank you for getting this sorted.

@Dave, should I record how to prep a repo?

This process can take over half a day though. It's basically running through the checklist spec and using some scripts, if needed.

Cheers,
Marc

Dave Crossland

unread,
Aug 22, 2016, 11:20:13 AM8/22/16
to googlefonts-discuss
On 22 August 2016 at 11:06, 'Marc Foley' via Google Fonts Discussions
<googlefon...@googlegroups.com> wrote:
> @Dave, should I record how to prep a repo?
>
> This process can take over half a day though. It's basically running through
> the checklist spec and using some scripts, if needed.

Yes, I think a step by step (perhaps a PR on the ProjectChecklist.md
file?) would be ideal, so that Nhung and Alexei's team can also prep
projects

Marc Foley

unread,
Aug 23, 2016, 3:22:58 AM8/23/16
to Google Fonts Discussions, da...@lab6.com
Ok Dave,

I will prep a repo today and record every git commit/step as detailed as possible. Imo, this should be a separate document titled 'Upgrading font repositories to new spec' or something along those lines. I fear if we grow the checklist too much, fatigue will set in.


Anyways, I'll record all the steps, then we can decide what to do with it.


Cheers,
Marc

Marc Foley

unread,
Aug 23, 2016, 4:00:07 PM8/23/16
to Google Fonts Discussions
What I did today:
- Prepared Cabin
- Drafted a guide to upgrading old repositories**
- Tidied up my glyphs-script repo**

What I will do tomorrow:
- Prepare Abel and Indie Flower


Questions for the team:
@Dave: Could you submit any issues regarding my Upgrading Existing Repositories fork? Once we're happy I will submit a pr into the gf-docs repo. I'll also relook at the content with fresh eyes during the week.

**
I'm currently documenting a lot of my workflow. The aim of this document is to outline how I prepare a repo for designers. I also list the tools and techniques I use. It is still a major WIP, I don't want to push it to the main gf-docs repo, until we're happy with it.

While I was documenting my workflow. I thought it would be a good idea to tidy up my scripts repo. I've reorganised the folder and added subfolders for better clarity.


I think the scripts which are specific to QAing our documents (Google Fonts folder) should be transferred to the Google Fonts repo, once they are refined a bit more.

Cheers and have a nice eve,
Marc

Marc Foley

unread,
Aug 24, 2016, 3:34:17 PM8/24/16
to Google Fonts Discussions
What I did today:
- Prepared Abel & Indie Flower

What I will do tomorrow:
- Prepare Dosis and Josefin Sans

What I will work on Friday:
- Add gf-docs scripts to Google Fonts repo (or at least discuss with Dave about this)

**I have decided to split the scripts which test whether our repositories match the gf-docs Checklist and report font errors. The scripts for the gf-docs checklist will be uploaded to the GF repo eventually. The QA font script still has the UI.


I decided on splitting because our gf-docs scripts is checking contestants which involve the folder structure, txt files and custom font parameters of the source files. These constants are only relevant to us. The QA script is specifically for checking .glyphs sources only. I believe this is a nice separation of concerns.


Pablo Impallari

unread,
Aug 25, 2016, 12:05:32 AM8/25/16
to googlefonts-discuss
Hi Mark,
Great work on the documentation and great scripts!!! Truly appreciated!!!

Two comments on the upgrading guide:

1) Not big deal... just a OCD thing.
You recommend having 3 folders "source", "fonts" and "old".
I suggest to keep only two folders "source" and "fonts" on the root level, and creating "old" folders inside each one: One having old fonts, another having "old" sources.

2) You recommend having separate Glyph sources for "Condensed", "Expanded", etc...
Having all in the same source file makes much more sense, so you can interpolate.
You may have master for 2 widths: "Condensed" and "Expanded", and generate fonts for 4 widths: "Condensed", "Narrow", "Normal", "Wide".
You can't do this if the master are in separate files.
For an example, have a look at the Masters and Instances configuration of Libre Clarendon https://github.com/impallari/Libre-Clarendon


--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.
To view this discussion on the web visit https://groups.google.com/d/msgid/googlefonts-discuss/77e25240-3a50-46ed-bfe9-f0216e8095c8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
Un Abrazo
Pablo Impallari

Pablo Impallari

unread,
Aug 25, 2016, 3:38:02 AM8/25/16
to googlefonts-discuss
Hi Mark,
Dosis sources uploaded to https://github.com/impallari/Dosis
Inside the "source" folder you will find the ones that are good for the migration clearly indicated.



2016-08-25 1:05 GMT-03:00 Pablo Impallari <impa...@gmail.com>:
Hi Mark,
Great work on the documentation and great scripts!!! Truly appreciated!!!

Two comments on the upgrading guide:

1) Not big deal... just a OCD thing.
You recommend having 3 folders "source", "fonts" and "old".
I suggest to keep only two folders "source" and "fonts" on the root level, and creating "old" folders inside each one: One having old fonts, another having "old" sources.

2) You recommend having separate Glyph sources for "Condensed", "Expanded", etc...
Having all in the same source file makes much more sense, so you can interpolate.
You may have master for 2 widths: "Condensed" and "Expanded", and generate fonts for 4 widths: "Condensed", "Narrow", "Normal", "Wide".
You can't do this if the master are in separate files.
For an example, have a look at the Masters and Instances configuration of Libre Clarendon https://github.com/impallari/Libre-Clarendon

2016-08-24 16:34 GMT-03:00 'Marc Foley' via Google Fonts Discussions <googlefonts-discuss@googlegroups.com>:
What I did today:
- Prepared Abel & Indie Flower

What I will do tomorrow:
- Prepare Dosis and Josefin Sans

What I will work on Friday:
- Add gf-docs scripts to Google Fonts repo (or at least discuss with Dave about this)

**I have decided to split the scripts which test whether our repositories match the gf-docs Checklist and report font errors. The scripts for the gf-docs checklist will be uploaded to the GF repo eventually. The QA font script still has the UI.


I decided on splitting because our gf-docs scripts is checking contestants which involve the folder structure, txt files and custom font parameters of the source files. These constants are only relevant to us. The QA script is specifically for checking .glyphs sources only. I believe this is a nice separation of concerns.


--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsubscribe...@googlegroups.com.

To post to this group, send email to googlefonts-discuss@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.
--
Un Abrazo
Pablo Impallari

Marc Foley

unread,
Aug 25, 2016, 4:34:40 AM8/25/16
to Google Fonts Discussions
Hey Pablo,

Thank you for your analysis 

1. We'll discuss in next team meetup

2. Agreed, I will amend Cabin and include the Condensed in the Roman. I will update my document as well.

Cheers,
Marc

Marc Foley

unread,
Aug 25, 2016, 4:02:03 PM8/25/16
to Google Fonts Discussions
What I did today:
- Prepared Dosis
- Added script to check & fix if instances/masters do not share the same vert metrics**
- Caught up with Lasse. He's back from vacation so we went through my documentation and scripts.

**Script also has option in the UI for the QA tool.


Every time I need to write a script to check something, I add it to this


What I will do tomorrow:

- Refine Upgrading existing repositories doc


Unfortunately, I will be flying back to the UK for the weekend tomorrow. I booked this before the hangout for tomorrow was created. I will see if i can call you from Airport departures.


Please can someone discuss the following two issues:


When updating a repository how do we increment the version number?

v1.002 == v2.002 or v1.002 == v2.000


Pablo's query above about the old folder in repositories?

1) Not big deal... just a OCD thing.
You recommend having 3 folders "source", "fonts" and "old".
I suggest to keep only two folders "source" and "fonts" on the root level, and creating "old" folders inside each one: One having old fonts, another having "old" sources.

Cheers,
Marc

Dave Crossland

unread,
Aug 25, 2016, 4:09:24 PM8/25/16
to googlefonts-discuss
On 25 August 2016 at 13:02, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:

When updating a repository how do we increment the version number?

v1.002 == v2.002 or v1.002 == v2.000

v1.002 -> v2.000

Pablo's query above about the old folder in repositories?

1) Not big deal... just a OCD thing.
You recommend having 3 folders "source", "fonts" and "old".
I suggest to keep only two folders "source" and "fonts" on the root level, and creating "old" folders inside each one: One having old fonts, another having "old" sources.

I agree with Pablo (and in fact I'm ok to not have any old dirs, and let git do its job, but if people prefer to have them, I don't mind the being there   :)

Lasse Fister

unread,
Aug 25, 2016, 4:11:02 PM8/25/16
to googlefon...@googlegroups.com

Please can someone discuss the following two issues:


When updating a repository how do we increment the version number?

v1.002 == v2.002 or v1.002 == v2.000


I suggest the second approach, going to the next major version. Feels more sound to me, especially with semver in mind.



Pablo's query above about the old folder in repositories?

1) Not big deal... just a OCD thing.
You recommend having 3 folders "source", "fonts" and "old".
I suggest to keep only two folders "source" and "fonts" on the root level, and creating "old" folders inside each one: One having old fonts, another having "old" sources.

The old folder, I thought it would be removed once the release is ready. There's no use for it anymore then, the new version is ready, no need to look things up in old files anymore.


L.

Dave Crossland

unread,
Aug 25, 2016, 4:26:31 PM8/25/16
to googlefonts-discuss

On 25 August 2016 at 13:10, Lasse Fister <la...@graphicore.de> wrote:
The old folder, I thought it would be removed once the release is ready. There's no use for it anymore then, the new version is ready, no need to look things up in old files anymore.

Pablo likes to have the old versions around easily 'just in case'; I don't think having them is an error, but perhaps a source repo checker might warning about them

Marc Foley

unread,
Aug 29, 2016, 4:21:57 AM8/29/16
to Google Fonts Discussions
Hey folks,

Me and Lasse have finished preparing the repos for you

Repository links:

Please fork these.

Email has been copied into my daily work thread.

If you have any questions. Please ask. Also, to get a better understanding of what has been prepared for you, we have documentation on our process Upgrading Existing Repositories.

Cheers,
Marc

Khaled Hosny

unread,
Aug 29, 2016, 8:13:23 AM8/29/16
to 'Marc Foley' via Google Fonts Discussions
On Mon, Aug 29, 2016 at 01:21:57AM -0700, 'Marc Foley' via Google Fonts Discussions wrote:
> Josefin Sans <https://github.com/graphicore/JosefinSansFont>

Is this the latest version the Dave had?

Regards,
Khaled

Lasse Fister

unread,
Aug 29, 2016, 8:22:23 AM8/29/16
to googlefon...@googlegroups.com
Yes. There where some fixes in the binaries though. Also, see the
comment about the Kerning in README.md. The sources where not in the
googlefontsdirectory repository and came from Daves inbox. But, I think
the rest was up to date with the google fonts version. At least I tried
to verify this, see also:
https://github.com/graphicore/JosefinSansFont/commit/13395810ebd5b642778a0287b24333dcccd5ad85


L.



--
Lasse Fister

Tel.: +49 (160) 949 106 15

Glückstraße 7
90763 Fürth

Visit www.graphicore.de


Khaled Hosny

unread,
Aug 29, 2016, 5:37:34 PM8/29/16
to googlefon...@googlegroups.com
On Mon, Aug 29, 2016 at 02:22:21PM +0200, Lasse Fister wrote:
> On 29.08.2016 14:13, Khaled Hosny wrote:
> > On Mon, Aug 29, 2016 at 01:21:57AM -0700, 'Marc Foley' via Google Fonts Discussions wrote:
> >> Josefin Sans <https://github.com/graphicore/JosefinSansFont>
> > Is this the latest version the Dave had?
> >
> > Regards,
> > Khaled
> >
>
> Yes. There where some fixes in the binaries though. Also, see the
> comment about the Kerning in README.md. The sources where not in the
> googlefontsdirectory repository and came from Daves inbox. But, I think
> the rest was up to date with the google fonts version. At least I tried
> to verify this, see also:
> https://github.com/graphicore/JosefinSansFont/commit/13395810ebd5b642778a0287b24333dcccd5ad85

OK, thanks (I’m just asking to see if I can switch my Reem Kufi font to
use the Latin from your fork).

Regards,
Khaled

Marc Foley

unread,
Aug 29, 2016, 5:38:26 PM8/29/16
to Google Fonts Discussions
What I did today:
- Look at bugs affecting Khand. I'm still checking whether the name table is correct**
- Reorganised my scripts repo. **

What I will do tomorrow:
- Write script to check name table matches spec.
- Finalise Khand


** No full name for Khand is the only error I have left to confirm for Khand. However, I'm trying to figure out what the issue is. So far I have written scripts to check the vertical metrics and repository structure. This is definitely the next thing I need to implement. The specification already exists in this spreadsheet. Font Bakery has a script called fontbakery-fix-familymetadata & fontbakery-fix-nameids, from what I have read, neither of these tackle the problem.

** My glyphs scripts are progressing faster. Pablo has also started submitting issues


The directory used to look like this:


├── Fix_selected_composite_metrics.py

├── QA

│   ├── __init__.pyc

│   ├── check_family.py

│   ├── find_duplicate_glyphs.pyc

│   ├── font_name.pyc

│   ├── fontinfo.pyc

│   ├── glyphs.pyc

│   ├── has_outlines.pyc

│   ├── master_same_metrics.pyc

│   ├── metrics.pyc

│   ├── panose.pyc

│   └── uni00a0_width.pyc

├── README.rst

├── Set_selected_glyphs_all_layers_sidebearings_60.py

├── build-font-from-fonts.py

├── calc_instance_weight.py

├── check_125_rule.py

├── find_duplicate_glyphs.py

├── fix_gf_spec.py

├── fix_uni00a0_width.py

├── gposreport.py

├── kernreport.py

├── mark-glyphs-in-other-fonts.py

├── test_gf_spec.py

├── test_kalapi_metrics.py

├── test_khaled_metrics.py

└── test_missing_glyphs_across_fonts.py


We now have this.


├── Fixes

│   ├── Fix_selected_composite_metrics.py

│   ├── Set_selected_glyphs_all_layers_sidebearings_60.py

│   ├── __init__.py

│   ├── auto_designer_metrics.py

│   ├── build-font-from-fonts.py

│   ├── copy_font_info_from_background_font.py

│   ├── copy_masters_vmetrics_2_instances.py

│   └── fix_gf_spec.py

├── Google\ Fonts

│   ├── README.md

│   ├── check_125_rule.py

│   ├── test_gf_spec.py

│   ├── test_kalapi_metrics.py

│   └── test_khaled_metrics.py

├── QA

│   ├── README.md

│   ├── __init__.pyc

│   ├── checkfamily.py

│   ├── config_file.png

│   ├── find_duplicate_glyphs.pyc

│   ├── font_name.pyc

│   ├── fontinfo.py

│   ├── fontinfo.pyc

│   ├── glyphs.py

│   ├── glyphs.pyc

│   ├── has_outlines.pyc

│   ├── mark-glyphs-in-other-fonts.py

│   ├── master_same_metrics.pyc

│   ├── metrics.py

│   ├── metrics.pyc

│   ├── panose.pyc

│   ├── qa.yml

│   ├── test_missing_glyphs_across_fonts.py

│   ├── ui.png

│   └── uni00a0_width.pyc

├── README.rst

└── Reports

    ├── gposreport.py

    └── kernreport.py




questions for the team
- Can Font Bakery test fonts against our family naming spreadsheet?

Dave Crossland

unread,
Aug 29, 2016, 6:01:46 PM8/29/16
to googlefonts-discuss

Laing Hai just rebuilt poppins btw

FB check family names, yes

Marc Foley

unread,
Aug 31, 2016, 2:34:13 PM8/31/16
to Google Fonts Discussions

Sorry for missing the yesterday's update.


For this week, I've been fixing issues for the milestone Bugs in font files. A lot of the work is actually verifying the bug exists. You can easily end up down a rabbit hole looking for sources. Often newer sources exist which has the bug already fixed.


What I did yesterday
- Attempted to fix Caveat, then discovered more modern sources may exist elsewhere.**
- Looked further into Khand, however it appears the fonts uploaded are out of date.**
- Cleaned up my Upgrading Repositiories doc (Pull request finally sent ;)


What I did today:
- Fixed bug #71 in ShareTech and rebuilt repo
- Confirmed latest version of Asap will solve bug #97
- Confirmed latest version of Asap will solve bug #240 (Basically upload the new Asap version and we're good)
- Investigated vertical metrics bug in Poppins, #241. Seems to be a non issue to me. I will wait for a response before I close it.



What I will do tomorrow:
- Carry on fixing bugs in font files
- Fix my scripts according to Issues Pablo has submitted.




**Questions for the team:
@Dave do you have the sources for Caveat. I need them in order to complete #133. According to Pablo you should have an updated version of them.




**ITF (Indian Type Foundry). have their repositories hosted here. They use their own build chain which me and Lasse are struggling to use. Because of this, I have asked if Khand will get ttf instead of otf. ITF-Khand #1.




Apologies for the lack of images. You can find images for the bugs I have solved (#XXX). I always provide an image to prove that the issue has been solved.
Cheers,
Marc 

Marc Foley

unread,
Sep 1, 2016, 3:51:57 PM9/1/16
to Google Fonts Discussions
What I did today
- Fixed #52, Cabin Sketch. Rebuilt repo here.
- Fixed #114, Telex. Rebuilt repo here.
- Attempted to fix #21, Trocchi. Fix and repo rebuild is complete, however font can't generate**
- Confirmed #91, Fjalla One. may not be an issue.

What I will do tomorrow:
- Continue with bug fixing
- Fix glyph script errors (Spent too much time on Trocchi today)

Any questions for the team?
Whilst working on Trocchi, Glyphsapp was not able to generate a ttf. I kept getting this.



It was fine generating .otf. Anyone had this before?

Cheers,
Marc

Marc Foley

unread,
Sep 1, 2016, 3:52:32 PM9/1/16
to Google Fonts Discussions
Images and further descriptions are available on the links with '#' signs.

Dave Crossland

unread,
Sep 1, 2016, 7:01:24 PM9/1/16
to googlefonts-discuss

On 1 September 2016 at 12:51, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
It was fine generating .otf. Anyone had this before?

Marc Foley

unread,
Sep 2, 2016, 8:06:05 AM9/2/16
to Google Fonts Discussions, da...@lab6.com
Thank you sir

Marc Foley

unread,
Sep 5, 2016, 4:43:34 PM9/5/16
to Google Fonts Discussions
Apologies once again for missing the update.


What I did on Friday:
- fixed bug #21, Trocchi. Repo here
- Verified #185, Nobile update is impossible at the moment
- Verified, #117, BerkshireSwash may no longer be a problem. Issue is with FireFox.
(Images given in each #)


What I will do next week:
- Fill out Pipeline document listing all the fonts I have fixed.
- Bug fixing
- Attempt to finalise/master a finished raisin.*


**So far we have been fixing bugs, preparing repos and assisting designers. The time has come to actually start releasing fonts. By doing so, we will have to delve deeper into Font Bakery.

Marc Foley

unread,
Sep 5, 2016, 4:55:19 PM9/5/16
to Google Fonts Discussions
What I did today:

- Fixed #16, Enriqueta. No repository uploaded due to another error**
- Comments on issue #132, Corben Bold (solved by Lasse)**
- Filled in doc supplied by Dave on Friday**


What I will do tomorrow:
-Attempt to release a Raisin with Font Bakery. 


**Enriqueta: I fixed the issue but noticed the bold does not have the Euro symbol and other glyphs which are in the Regular. When we're fixing bugs we often notice other issues as well. for some of these glyphs, it feels like more of a designers job.

Here's the list of missing glyphs:
    scircumflex
    uni000D
    uni1E3F
    uni1E3E
    wdieresis
    uni0000
    Wdieresis
    Euro

Dave is emailing the original designers to see if they can update this for us. Once they have, I will remake a repo.


**Corben-bold: I always grit my teeth when an issue is submitted which doesn't feature an image or a test. I had to replicate the test with Python's PIL library. It worked for me fine on Mac, however the problem was with Linux (no distro mentioned). Lasse found the problem was a missing fpgm table.. This table gets added with ttfautohint or the other solutions he listed.


Question for the team:
-Apart from hand writing/grunge fonts, shall we run all fonts through ttfautohint? This fpgm problem may be a recurring issue.
-**Friday doc: Dave, am I able to share a link for this doc?

Marc Foley

unread,
Sep 7, 2016, 5:58:51 PM9/7/16
to Google Fonts Discussions
What I've done for the last two days:

• Reinstalled Font Bakery **
• Attempted to ship Lobster **
• Submited pull requests for Font Bakery #1004#1000, #999**

What I will do tomorrow:
• Submit requirements.txt pr and update README
• Fix more bugs in Font Bakery
• Implement new Vertical metrics tests in Font Bakery


**
Since I have started attempting to ship fonts, I've had to install the tool chain (dependency hell), submit pr's for Font bakery and figure out the cleanest way possible to store releases.

Dependecy hell:
I'm not impressed by the installation process for FB. I will submit a pr which has a requirements.txt file to ease the process and alter the README.md. Also, the installation also depends on having a working version of FontForge, which is headless. The instructions use brew's Font Forge installation which is great. However, you still need to link Brew's Python path, >>> brew link python. Otherwise you can't import fontforge in Python. I wasted several hours on this.

Font Bakery Development:
When you run a font through Font Bakery, I noticed a few recurring errors. It turns out that these were bugs in FB, not the font files. My aim is to make sure that FB can run properly, before I start shipping font files. There is no point trying to release fonts with broken tools. Here's a list of potential bugs still in Font Bakery. I really don't mind submitting issues and doing pull requests to fix this tool. Overall I'm really impressed by it. My big concern is everything feels very disconnected and some stuff is redundant now.

Releasing Fonts:
Github comes with a rather nice releases feature. It means our upstream repos can also store the .zip releases. 

Our source structure looks like this:


Whilst the shipped folders look like this:


It would be great to have a script or workflow which would automatically create the shipped folder, from the source folder, when everything passes Font Bakery. By doing this, everything should also feel less disconnected. We could also generate the metadata.pb then as well. This is definitely something I'd like to work on. Manually creating releases is dangerous ;)


Questions for the team?

- Nope, but questions on this post would be nice ;)




Alexei Vanyashin

unread,
Sep 8, 2016, 2:12:52 PM9/8/16
to googlefonts-discuss

It would be great to have a script or workflow which would automatically create the shipped folder, from the source folder, when everything passes Font Bakery.

FB outputs so many redundant errors, including 'your font is 98% monospaced', etc. At the current development state I only use if to fix vertical metrics. I would really like to see a font that actually *passes* font-bakery.


Marc Foley

unread,
Sep 8, 2016, 2:38:11 PM9/8/16
to Google Fonts Discussions
Hey Alexei,

I am fixing these this week. We're nearly there, hold tight.

Marc Foley

unread,
Sep 8, 2016, 5:55:34 PM9/8/16
to Google Fonts Discussions
What I did today:
- More fixes for font bakery**

What I will do tomorrow:
- Finish Font Bakery fixes
- Finally ship Lobster


**Since we're not merging prs too quickly, they're starting to stack up. Here's a list of what I fixed today.

I only have 2 tests left to investigate/fix which are:
- Glyph name 'space' is attributed to more than a single codepoint: (0x9, 0x20, 0xd)
- Vertical Metrics (Need to file an issue on this before I do this. What we should be checking needs to be defined.

I'll talk more about the progress of this tool in tomorrow's meeting. I have some ideas which should make things easier in the future.

Cheers,
Marc

Alexei Vanyashin

unread,
Sep 10, 2016, 6:34:47 AM9/10/16
to Google Fonts Discussions


On Thursday, September 8, 2016 at 9:38:11 PM UTC+3, Marc Foley wrote:
Hey Alexei,

I am fixing these this week. We're nearly there, hold tight.

Just updated to latest font-bakery. I like how the font reports are organised by each font individually now. Good idea to not make '--verbose' the default output.  

Good job, Marc

Q: Is there a limit to the number of fonts that the tests can be run simultaneously on?


 

Marc Foley

unread,
Sep 12, 2016, 5:01:36 PM9/12/16
to Google Fonts Discussions
Hey Alexei,

It should be infinite. Just drag n drop more fonts on e.g:

python fontbakery-check-ttf.py font1.ttf font2.ttf font3.ttf

Marc Foley

unread,
Sep 12, 2016, 5:20:46 PM9/12/16
to Google Fonts Discussions
What I did today:
- Fontbakery: package (not complete)**

What I will do tomorrow:
- Finish fb package


**I previously discussed making a script which will do the following:

1. Take an upstream repo and create  a new ofl/apache folder
2. Generate the METADATA.pb file
3. Run FontBakery
4. Insert dummy dsig into fonts
5. Push to github releases if FB reports no errors

Why do we need this?
Manually creating a release folder from source data is asking for trouble. The script will only allow this folder to be created, once FontBakery has passed. In the future, this could be drag n drop web app so we can take ourselves out of the upload/packaging process completely. 

Sorry for the lack of images on this update, text editors are not exciting ;)



Questions for the team?
- Dave, Felipe and possibly Omer, I was going to bring up the release/mastering process in Friday's meeting. I would still like to talk to you folks. I really don't want this to go off on a tangent. What days are best for you?

Cheers,
Marc

Marc Foley

unread,
Sep 13, 2016, 4:22:33 PM9/13/16
to Google Fonts Discussions
What I did today:

- Finished packaging Lobster**
- Fixed Vertical Metrics checks in Font Bakery, pr merged by Felipe.

What I will do tomorrow:
- Release 3 repos


**I had a chat to Dave today. We both decided I should focus more on releases. My tooling is in place, I need to start hammering them out. FontBakery only has 2 errors left which need fixing, I will leave these for Felipe. They are:

- I needed confirmation on an issue relating to multiple unicode mappings for a single glyph. A thread already exists so i reopened it. 
- .null or NULL glyph name (see questions for the team)

Since this is my first release. Dave has agreed to check that it is up to standard. 

The old version of Lobster had 8 errors.


The new version has 5:



Questions for the team
- Glyphsapp generates the null glyph with the name NULL, FontBakery wants .null. I see the MS spec likes .null. Will having NULL lead to any undesired consequences? 

It's either amending FB or reporting this to Georg.

Cheers,
Marc


Marc Foley

unread,
Sep 14, 2016, 5:34:13 PM9/14/16
to Google Fonts Discussions
What I did today:
- Mastered Trocchi**
- Mastered Telex**
- Mastered Nunito**
- More fixes to fix-gf-spec script.

**I haven't submitted any of them as prs to the Google Fonts repo yet. I will do this once Dave accepts my Lobster repo is good enough. 

I will continue to get 3 repos mastered each day until then. There is no harm in going back and forth between repos.  I keep coming across new errors and situations as I master more repos. This is a good opportunity to submit more bugs for FontBakery as well. Some of the bugs I found today:


What I will do tomorrow:
- Another 3 repos
- Submit more FB issues as I discover them.

Any questions for the team:
- Hey Dave, Lobster is now good for you to test.

Cheers,
Marc

Jacques Le Bailly

unread,
Sep 14, 2016, 6:09:04 PM9/14/16
to Google Fonts Discussions

- Mastered Nunito**

Hi Marc,
I wouldn't work on Nunito yet. I still am working on it paralel to Nunito Sans and Muli.

– While working on those families I encounter minor inconsistencies when matching. Going back and forth.
– The instances are temporary.
– I just added tabular oldstyle figures yesterday. Maybe I will add proportional lining and oldstyle figures if there is some time left.
– Etc.

 

Dave Crossland

unread,
Sep 14, 2016, 6:32:22 PM9/14/16
to googlefonts-discuss

On 13 September 2016 at 22:22, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
- Glyphsapp generates the null glyph with the name NULL, FontBakery wants .null. I see the MS spec likes .null. Will having NULL lead to any undesired consequences? 

I think it is fine; I recommend to update FB to accept that glyph name too.

Dave Crossland

unread,
Sep 14, 2016, 6:32:57 PM9/14/16
to googlefonts-discuss

On 12 September 2016 at 23:20, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
- Dave, Felipe and possibly Omer, I was going to bring up the release/mastering process in Friday's meeting. I would still like to talk to you folks. I really don't want this to go off on a tangent. What days are best for you?

On Thursday early afternoon I will be online I think - lets try and sync up then :)

Dave Crossland

unread,
Sep 14, 2016, 6:38:43 PM9/14/16
to googlefonts-discuss
On 12 September 2016 at 23:20, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
**I previously discussed making a script which will do the following:

1. Take an upstream repo and create  a new ofl/apache folder

... and then a subfolder with the family name, all lowercase, no spaces.
 
2. Generate the METADATA.pb file

...using the add_font.py script in github.com/google/fonts/ tools dir? 
 
3. Run FontBakery

Sure
 
4. Insert dummy dsig into fonts

They should already have them. If they don't it should be a FB error. 
 
5. Push to github releases if FB reports no errors

Not quite - tag a release on the upstream repo is good, and if the repo doesn't have binaries inline, then attach a ZIP (of the TTFs + license file (eg OFL.txt) + a README or FONTLOG file) to the release. That's all users want from a release - they don't want the METADATA.pb file.

But the way to actually get the release ready is to then branch github.com/google/fonts and add the subfolder with the family name that contains the TTFs + license file + METADATA.pb, and make a PR. 

Then I can do a final review or at least see its on the pipeline so it will actually get pushed by the GF engineering team, and then merge. 

Dave Crossland

unread,
Sep 14, 2016, 6:40:16 PM9/14/16
to googlefonts-discuss

On 10 September 2016 at 12:34, Alexei Vanyashin <a...@cyreal.org> wrote:
Q: Is there a limit to the number of fonts that the tests can be run simultaneously on?

On 12 September 2016 at 23:01, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:
It should be infinite. Just drag n drop more fonts on e.g:

python fontbakery-check-ttf.py font1.ttf font2.ttf font3.ttf

Technically this is true, you can run FB on an unlimited number of font files at once. 

But it has a bunch of 'second phase' checks that assume the set of fonts you run it on are part of the same max-18-styles web font family, and they are 'in sync' as such a family. 

Marc Foley

unread,
Sep 15, 2016, 4:30:59 AM9/15/16
to Google Fonts Discussions
Hey Jaques,

Sorry I mean't Neuton. I left Nunito alone.

Thank you for double checking.

Marc Foley

unread,
Sep 16, 2016, 3:47:54 AM9/16/16
to Google Fonts Discussions
What I did yesterday:
- Mastered Share Tech
- Mastered Homenaje
- Mastered Cutive Mono

What I will do today:
- Master Cabin Sketch & Play**
- Prepare some repos for Nhung for vietnamese expansions.**


**
Once I have mastered these two repos, I will be done mastering the repos for the bug fixes I implemented. Once Dave is happy with the quality of Lobster, I will move onto the mastering the rains projects

Questions for the team:
@Dave & Nhung: Please sned me a list of respositories which need prepping for Vietnamese expansions. I will do a few and see if I can improve my documentation for it.


Cheers,
Marc

Marc Foley

unread,
Sep 16, 2016, 6:13:23 PM9/16/16
to Google Fonts Discussions
What I did today:
- Mastered Play 
- Mastered Cabin Sketch 
- Font Bakery output errors only**

What I will do next week:
- Start mastering completed Raisin projects
- Test out my upgrading repositories documentation and do a few repos for Nhung (see questions for team)

**
Font Bakery never had the option to output only the errors. This mean't you had to wade through a report this long each time.


This report is for a 2 font family... 138 lines of agony.


By only outputting the errors, the report is much more concise


I'm finding it a huge time saver at the moment. 


I can also confirm this glyphsapp -> generate family -> fb == kick ass. Literally ctrl + e in glyphsapp and an up arrow in a fontbakery terminal to generate and test the lot. I feel we can optimise our source repositories further to lesson the duplication of files as well.


Questions for the team:
- I can't find a list of Nhung's vietnamese repos she needs to improve. If I already received it, I do apologise, I can only find her slide decks.

Have a nice weekend all,
Marc

Felipe Sanches

unread,
Sep 16, 2016, 6:24:56 PM9/16/16
to googlefon...@googlegroups.com
> glyphsapp -> generate family -> fb == kick ass.

Awesome !

--
You received this message because you are subscribed to the Google Groups "Google Fonts Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to googlefonts-discuss+unsub...@googlegroups.com.
To post to this group, send email to googlefonts-discuss@googlegroups.com.
Visit this group at https://groups.google.com/group/googlefonts-discuss.
To view this discussion on the web visit https://groups.google.com/d/msgid/googlefonts-discuss/31da6996-3627-46b9-9142-7adbb548ccfd%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Marc Foley

unread,
Sep 19, 2016, 5:06:36 PM9/19/16
to Google Fonts Discussions
What I did today:
- Mastered Quicksand. Still needs some work**

What I will do tomorrow:
- Finish Quicksand
- Master another Raisin which has been completed


Questions for the team:
@Dave: Any chance to get a list of those vietnamese repos or should I ask Nhung?


**
QuickSand:
I'm spending more time mastering the Raisin projects due to the amount of work that has gone into them.

Today I made sure the vertical metrics match our scheme. Below is a sample from Mac Firefox

Old:


New:

Overall, I'm really impressed by the new colour of this font.



I've also confirmed that Mr Jockin has solved the errors reported on Github.

There are still a few gotchas that I need to sort out.


When I received the fonts, I got this error:


My version of glyphsapp wouldn't generate the fonts until this was solved.


FB is also reporting a lot of nodes which are outside the bounding box. You get this when points are not on extremes. Image below demonstrates this:





I've solved most of the problematic ones. This happens alot on rounded fonts on diagonal glyphs such as w,x,y,z. It is often better to let this error occur than to insert points which are on the extremes.



build-contributors.py

This script will look at the git commit history of the repo and build the CONTRIBUTORS.txt file.


Good nigtht all



Alexei Vanyashin

unread,
Sep 20, 2016, 8:30:10 AM9/20/16
to Google Fonts Discussions

Alexei Vanyashin

unread,
Sep 20, 2016, 8:46:17 AM9/20/16
to Google Fonts Discussions
I am looking for an optimal workflow to fix vertical metrics issues after Nhung's recent Vietnamese additions. Ideally we should teach Nhung to updated them. So, there should be an easy non-technical way to do this. 
 
Here is a sample project: Cuprum

1.  Output from Kalapi's method
ERROR: Win Ascent 900 is not >= to yMax 1087.0
ERROR: Win Descent 0 is not >= to yMin 290.0
ERROR: Typo Ascender 900 is not == to Tallest h or H 700.0
ERROR: Typo Descender -320 is not == to UPM - Typo Asc -100
PASS: Typo Ascender 900 is == to hhea Ascender 900
PASS: Typo Descender -320 is == to hhea Descender -320
ERROR: Typo Line Gap 0 is not == to Line Gap 250
ERROR: hhea Line Gap 0 is not == to Line Gap 250

2. Output from Khaled's method:
ERROR: Win Ascent 900 is not >= to yMax 1087.0
ERROR: Win Descent 0 is not >= to yMin 290.0

3. Output from FontBakery
OS/2 usWinAscent & usWinDescent Changes that must be applied to this font: 
OS/2 usWinAscent from 1000 to 1100 
OS/2 usWinDescent from 0 to 320  




Thoughts?




 

Alexei Vanyashin

unread,
Sep 20, 2016, 9:25:44 AM9/20/16
to Google Fonts Discussions
Marc, 

I have a little request for you.

Ben Kiel shared this script following his kerning workshop at Typographics NYC.
https://github.com/benkiel/drawBotProofs/blob/master/drawbot_proof.py

Basically it outputs a test proofing string from Robofont. I remember Thomas was sharing a lot of PDFs that were created manually. So having a script for this would be very useful for our raisins, and half-raisins* workflow.

Would be great if you could find the time in your schedule to port this to Glyphs. And possibly populate it with more data from Impallari's testing page. 
Later I would like to contribute with extra strings too. 

*half-raisin (c) — term first coined by Kalapi 

Marc Foley

unread,
Sep 20, 2016, 3:41:33 PM9/20/16
to Google Fonts Discussions
Hey hey Alexei,

My Khaled/Kalapi scripts will compare every master in the glyphs file. It looks like FontBakery will test every font. It appears that the Italics are taller and deeper than the romans.

Here's a little script to test this

this tells me that:

deepest glyph is commaaccentcomb -320.0
tallest glyph = Abrevehookabove 1100.0

These values are from the Italic files. 

I'll upgrade my script so it will test every .glyphs file, not just every master. Thank you for this.

Marc Foley

unread,
Sep 20, 2016, 4:07:56 PM9/20/16
to Google Fonts Discussions
What I did today:
- Prepared Arsenal for Cyrillic and Vietnamese extensions (pr sent back to Alexei)**
- Improved my Glyphsapp script to make the fonts pass our spec**

What I will do tomorrow:
- Prepare another repo for Vietnamese extensions
- Edit my scripts so Alexei's error above will pass

Questions for the team:
- I see a lot of fonts now have the suffix pro. Are we going to delete the std versions which already exist on GF?


**
Arenal:
We're having a slight delay getting editing permissions for Vietnamese repos. For this reason, I asked Alexei for one of the repos they have to add Cyrillic to. This repo will also get a Vietnamese expansion later as well.

I went through my Upgrading Repositories documentation. Overall, I found it ok. However, I reckon I may have some confirmation bias towards this experiment. This work is suited for power users (people who know the cmd line, Excel warriors etc). The documentation for both the Checklist and Upgrading repos is long. I guess this sets in fatigue, couple this with non native speakers and it makes it even harder. Installing Font Bakery is also a mega pain in the arse. Because of these issues, Here are some suggestions.

1. Make Font Bakery a drag n drop web app like Pablo Impallari's webfont tester
2. In each document, provide a high level overview and a .zip file containing a PERFECT example. Replicating this should be enough.
3. Keep updating my Glyphsapp fix_gf_spec.py script. 

I would love to host a hangout where I run through how to tackle a repo. Unfortunately, this is not a linear process. Each repo needs to be done on a case by case basis. It is not a matter of drawing glyphs. You really have to understand font tables, curve types, OT features, classes. Basically the whole shebang. I'd find documenting all of this difficult. The information exists but people need to look for it. It is a different skill set to designing. I am more than happy to guide people through it. I have seen Alexei's repos and they are good. It simply requires practice and knowing the first few will take some time. I understand you want this documented, hence why I would like to supply a hangout video. I don't want to rewrite specs, I want to show the thought process instead.

phew, sorry about the length of that ;)

**

Script now successfully handles Italic font names. 

familyName Regular Italic will be converted to familyName Italic. 


Have a nice eve all,
Marc

Marc Foley

unread,
Sep 21, 2016, 7:22:58 AM9/21/16
to googlefon...@googlegroups.com

______________________________________
 

Can't check, Vietnamese accent issues need fixing first. See issue submitted on repo

______________________________________
 
 

Win Descent needs to be 291. Currently it is 0

______________________________________
 


ERROR: Win Ascent 963 is not >= to yMax 1063.0
ERROR: Win Descent 0 is not >= to yMin 279.0

______________________________________
 

ERROR: hheaLineGap needed

ERROR: Win Ascent 961 is not >= to yMax 1094.0
ERROR: Win Descent 247 is not >= to yMin 250.0
ERROR: Typo Ascender 760 is not == to hhea Ascender 961
ERROR: Typo Descender -230 is not == to hhea Descender -247
PASS: Typo Ascender 760 is >= to Family Ascender 760.0
PASS: Typo Descender -230 is <= to Family Descender -230.0
ERROR: Typo Line Gap 54 is not == to No Line Gap 0
PASS: hhea Line Gap 0 is == to No Line Gap 0

______________________________________
 
 
ERROR: Win Descent 0 is not >= to yMin 365.0

______________________________________
 

ERROR: Win Ascent 937 is not >= to yMax 1112.0
ERROR: Win Descent 0 is not >= to yMin 220.0

______________________________________
 

Copy metrics from instances to masters first

ERROR: Win Ascent 864 is not >= to yMax 1020.0
ERROR: Win Descent 0 is not >= to yMin 330.0

______________________________________
 

ERROR: hheaLineGap needed

ERROR: Win Ascent 956 is not >= to yMax 1119.0
ERROR: Win Descent 0 is not >= to yMin 294.0

______________________________________
 

Copy italic instance metrics to masters

ERROR: Win Ascent 1087 is not >= to yMax 1100.0
ERROR: Win Descent 290 is not >= to yMin 320.0 

______________________________________

I hope this all helps ;)

I'm very tempted to have a look at every repo we have worked on, before we do the release. It's definately worthwhile to do some cross platform checks etc. In NYC, I can barricade myself in a room and test all of this.

Cheers,
Marc

 

Alexei Vanyashin

unread,
Sep 21, 2016, 9:32:12 AM9/21/16
to Google Fonts Discussions
Hi Marc, 

Thank's for running the tests. Now it's all easy street for Nhung. 

Inconsolata is a completed raisin project. 
It is good for mastering. 

While doing it, could you also remove this glyphs from the new files (uncheck the export box):
⍾ U+237E 'BELL SYMBOL

thanks. 

Marc Foley

unread,
Sep 21, 2016, 11:23:48 AM9/21/16
to Google Fonts Discussions
What I did today:
- Checked metrics for all repos listed by Alexei. See above post
- Attempted Inconsolata mastering


What I will do tomorrow:
- Finish off QA script, if it gets approved
- Attempt another repo


**
I'm coming across too many design errors to successfully master our Raisin projects. I'd be keen to do a quick QA of each one before I proceed?
I've also proposed a script to check the character set of each commit in glyphsapp. The images can then be stiched together to form a gif or mpeg.

Sorry for the brief update, I need to head out quickly. I will write something more in depth tomorrow morning.

Cheers,
Marc

Marc Foley

unread,
Sep 22, 2016, 5:20:40 PM9/22/16
to Google Fonts Discussions
What I did today:
- Mastered Sigmarone
- Submitted issues for Inconolata
- Reviewed and commented Nhung's Vietnamese doc**


What I will do tomorrow:
- Prepare Patrick Hand sc repo for Nhung
- finalise Inconsolata


Questions for the team?
 Question from the other day. For fonts which now have the suffix Pro. Will we be deleting the current std versions?


**
I went through Nhung's doc and was pretty impressed. A lot of these projects are now being finalised. I have added comments regarding repo preparation, asking people to submit pull requests etc. There are only two repos I found which could be prepared for her, 1. Patrick Hand sc and a Jose Sole font. I emailed Jose asking for the sources. 

The hell is going to be releasing/mastering all of these ;)

Have a nice eve,
Marc


Marc Foley

unread,
Sep 23, 2016, 2:06:23 PM9/23/16
to Google Fonts Discussions
What I did today:
-Mastered Rubik, pr submitted for dave to review
-Prepared Patrick Hand SC for Nhung.
-Added test to QA script to check for if the dynamic fraction feature exists

What I will do next weel:
-More mastering (I need to get on the autobahn)


Questions for the team:
Have a smashing weekend every one ;)

Alexei Vanyashin

unread,
Sep 23, 2016, 3:39:53 PM9/23/16
to Google Fonts Discussions
Hi Marc, 

Can I have your thoughts on Inconsolata vertical metrics (last 2 messages) please?

Marc Foley

unread,
Sep 26, 2016, 4:27:05 PM9/26/16
to Google Fonts Discussions
Can I have your thoughts on Inconsolata vertical metrics (last 2 messages) please?

Responsed to the git issue ;)


What I did today:
-Mastered Pacifico
-Mastered Rubik Mono One
-Lasse Hangout and mastering prep**

What I will do tomorrow:
-More mastering (2x more repos)


**
I went through the steps needed to master repositories with Lasse today. We also decided to add two columns to the Pipeline of Google Fonts spreadsheet, Ready for mastering and masterer.


I sent a mail in Dave's email telling the project authors to add the git url and tell us if they are ready for mastering. It is quite difficult to browse individual worklog threads to see what can be mastered. Often, Cyrillic or Vietnamese may still be needed. I've also requested people start merging their forked repos back to the original sources. Our aim should be to have 1 definitive source for each font family. The orphaned repos (Vernon, legacy gf projects) will be added to google/fonts when we're done.


Cheers and have a nice eve all,

Marc




Marc Foley

unread,
Sep 27, 2016, 5:52:30 PM9/27/16
to Google Fonts Discussions
What I did today:
-Mastered Poiret One
-Mastered Nunito (nearly)
-Investigated font naming issue with Lasse for condensed weights**
-Fixed Dynamic fraction test on my glyphsapp scripts.

What I will do tomorrow:
-Finish Nunito
-Master more fonts
-Inspect Kalapi's fonts (They are already the bomb)


**Lasse had a naming issue which is linked to our naming spreadsheet. Condensed and Expanded fonts should be treated as a separate families, according to Dave. This is due to the Google Fonts api. This means that if you have a condensed/expanded weights, you'll get a separate font in your font drop down window.


Cabin and Cabin Condensed are different font families.


To implement this in Glyphsapp, you need to use the customParameter['familyName'] attribute on Condensed instances


This feature can be scripted. I will add it to my fix_gf_spec Glyphsapp script.


Good night all




Kalapi Gajjar-Bordawekar

unread,
Sep 28, 2016, 1:57:24 AM9/28/16
to Google Fonts Discussions
Hi Marc, 

The following have already been mastered/tested
  • Cabin (Normal/Condensed/Italic)
  • Montserrat
The following is still in development:
  • Rokkitt
Thanks man!
K

Marc Foley

unread,
Sep 28, 2016, 4:18:15 PM9/28/16
to Google Fonts Discussions
Kalapi you are a bossman. Thank you !


What I did today:
-Tidied up Nunito
-Implemented correct naming scheme in Glyphsapp**

What I will do tomorrow:
-Master more repos


**
We had a huge issue with the naming today.

Nunito includes many weights. In GlyphsApp, you can have Thin to Heavy. For GF we can only have Thin to Black.

Dave, myself and Jacques decided to make the Heavy weight as a separate family for Nunito, or other fonts which include a Heavy weight. To make this as painless as possible in the future, my fix_gf_script will split Heavy weights into a separate family automatically.

Apologies on the mastering speed. We've hit a few bottle necks, such as this naming issue.

Marc Foley

unread,
Sep 29, 2016, 5:05:01 PM9/29/16
to Google Fonts Discussions
Very boring today

What I did today:
- Mastered Anaheim
- Mastered Anton
- Mastered Alfa Slab One
- Added more repo information do pipeline doc**

What I will do tomorrow:
- More repos


**
I added another column to our pipeline, Orphaned repos. This column is for repos which will be transferred to Google/Fonts. They comprise of people who has passed away or never had git accounts.


I would like to thank everyone who gave me information about the status of their repos. It is much much clearer now. I have added them to the doc. The picture is finally emerging.


Cheers,

Marc


Marc Foley

unread,
Oct 3, 2016, 5:06:33 PM10/3/16
to Google Fonts Discussions
What I did today:
- Mastered Quicksand
- Fixed Sigmar One
- Mastered Inconsolata
-Semi mastered Jura

What I will do tomorrow:
-More mastering

Marc Foley

unread,
Oct 5, 2016, 5:34:03 PM10/5/16
to Google Fonts Discussions
What I did today and yesterday:

Mastered

Pacifico check

Jura

Dancing Script 

Oswald

Dosis

Bangers

ROKKIT

Francois One

Lobster

Varela Round Hebrew

Indie Flower


Added test to my QA tool to check for glyphs which have components which differ from the glyhsapp spec


What I will do tomorrow:

Master the final three repos:

Libre Franklin

Bad script (Latin)

Bad Script (Cyrillic) 

Dave Crossland

unread,
Oct 5, 2016, 10:59:10 PM10/5/16
to googlefonts-discuss

On 5 October 2016 at 17:34, 'Marc Foley' via Google Fonts Discussions <googlefon...@googlegroups.com> wrote:

Master the final three repos:


Boom! Well done Marc! :)

Marc Foley

unread,
Oct 10, 2016, 4:17:17 PM10/10/16
to Google Fonts Discussions
Apologies for the lack of updates last week, I was in NYC with the crew. I'm now back in Germany, still a little jet-lagged. I managed to sleep a whole 12 hours last night, I haven't done that since I was 16 :)

What I did today:
-Changed vertical metrics on Inconsolata, bad script, Nunito*
-Wrote Glyphsapp script to convert metric key values to different upms


What I will do tomorrow:
-Finish metrics fixing
-Possibly more scripts to assist the process.

**
During my week in NYC, I was on the mastering Autobahn. In the final meeting, I presented before and after images of each family we have worked on. A common problem was the vertical metrics were too extreme, in comparison with their predecessors available on fonts.google.com. My aim is to get this fixed before the end of this week, Godspeed.

Cheers,
Marc


Dave Crossland

unread,
Oct 10, 2016, 6:43:42 PM10/10/16
to googlefonts-discuss
Thanks Marc! Looking forward to your status updates on that :) 
It is loading more messages.
0 new messages