google / fonts

Font files available from Google Fonts, and a public issue tracker for all things Google Fonts
https://fonts.google.com
18.26k stars 2.62k forks source link

Add Reddit Sans #6812

Closed stephenhutchings closed 8 months ago

stephenhutchings commented 1 year ago

Font Project Git Repo URL: https://github.com/reddit/redditsans

Super short description of the Font Family: Reddit Sans is a humanist sans-serif designed for Reddit. Reddit Sans is complemented by Reddit Sans Condensed and Reddit Mono, which are also contained in the same repository. Fonts can be previewed on the microsite.

Requirements:

Google Fonts will publish only fonts that match its requirements. Please familiarize yourself with the complete documentation in the Google Fonts Guide (GF-Guide) and ensure your font project complies with them before submitting the font family. You can also use the Google Fonts Project Template, which will help you create a repository that follows the needed structure and includes build requirements.

By filling this issue, you can confirm the project meets the requirements (by ticking the cases or putting x between the square brackets in text mode):

Image:

Attach here a pic or a screenshot of the font. One image is enough, it can be a few letters, to give a quick overview. Reddit Sans Reddit Sans Condensed Reddit Mono

eliheuer commented 1 year ago

Thanks @stephenhutchings. I briefly looked at all the source files and everything looks good. I tagged this for review for onboarding to Google Fonts in Q4. We will review this submission in more detail soon.

eliheuer commented 1 year ago

Hello @stephenhutchings. This project has been accepted for onboarding to Google Fonts and we are moving forward with the onboarding process this week with Reddit Sans as a high priority project.

I left some issues in the project's issue tracker. These are things that have come up in the QA process and need to be fixed before onboarding the fonts. If for some reason these changes don't make sense in the upstream project's repository, Google Fonts can maintain a separate fork that meets all our QA requirements, but Ideally the project at github.com/reddit/redditsans would be as close to the version on Google Fonts as possible.

The main, most important issues that need to be addressed before onboarding are:

Also, do you have plans to release this as a variable font at some point? If so, would it make sense to combine Reddit Sans and Reddit Sans Condensed into one variable font with a weight and width axis?

I'm working on an updated version of the source files that makes the vertical metrics consistent across the family now, and can make a PR to your upstream repository with that file if you like, but I understand you will probably want to review the vertical metrics issue yourself and might have some opinions on how it is handled. Is there a good reason why the vertical metrics are now consistent across the family? Let me know.

Thanks!

stephenhutchings commented 1 year ago

Thanks @eliheuer. Appreciate the detailed comments.

It won't be a problem addressing all of the issues you have raised in the main project, so there is no need to maintain a separate fork. I should be able to resolve all of those issues this week. With respect to inconsistent vertical metrics, that seems to be an oversight rather than intentional.

A variable font is a possibility with separate width and weight axes. However, there are currently no italics in the condensed width so it would be limited to the roman fonts. Nothing is planned at the moment, but I'll discuss this further with the Reddit team. If we do go down that route, what effect does that have on the Google Fonts side of things?

stephenhutchings commented 1 year ago

I've released a new version (v1.012) that addresses the bulk of issues that you've highlighted.

There are two remaining issues related to copyright. If these are non-critical, Reddit's preference is to leave the copyright as is.

RosaWagner commented 1 year ago

We merged a first version to see what it looks like in sandbox and speed up the onboarding process of the font, but it is not complying with our requirements so we would be waiting for an update :)

We would need:

stephenhutchings commented 1 year ago

Thanks for the update @RosaWagner.

If @eliheuer is happy to set up the gftools build step that would be much appreciated. I can make the other changes to the repo structure next week.

tr000y commented 1 year ago

Hey @RosaWagner @eliheuer ! Following up here. Stephen, our font designer made the necessary updates to Reddit Sans (v1.012) outlined here.

Question regarding this copyright convo. We'd like to keep the copyright attribution as "Reddit, Inc.". We have a CLA with Google in place. I wanted to check in and make sure this suffices here? I'll note that we will be updating the copyright URL to link out to the Reddit Sans repo, per your team's suggestion.

Other than these items, is there anything else needed from us to move forward? TY!

tr000y commented 11 months ago

Checking in here! Is there anything else needed from our team here? Thank you! @RosaWagner @eliheuer

eliheuer commented 11 months ago

@tr000y Hello, I will look into the copyright issue. The main problem is that the fonts need to be built with the Google Fonts build system described here: https://googlefonts.github.io/gf-guide/build.html

But the fonts currently use .glyphsproject files which are not supported.

I will try to get a fork working with the Google Fonts build system as an example if possible.

stephenhutchings commented 11 months ago

@eliheuer I made a bit of progress in the build step on the gf-onboarding branch. This required some changes to the source files, and I need to do a review to ensure the built fonts don't vary significantly from the current production fonts.

I'm not sure it's possible to get the build working without changing the source files, but if you have any insight here that would be great.

RosaWagner commented 11 months ago

@eliheuer, as told in the meetings: we don't need to support the .glyphproject files, everything can be set up to export the default version of Reddit Sans (Roman + Italic), Reddit Sans Condensed and Reddit Mono using the builder (from the source files). .glyphsproject files are not sources, they are just an alternative way to set up instances in the GlyphsApp environment. Please ignore the subsets A B C etc for now, they are not meant to be onboarded right away, the first step and priority is for the 3 families in their default form.

@stephenhutchings

RosaWagner commented 11 months ago

I don't think @eliheuer handled a case of building multiple families in one repo with intermediate layers etc before, so I allowed myself to step in to show a way to handle that case. I arranged the sources in a fork to be able to build with gftools builder, but I didn't go into details for the QA. Also, I set up an "ideal" scenario which might differ from the "desired" output (explanations below).

link: https://github.com/RosaWagner/redditsans/tree/gf-onboarding

What I did in the sources

What to do about: the range of the weight axis is larger than the proposed set of instances. There are different possibilities:

  1. A variable font with a weight axis with instances ranging from ExtraLight to Black
  2. A variable font with a weight axis with instances ranging Light to ExtraBold
  3. Only static instances ranging from Light to ExtraBold

copyright We can grant exception. @davelab6 just needs to confirm.

The blocker for this project The intermediate layers in glyphsLib is having an issue: https://github.com/googlefonts/glyphsLib/issues/954 As long as this issue is open we can't provide the exact same design as before, which is a bummer.

Here again there are several possibilities:

  1. wait until solved.
  2. workaround by adding intermediate layers in all composites referring to a component with intermediate layers
  3. Scenario 2 but with the added step of checking all intermediate layers to make sure they are all necessary (I am thinking of the combining marks which have a slight modification comparing to the default interpolation).

random stuff I noted but didn't fix

@stephenhutchings, once you've chose you preferred scenarios, @eliheuer can take over.

tr000y commented 11 months ago

@RosaWagner @eliheuer Thanks so much for outlining all of this! Our preference for 1. range of weight axis and 2. the glyphsLib issue is option two in both scenarios. For both issues, is this something GF would handle, or will we need to update on our end?

RosaWagner commented 11 months ago

Thanks @tr000y, to make it clear you choose:

We can provide the bash script that exports the range you prefer, but you would have to add the intermediate layers everywhere (it might require a bit of scripting so it doesn’t take ages). Do you want to do that from the sources I already set up?

RosaWagner commented 11 months ago

I made the bash script and created a PR to @eliheuer's fork so he can take over (https://github.com/eliheuer/redditsans/pull/1). varLib.instancer is provoking a suspicious FAIL with ots sanitizer that we need to investigate. The team based in the US is in thanksgiving holidays so I don't know how much time it's going to take.

If you feel the emergency to fix the rest of the todo listed in the PR, I can also PR the current state of the branch to your branch.

Edit: issue with ots sanitizer filled in https://github.com/fonttools/fonttools/issues/3350

anthrotype commented 11 months ago

@RosaWagner please file an issue in fonttools about the instancer and will take a look, thanks

stephenhutchings commented 11 months ago

I've updated our branch to include @RosaWagner's changes. It also has intermediate layers added to component glyphs, plus a few fixes to other issues that were raised in eliheuer/redditsans#1.

tr000y commented 11 months ago

Hi @RosaWagner @eliheuer, do you need anything else from our side to move forward? Thank you!

RosaWagner commented 11 months ago

Hi @tr000y and @stephenhutchings, Eli is supposed to QA and onboard :)

As a curiosity I checked how Words on Windows would handle the naming of the VF Reddit Condensed, and indeed it is a bit confused. Windows uses the STAT table to display font names and font styles, and I have no idea why the tool is adding a width axis in the STAT table; it results in styles called Reddit Sans Condensed Condensed on Words. This is something that needs investigation (cc @simoncozens @m4rc1e). Since Condensed is in the family name, it shouldn't be found anywhere else for the description of styles names to avoid confusing Windows.

Changing "Condensed" into "Narrow" everywhere seems to stop triggering the addition of a wdth axis, so it can be a workaround. But it would be better if the tool stops adding a wdth axis in the STAT table (I'll open an issue in gftools)

Otherwise the ots fail is fixed, so if you are happy with the builds, @eliheuer could start with onboarding Reddit Sans and Reddit Mono.

tr000y commented 11 months ago

Thank you for the update @RosaWagner! Yes, we're happy with the builds and would like to move forward with Reddit Sans and Reddit Mono.

Re: Condensed, I will check in with my team regarding the workaround you mentioned (renaming to Narrow). But please also let us know if you figure anything out on your end.

eliheuer commented 11 months ago

Thanks @RosaWagner and @tr000y. I will try to make a new pull request onboarding Sans and Mono.

chrissimpkins commented 11 months ago

Hi @tr000y and @stephenhutchings, Eli is supposed to QA and onboard :)

As a curiosity I checked how Words on Windows would handle the naming of the VF Reddit Condensed, and indeed it is a bit confused. Windows uses the STAT table to display font names and font styles, and I have no idea why the tool is adding a width axis in the STAT table; it results in styles called Reddit Sans Condensed Condensed on Words. This is something that needs investigation (cc @simoncozens @m4rc1e). Since Condensed is in the family name, it shouldn't be found anywhere else for the description of styles names to avoid confusing Windows.

Changing "Condensed" into "Narrow" everywhere seems to stop triggering the addition of a wdth axis, so it can be a workaround. But it would be better if the tool stops adding a wdth axis in the STAT table (I'll open an issue in gftools)

Otherwise the ots fail is fixed, so if you are happy with the builds, @eliheuer could start with onboarding Reddit Sans and Reddit Mono.

@RosaWagner Who do we need to involve at this stage to address this?

simoncozens commented 11 months ago

Marc is Mister STAT Table. :-)

eliheuer commented 11 months ago

cc @m4rc1e, but I think he is on vacation until the end of the year, I can do my best to look into it in his absence.

RosaWagner commented 11 months ago

It can be workaround with patching a stat table without width axis with gen-stat at the end of the process using the bash script already there

m4rc1e commented 11 months ago

I'm currently looking into this issue. Will report back or fix.

m4rc1e commented 11 months ago

The STAT table for the Condensed family is being generated by the googlefonts axisregistry. I need to do some investigating to see whether it is complaint with the MS spec.

For the time being, we could just declare a STAT table in the sanscondensed.yaml yaml file? I'll happily do this.

I have no idea why the tool is adding a width axis in the STAT table

The Condensed Axis Record is being added because it found a Condensed token in the name table. It most likely used nameID 1 or 16. Perhaps we should only be discovering name record token using NameID 2 or 17.

RosaWagner commented 11 months ago

@m4rc1e except if I missed something, when I tested that, it still added the width axis. I explained more in details the problem in this issue: https://github.com/googlefonts/gftools/issues/801. But I tested a lot of stuff recently with different projects, so I might have confused something, does it work when you do it?

m4rc1e commented 11 months ago

Defining a stat table in the condensed yaml file works for me. I don't get a Condesed axis. PR submitted, https://github.com/reddit/redditsans/pull/13

emmamarichal commented 9 months ago

Hello @tr000y and @stephenhutchings! I'm Emma, I'm the new onboarder assigned to that project! I tested the fonts from here: https://github.com/reddit/redditsans/commit/011df2f10c4af552b7eedd49eb19da725b3132af

Here you can find my review for Reddit Sans (I'll start the Reddit Mono today). Feel free to ask if you have any questions! Cheers!


/ Global comment The Glyphset is slightly different in italic (around 50 glyphs missing). It’s better to have the same supported langages both in upright and italic. Here, it concerns stylistics sets and symbols. For stylistics sets, there aren’t supported by the API, so it’s ok to not have them in italics. For symbols, it would be nice :)

Version: In the version exported I checked, it’s the 1.012, should be bumped to 1.014 (to avoid any confusion with that PR: https://github.com/google/fonts/pull/6850 and with the version on the main branch of your repo -which is not the last one if I well understood-)

/ Fontbakery report remarks

Fails: 🔥 Copyright: we are agree for this exception 🔥 Check variable font instances: With Rosalie, you agreed to have a 300-800 range instead of 200-900.

What can be improved to remove WARNS:

(To check in every fonts)

Screenshot 2024-01-19 at 15 09 37

Check math signs have the same width -> It’s better, but if not it’s ok to leave them like this.

Italic: same remarks + weird behaviour with the Caron (looks a bit far in the regular master)

https://github.com/google/fonts/assets/64773544/21540bd7-87e2-4657-a8ac-0c00857e573f

FontBakery report

fontbakery version: 0.10.9

[2] Experimental checks
WARN: Shapes languages in all GF glyphsets. (com.google.fonts/check/glyphsets/shape_languages)
* ⚠ **WARN** GF_Latin_Core glyphset: | Language | FAIL messages | | :--- | :--- | | nb_Latn (Norwegian Bokmål) | No exemplar glyphs were defined for language Norwegian Bokmål | [code: warning-language-shaping]
WARN: Shapes languages in all GF glyphsets. (com.google.fonts/check/glyphsets/shape_languages)
* ⚠ **WARN** GF_Latin_Core glyphset: | Language | FAIL messages | | :--- | :--- | | nb_Latn (Norwegian Bokmål) | No exemplar glyphs were defined for language Norwegian Bokmål | [code: warning-language-shaping]

[1] Family checks
INFO: Check axis ordering on the STAT table. (com.google.fonts/check/STAT/axis_order)
* ℹ **INFO** From a total of 2 font files, 0 of them (0.00%) lack a STAT table. And these are the most common STAT axis orderings: ('wght-ital', 2) [code: summary]

[20] RedditSans-Italic[wght].ttf
🔥 FAIL: Copyright notices match canonical pattern in fonts (com.google.fonts/check/font_copyright)
* 🔥 **FAIL** Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright (c) 2020-2023, Reddit, Inc. (https://www.reddit.com)" [code: bad-notice-format]
🔥 FAIL: Check variable font instances (com.google.fonts/check/fvar_instances)
* 🔥 **FAIL** fvar instances are incorrect: - Add missing instances | Name | current | expected | | :--- | :--- | :--- | | ExtraLight Italic | N/A | wght=200.0 | | Light Italic | wght=300.0 | wght=300.0 | | Italic | wght=400.0 | wght=400.0 | | Medium Italic | wght=500.0 | wght=500.0 | | SemiBold Italic | wght=600.0 | wght=600.0 | | Bold Italic | wght=700.0 | wght=700.0 | | ExtraBold Italic | wght=800.0 | wght=800.0 | | Black Italic | N/A | wght=900.0 | [code: bad-fvar-instances]
WARN: Checking OS/2 achVendID. (com.google.fonts/check/vendor_id)
* ⚠ **WARN** OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx [code: unknown]
WARN: Check for codepoints not covered by METADATA subsets. (com.google.fonts/check/metadata/unreachable_subsetting)
* ⚠ **WARN** The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions. * U+02B9 MODIFIER LETTER PRIME: not included in any glyphset definition * U+02BA MODIFIER LETTER DOUBLE PRIME: not included in any glyphset definition * U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition * U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition * U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal, yi * U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition * U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition * U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition * U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition * U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition 84 more. Use -F or --full-lists to disable shortening of long lists. Or you can add the above codepoints to one of the subsets supported by the font: `latin`, `latin-ext`, `vietnamese` [code: unreachable-subsetting]
WARN: License URL matches License text on name table? (com.google.fonts/check/name/license_url)
* ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info] * ⚠ **WARN** OFL url is no longer "https://scripts.sil.org/OFL". Use 'https://openfontlicense.org' instead. [code: deprecated-ofl-url]
WARN: Are there caret positions declared for every ligature? (com.google.fonts/check/ligature_carets)
* ⚠ **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences? (com.google.fonts/check/kerning_for_non_ligated_sequences)
* ⚠ **WARN** GPOS table lacks kerning info for the following non-ligated sequences: - f + f - f + i - i + f - f + l - l + f - i + l - r + slash [code: lacks-kern-info]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)
* ⚠ **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)
* ⚠ **WARN** The following glyphs could not be reached by codepoint or substitution rules: - NULL - eight.sinf - eight.subs - eight.sups - five.sinf - five.subs - five.sups - four.sinf - four.subs - four.sups - 23 more. Use -F or --full-lists to disable shortening of long lists. [code: unreachable-glyphs]
WARN: Does the font contain a soft hyphen? (com.google.fonts/check/soft_hyphen)
* ⚠ **WARN** This font has a 'Soft Hyphen' character. [code: softhyphen]
WARN: Check math signs have the same width. (com.google.fonts/check/math_signs_width)
* ⚠ **WARN** The most common width is 1061 among a set of 2 math glyphs. The following math glyphs have a different width, though: Width = 1044: plus Width = 1051: equal, notequal Width = 1090: logicalnot Width = 1056: plusminus Width = 1014: multiply Width = 1042: minus, divide Width = 1137: approxequal Width = 1016: lessequal, greaterequal [code: width-outliers]
WARN: Are there any misaligned on-curve points? (com.google.fonts/check/outline_alignment_miss)
* ⚠ **WARN** The following glyphs have on-curve points which have potentially incorrect y coordinates: * asterisk (U+002A): X=290.5,Y=1476.0 (should be at cap-height 1474?) * nine (U+0039): X=455.0,Y=1.0 (should be at baseline 0?) * nine (U+0039): X=234.0,Y=1.0 (should be at baseline 0?) * at (U+0040): X=1370.0,Y=-2.0 (should be at baseline 0?) * K (U+004B): X=545.0,Y=1472.0 (should be at cap-height 1474?) * t (U+0074): X=532.5,Y=-0.5 (should be at baseline 0?) * uni0136 (U+0136): X=545.0,Y=1472.0 (should be at cap-height 1474?) * uni0163 (U+0163): X=532.5,Y=-0.5 (should be at baseline 0?) * tcaron (U+0165): X=536.5,Y=-0.5 (should be at baseline 0?) * tbar (U+0167): X=532.5,Y=-0.5 (should be at baseline 0?) * 18 more. Use -F or --full-lists to disable shortening of long lists. [code: found-misalignments]
WARN: Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (com.google.fonts/check/soft_dotted)
* ⚠ **WARN** The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄ The dot of soft dotted characters _should_ disappear in other cases, for example: į̆ į̇ į̈ į̉ į̊ į̋ į̏ į̑ į̒ į̛̀ į̛́ į̛̂ į̛̃ į̛̄ į̛̆ į̛̇ į̛̈ į̛̉ į̛̊ į̛̋ Your font fully covers the following languages that require the soft-dotted feature: Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers), Igbo (Latn, 27,823,640 speakers), Navajo (Latn, 166,319 speakers). Your font does *not* cover the following languages that require the soft-dotted feature: Basaa (Latn, 332,940 speakers), Avokaya (Latn, 100,000 speakers), Ejagham (Latn, 120,000 speakers), Koonzime (Latn, 40,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Aghem (Latn, 38,843 speakers), Kom (Latn, 360,685 speakers), Dan (Latn, 1,099,244 speakers), Nateni (Latn, 100,000 speakers), Lugbara (Latn, 2,200,000 speakers), Belarusian (Cyrl, 10,064,517 speakers). [code: soft-dotted]
INFO: Show hinting filesize impact. (com.google.fonts/check/hinting_impact)
* ℹ **INFO** Hinting filesize impact: | | RedditSans-Italic[wght].ttf | |:------------- | ---------------:| | Dehinted Size | 229.4kb | | Hinted Size | 229.4kb | | Increase | 24 bytes | | Change | 0.0 % | [code: size-impact]
INFO: Font has old ttfautohint applied? (com.google.fonts/check/old_ttfautohint)
* ℹ **INFO** Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.012'] [code: version-not-detected]
INFO: EPAR table present in font? (com.google.fonts/check/epar)
* ℹ **INFO** EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]
INFO: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (com.google.fonts/check/gasp)
* ℹ **INFO** These are the ppm ranges declared on the gasp table: PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType® [code: ranges]
INFO: Check for font-v versioning. (com.google.fonts/check/fontv)
* ℹ **INFO** Version string is: "Version 1.012" The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below: "Version 1.3; git-0d08353-release" [code: bad-format]
INFO: Font contains all required tables? (com.google.fonts/check/required_tables)
* ℹ **INFO** This font contains the following optional tables: - loca - prep - GPOS - GSUB - gasp [code: optional-tables]
INFO: List all superfamily filepaths (com.google.fonts/check/superfamily/list)
* ℹ **INFO** . [code: family-path]

[21] RedditSans[wght].ttf
🔥 FAIL: Copyright notices match canonical pattern in fonts (com.google.fonts/check/font_copyright)
* 🔥 **FAIL** Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright (c) 2020-2023, Reddit, Inc. (https://www.reddit.com)" [code: bad-notice-format]
🔥 FAIL: Check variable font instances (com.google.fonts/check/fvar_instances)
* 🔥 **FAIL** fvar instances are incorrect: - Add missing instances | Name | current | expected | | :--- | :--- | :--- | | ExtraLight | N/A | wght=200.0 | | Light | wght=300.0 | wght=300.0 | | Regular | wght=400.0 | wght=400.0 | | Medium | wght=500.0 | wght=500.0 | | SemiBold | wght=600.0 | wght=600.0 | | Bold | wght=700.0 | wght=700.0 | | ExtraBold | wght=800.0 | wght=800.0 | | Black | N/A | wght=900.0 | [code: bad-fvar-instances]
WARN: Checking OS/2 achVendID. (com.google.fonts/check/vendor_id)
* ⚠ **WARN** OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx [code: unknown]
WARN: Check for codepoints not covered by METADATA subsets. (com.google.fonts/check/metadata/unreachable_subsetting)
* ⚠ **WARN** The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions. * U+02B9 MODIFIER LETTER PRIME: not included in any glyphset definition * U+02BA MODIFIER LETTER DOUBLE PRIME: not included in any glyphset definition * U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition * U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition * U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal, yi * U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition * U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition * U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition * U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition * U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition 110 more. Use -F or --full-lists to disable shortening of long lists. Or you can add the above codepoints to one of the subsets supported by the font: `latin`, `latin-ext`, `vietnamese` [code: unreachable-subsetting]
WARN: License URL matches License text on name table? (com.google.fonts/check/name/license_url)
* ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info] * ⚠ **WARN** OFL url is no longer "https://scripts.sil.org/OFL". Use 'https://openfontlicense.org' instead. [code: deprecated-ofl-url]
WARN: Are there caret positions declared for every ligature? (com.google.fonts/check/ligature_carets)
* ⚠ **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences? (com.google.fonts/check/kerning_for_non_ligated_sequences)
* ⚠ **WARN** GPOS table lacks kerning info for the following non-ligated sequences: - f + f - f + i - i + f - f + l - l + f - i + l - r + slash [code: lacks-kern-info]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)
* ⚠ **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)
* ⚠ **WARN** The following glyphs could not be reached by codepoint or substitution rules: - NULL - eight.sinf - eight.subs - eight.sups - five.sinf - five.subs - five.sups - four.sinf - four.subs - four.sups - 24 more. Use -F or --full-lists to disable shortening of long lists. [code: unreachable-glyphs]
WARN: Does the font contain a soft hyphen? (com.google.fonts/check/soft_hyphen)
* ⚠ **WARN** This font has a 'Soft Hyphen' character. [code: softhyphen]
WARN: Detect any interpolation issues in the font. (com.google.fonts/check/interpolation_issues)
* ⚠ **WARN** Interpolation issues were found in the font: - Contour 2 start point differs in glyph 'arrowboth.case' between location wght=400 and location wght=200 - Contour 2 start point differs in glyph 'arrowboth.case' between location wght=200 and location wght=328 - Contour 1 start point differs in glyph 'uni2196.case' between location wght=400 and location wght=200 - Contour 1 start point differs in glyph 'uni2196.case' between location wght=200 and location wght=328 - Contour 1 start point differs in glyph 'uni2198.case' between location wght=400 and location wght=200 - Contour 1 start point differs in glyph 'uni2198.case' between location wght=200 and location wght=328 - Contour 1 start point differs in glyph 'uni2197.case' between location wght=400 and location wght=200 - Contour 1 start point differs in glyph 'uni2197.case' between location wght=200 and location wght=328 - Contour 1 start point differs in glyph 'uni2199.case' between location wght=400 and location wght=200 - Contour 1 start point differs in glyph 'uni2199.case' between location wght=200 and location wght=328 [code: interpolation-issues]
WARN: Check math signs have the same width. (com.google.fonts/check/math_signs_width)
* ⚠ **WARN** The most common width is 1016 among a set of 6 math glyphs. The following math glyphs have a different width, though: Width = 1052: greater, less Width = 1010: logicalnot Width = 984: multiply Width = 1098: approxequal Width = 992: lessequal, greaterequal [code: width-outliers]
WARN: Are there any misaligned on-curve points? (com.google.fonts/check/outline_alignment_miss)
* ⚠ **WARN** The following glyphs have on-curve points which have potentially incorrect y coordinates: * asterisk (U+002A): X=382.5,Y=1473.5 (should be at cap-height 1474?) * asterisk (U+002A): X=485.5,Y=1473.5 (should be at cap-height 1474?) * comma (U+002C): X=158.0,Y=1.5 (should be at baseline 0?) * semicolon (U+003B): X=182.0,Y=1.5 (should be at baseline 0?) * r (U+0072): X=744.0,Y=1062.0 (should be at x-height 1060?) * uni0123 (U+0123): X=539.0,Y=1476.0 (should be at cap-height 1474?) * uni02BC (U+02BC): X=157.0,Y=1476.0 (should be at cap-height 1474?) * uni0312 (U+0312): X=123.0,Y=1476.0 (should be at cap-height 1474?) * uni0361 (U+0361): X=797.5,Y=1472.0 (should be at cap-height 1474?) * uni0361 (U+0361): X=176.5,Y=1473.0 (should be at cap-height 1474?) * 35 more. Use -F or --full-lists to disable shortening of long lists. [code: found-misalignments]
WARN: Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (com.google.fonts/check/soft_dotted)
* ⚠ **WARN** The dot of soft dotted characters used in orthographies _must_ disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄ The dot of soft dotted characters _should_ disappear in other cases, for example: į̆ į̇ į̈ į̉ į̊ į̋ į̏ į̑ į̒ į̛̀ į̛́ į̛̂ į̛̃ į̛̄ į̛̆ į̛̇ į̛̈ į̛̉ į̛̊ į̛̋ Your font fully covers the following languages that require the soft-dotted feature: Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers), Igbo (Latn, 27,823,640 speakers), Navajo (Latn, 166,319 speakers). Your font does *not* cover the following languages that require the soft-dotted feature: Basaa (Latn, 332,940 speakers), Avokaya (Latn, 100,000 speakers), Ejagham (Latn, 120,000 speakers), Koonzime (Latn, 40,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Aghem (Latn, 38,843 speakers), Kom (Latn, 360,685 speakers), Dan (Latn, 1,099,244 speakers), Nateni (Latn, 100,000 speakers), Lugbara (Latn, 2,200,000 speakers), Belarusian (Cyrl, 10,064,517 speakers). [code: soft-dotted]
INFO: Show hinting filesize impact. (com.google.fonts/check/hinting_impact)
* ℹ **INFO** Hinting filesize impact: | | RedditSans[wght].ttf | |:------------- | ---------------:| | Dehinted Size | 255.9kb | | Hinted Size | 255.9kb | | Increase | 24 bytes | | Change | 0.0 % | [code: size-impact]
INFO: Font has old ttfautohint applied? (com.google.fonts/check/old_ttfautohint)
* ℹ **INFO** Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.012'] [code: version-not-detected]
INFO: EPAR table present in font? (com.google.fonts/check/epar)
* ℹ **INFO** EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]
INFO: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (com.google.fonts/check/gasp)
* ℹ **INFO** These are the ppm ranges declared on the gasp table: PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType® [code: ranges]
INFO: Check for font-v versioning. (com.google.fonts/check/fontv)
* ℹ **INFO** Version string is: "Version 1.012" The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below: "Version 1.3; git-0d08353-release" [code: bad-format]
INFO: Font contains all required tables? (com.google.fonts/check/required_tables)
* ℹ **INFO** This font contains the following optional tables: - loca - prep - GPOS - GSUB - gasp [code: optional-tables]
INFO: List all superfamily filepaths (com.google.fonts/check/superfamily/list)
* ℹ **INFO** . [code: family-path]

Summary

💔 ERROR ☠ FATAL 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 0 4 25 207 15 243 0
0% 0% 1% 5% 42% 3% 49% 0%

Note: The following loglevels were omitted in this report:

emmamarichal commented 9 months ago

For Reddit Mono:

-> Same remarks as for Reddit Sans for license url and soft hyphen -> Please consider that WARN: ⚠ WARN: Checking correctness of monospaced metadata.

Small outlines issues:

Screenshot 2024-01-19 at 15 57 16 Screenshot 2024-01-19 at 15 56 07

circumflex doesn't look well aligned

https://github.com/google/fonts/assets/64773544/e0e5dc92-c367-480a-9252-25f5392e8da8

Same in the O

Screenshot 2024-01-19 at 16 01 22

The y's dot is a bit too much on the right:

Screenshot 2024-01-19 at 16 02 26

Same issue with Lcaron

Screenshot 2024-01-19 at 16 06 22

FontBakery report

fontbakery version: 0.10.9

[1] Experimental checks
WARN: Shapes languages in all GF glyphsets. (com.google.fonts/check/glyphsets/shape_languages)
* ⚠ **WARN** GF_Latin_Core glyphset: | Language | FAIL messages | | :--- | :--- | | nb_Latn (Norwegian Bokmål) | No exemplar glyphs were defined for language Norwegian Bokmål | [code: warning-language-shaping]

[1] Family checks
INFO: Check axis ordering on the STAT table. (com.google.fonts/check/STAT/axis_order)
* ℹ **INFO** From a total of 1 font files, 0 of them (0.00%) lack a STAT table. And these are the most common STAT axis orderings: ('wght', 1) [code: summary]

[18] RedditMono[wght].ttf
🔥 FAIL: Copyright notices match canonical pattern in fonts (com.google.fonts/check/font_copyright)
* 🔥 **FAIL** Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright (c) 2020-2023, Reddit, Inc. (https://www.reddit.com)" [code: bad-notice-format]
🔥 FAIL: Check variable font instances (com.google.fonts/check/fvar_instances)
* 🔥 **FAIL** fvar instances are incorrect: - Add missing instances | Name | current | expected | | :--- | :--- | :--- | | ExtraLight | N/A | wght=200.0 | | Light | wght=300.0 | wght=300.0 | | Regular | wght=400.0 | wght=400.0 | | Medium | wght=500.0 | wght=500.0 | | SemiBold | wght=600.0 | wght=600.0 | | Bold | wght=700.0 | wght=700.0 | | ExtraBold | wght=800.0 | wght=800.0 | | Black | N/A | wght=900.0 | [code: bad-fvar-instances]
WARN: Checking OS/2 achVendID. (com.google.fonts/check/vendor_id)
* ⚠ **WARN** OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx [code: unknown]
WARN: Check for codepoints not covered by METADATA subsets. (com.google.fonts/check/metadata/unreachable_subsetting)
* ⚠ **WARN** The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions. * U+02B9 MODIFIER LETTER PRIME: not included in any glyphset definition * U+02BA MODIFIER LETTER DOUBLE PRIME: not included in any glyphset definition * U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition * U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition * U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal, yi * U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition * U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition * U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition * U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition * U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition 110 more. Use -F or --full-lists to disable shortening of long lists. Or you can add the above codepoints to one of the subsets supported by the font: `latin`, `latin-ext`, `vietnamese` [code: unreachable-subsetting]
WARN: License URL matches License text on name table? (com.google.fonts/check/name/license_url)
* ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info] * ⚠ **WARN** OFL url is no longer "https://scripts.sil.org/OFL". Use 'https://openfontlicense.org' instead. [code: deprecated-ofl-url]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)
* ⚠ **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)
* ⚠ **WARN** The following glyphs could not be reached by codepoint or substitution rules: - NULL - eight.sinf - eight.subs - eight.sups - five.sinf - five.subs - five.sups - four.sinf - four.subs - four.sups - 23 more. Use -F or --full-lists to disable shortening of long lists. [code: unreachable-glyphs]
WARN: Does the font contain a soft hyphen? (com.google.fonts/check/soft_hyphen)
* ⚠ **WARN** This font has a 'Soft Hyphen' character. [code: softhyphen]
WARN: Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron) (com.google.fonts/check/alt_caron)
* ⚠ **WARN** dcaron is decomposed and therefore could not be checked. Please check manually. [code: decomposed-outline]
WARN: Checking correctness of monospaced metadata. (com.google.fonts/check/monospace)
* ⚠ **WARN** The OpenType spec recomments at https://learn.microsoft.com/en-us/typography/opentype/spec/recom#hhea-table that hhea.numberOfHMetrics be set to 3 but this font has 1084 instead. Please read https://github.com/fonttools/fonttools/issues/3014 to decide whether this makes sense for your font. [code: bad-numberOfHMetrics] * ⚠ **WARN** Font is monospaced but 10 glyphs (0.90%) have a different width. You should check the widths of: ['f_f', 'f_f_i', 'f_f_l', 'fi', 'fi.ss02', 'fl', 'fl.ss01', 'r_slash.dlig', 'uni2008', 'uni200B'] [code: mono-outliers]
WARN: Are there any misaligned on-curve points? (com.google.fonts/check/outline_alignment_miss)
* ⚠ **WARN** The following glyphs have on-curve points which have potentially incorrect y coordinates: * comma (U+002C): X=595.5,Y=-0.5 (should be at baseline 0?) * semicolon (U+003B): X=595.5,Y=-0.5 (should be at baseline 0?) * threequarters (U+00BE): X=350.0,Y=1472.0 (should be at cap-height 1474?) * eogonek (U+0119): X=714.5,Y=-1.0 (should be at baseline 0?) * uni0123 (U+0123): X=507.0,Y=1476.0 (should be at cap-height 1474?) * uni01C5 (U+01C5): X=622.0,Y=1472.0 (should be at cap-height 1474?) * uni01C5 (U+01C5): X=1110.0,Y=1472.0 (should be at cap-height 1474?) * uni01C6 (U+01C6): X=628.0,Y=1472.0 (should be at cap-height 1474?) * uni01C6 (U+01C6): X=1116.0,Y=1472.0 (should be at cap-height 1474?) * uni0312 (U+0312): X=181.0,Y=1476.0 (should be at cap-height 1474?) * 15 more. Use -F or --full-lists to disable shortening of long lists. [code: found-misalignments]
INFO: Show hinting filesize impact. (com.google.fonts/check/hinting_impact)
* ℹ **INFO** Hinting filesize impact: | | RedditMono[wght].ttf | |:------------- | ---------------:| | Dehinted Size | 199.2kb | | Hinted Size | 199.2kb | | Increase | 24 bytes | | Change | 0.0 % | [code: size-impact]
INFO: Font has old ttfautohint applied? (com.google.fonts/check/old_ttfautohint)
* ℹ **INFO** Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.012'] [code: version-not-detected]
INFO: EPAR table present in font? (com.google.fonts/check/epar)
* ℹ **INFO** EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818 [code: lacks-EPAR]
INFO: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (com.google.fonts/check/gasp)
* ℹ **INFO** These are the ppm ranges declared on the gasp table: PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType® [code: ranges]
INFO: Check for font-v versioning. (com.google.fonts/check/fontv)
* ℹ **INFO** Version string is: "Version 1.012" The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below: "Version 1.3; git-0d08353-release" [code: bad-format]
INFO: Font contains all required tables? (com.google.fonts/check/required_tables)
* ℹ **INFO** This font contains the following optional tables: - loca - prep - GPOS - GSUB - gasp [code: optional-tables]
INFO: List all superfamily filepaths (com.google.fonts/check/superfamily/list)
* ℹ **INFO** . [code: family-path]

Summary

💔 ERROR ☠ FATAL 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 0 2 10 110 8 126 0
0% 0% 1% 4% 43% 3% 49% 0%

Note: The following loglevels were omitted in this report:

emmamarichal commented 9 months ago

Hello @stephenhutchings, What is the status here? Do you have any questions about this feedback?

Cheers!

stephenhutchings commented 9 months ago

Hi @emmamarichal. I am looking at these issues, although I have limited time due to other work. Hopefully I'll make some headway in the next few days.

stephenhutchings commented 9 months ago

@emmamarichal I believe the latest fonts on the gf-onboarding branch address most issues you raised above, except for one.

The position of the ogonek component on "ę" seems to be correct in the source files and the non-variable font exports. I am not sure why the variable fonts use a different position. Any help here would be appreciated.

emmamarichal commented 9 months ago

@stephenhutchings Yes sorry, for the ogonek, I think I looked at the .ttf and it's normal to have this kind of issue in a font editor. But all looks great otherwise. Thank you!

You can merge this branch to the main one so I can start the onboarding process. For the condensed version, not sure to understand: do you want to wait the italic version in order to make a variable font later? (with two axis: weight and width) Or do you want to onboard it now, following the discussion above, with Marc's changes?

stephenhutchings commented 9 months ago

@emmamarichal It's the end of the day for me here but I'll look at getting this merged into master this week.

Let's move forward with onboarding the condensed without italics. Marc's changes to the sanscondensed.yaml file have been merged onto that branch, so they will come across at the same time.

emmamarichal commented 9 months ago

Ok, since I didn't know what was the decision about it, I didn't review the condensed version yet. Let me do it today, I'll add a comment here with my review :)

emmamarichal commented 9 months ago

Reddit Sans Condensed review

Weird caron position:

https://github.com/google/fonts/assets/64773544/4343f6d1-7697-4b6a-847a-306f7e448b9d

In uni022B, the macron seems very closed to the dieresis, compared to uni022A:

Screenshot 2024-02-07 at 13 59 09

Position issue:

https://github.com/google/fonts/assets/64773544/bbf9eab0-edc7-4565-b898-fc4291a93b6c

stephenhutchings commented 9 months ago

Thanks @emmamarichal I will look at getting these fixed as soon as possible.

stephenhutchings commented 9 months ago

@emmamarichal These issues are now fixed and merged onto the main branch, with release tag v1.014.

tr000y commented 8 months ago

Hey @emmamarichal, following up here. Is anything else needed on our end to move forward? Ty!

emmamarichal commented 8 months ago

Ah yes sorry, I was quite busy last week! Will take a look this week and see if I can do a PR to the GF repo :)