Pass fontbakery

Fontbakery report

[23] Family checks

:fire: FAIL: Check font has a license.

com.google.fonts/check/028
:fire: FAIL No license file was found. Please add an OFL.txt or a LICENSE.txt file. If you are running fontbakery on a Google Fonts upstream repo, which is fine, just make sure there is a temporary license file in the same folder. [code: none]

:bread: PASS: Checking all files are in the same directory.

com.google.fonts/check/002
:bread: PASS All files are in the same directory.

:bread: PASS: Fonts have equal unicode encodings?

com.google.fonts/check/013
:bread: PASS Fonts have equal unicode encodings.

:bread: PASS: Make sure all font files have the same version value.

com.google.fonts/check/014
:bread: PASS All font files have the same version.

:bread: PASS: Fonts have consistent PANOSE proportion?

com.google.fonts/check/009
:bread: PASS Fonts have consistent PANOSE proportion.

:bread: PASS: Fonts have consistent PANOSE family type?

com.google.fonts/check/010
:bread: PASS Fonts have consistent PANOSE family type.

:bread: PASS: Fonts have consistent underline thickness?

com.google.fonts/check/008
:bread: PASS Fonts have consistent underline thickness.

:zzz: SKIP: Does DESCRIPTION file contain broken links?

com.google.fonts/check/003
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: Is this a proper HTML snippet?

com.google.fonts/check/004
:zzz: SKIP Unfulfilled Conditions: descfile

:zzz: SKIP: DESCRIPTION.en_us.html must have more than 200 bytes.

com.google.fonts/check/005
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: DESCRIPTION.en_us.html must have less than 1000 bytes.

com.google.fonts/check/006
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: Font designer field in METADATA.pb must not be 'unknown'.

com.google.fonts/check/007
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Ensure designer simple short name.

com.google.fonts/check/080
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Fontfamily is listed on Google Fonts API?

com.google.fonts/check/081
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: check if fonts field only has unique "full_name" values.

com.google.fonts/check/083
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: check if fonts field only contains unique style:weight pairs.

com.google.fonts/check/084
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb license is "APACHE2", "UFL" or "OFL"?

com.google.fonts/check/085
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb should contain at least "menu" and "latin" subsets.

com.google.fonts/check/086
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb subsets should be alphabetically ordered.

com.google.fonts/check/087
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Copyright notice is the same in all fonts?

com.google.fonts/check/088
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: Check that METADATA.pb family values are all the same.

com.google.fonts/check/089
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: According Google Fonts standards, families should have a Regular style.

com.google.fonts/check/090
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Regular should be 400.

com.google.fonts/check/091
:zzz: SKIP Unfulfilled Conditions: family_metadata, has_regular_style

[110] RobotoSlabBeta-VF.ttf

:broken_heart: ERROR: Checking with Microsoft Font Validator.

com.google.fonts/check/037
:broken_heart: ERROR Failed with FileNotFoundError: [Errno 2] No such file or directory: 'RobotoSlabBeta-VF.ttf.report.xml'
:information_source: INFO Microsoft Font Validator returned an error code. Output follows :

Unknown command line option: '-file'

:fire: FAIL: Glyph names are all valid?

com.google.fonts/check/058
:fire: FAIL The following glyph names do not comply with naming conventions: ['brevecomb-cy', 'hook-cy', 'descender-cy', 'tail-cy'] A glyph name may be up to 31 characters in length, must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). and must not start with a digit or period. There are a few exceptions such as the special character ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.

:warning: WARN: Show hinting filesize impact.

com.google.fonts/check/054
:warning: WARN ttfautohint is not available! You really MUST check the fonts with this tool. To install it, see https://github.com/googlefonts/gf-docs/blob/master/ProjectChecklist.md#ttfautohint [code: ttfa-missing]

:warning: WARN: Is font em size (ideally) equal to 1000?

com.google.fonts/check/116
:warning: WARN Font em size (2048) is not equal to 1000.

:warning: WARN: Check if each glyph has the recommended amount of contours.

com.google.fonts/check/153
:warning: WARN This check inspects the glyph outlines and detects the total number of counters in each of them. The expected values are infered from the typical ammounts of counters observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

 These are similar values, which may be a symptom of the slightly different calculation of the xAvgCharWidth value in font editors. There's further discussion on this at https://github.com/googlefonts/fontbakery/issues/1622

:warning: WARN: Is there kerning info for non-ligated sequences?

com.google.fonts/check/065
:warning: WARN GPOS table lacks kerning info for the following non-ligated sequences: ['uni030A_acutecomb', 'uni0302_acutecomb', 'uni0302_gravecomb', 'uni0302_hookabovecomb', 'uni0302_tildecomb', 'uni0306_acutecomb', 'uni0306_gravecomb', 'uni0306_hookabovecomb', 'uni0306_tildecomb', 'l_periodcentered', 'L_periodcentered', 'one_slash', 'three_slash', 'five_slash', 'seven_slash', 'N_o', 'f_i', 'f_l'] [code: lacks-kern-info]

:warning: WARN: Is there a caret position declared for every ligature?

com.google.fonts/check/064
:warning: WARN It seems that this font lacks caret positioning values for some of its ligature glyphs on the GDEF table. There's a total of 11 ligatures, but only 4 sets of caret positioning values. [code: incomplete-caret-pos-data]

:warning: WARN: Check for points out of bounds.

com.google.fonts/check/075
:warning: WARN The following glyphs have coordinates which are out of bounds:
[('emdash', 1501.4, 803.0), ('emdash', 1501.4, 648.0), ('uni2015', 1501.4, 803.0), ('uni2015', 1501.4, 648.0), ('quotereversed', 334.0027, 1067.0)]
This happens a lot when points are not extremes, which is usually bad. However, fixing this alert by adding points on extremes may do more harm than good, especially with italics, calligraphic-script, handwriting, rounded and other fonts. So it is common to ignore this message

:zzz: SKIP: Checking OS/2 usWeightClass.

com.google.fonts/check/020
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check copyright namerecords match license file.

com.google.fonts/check/029
:zzz: SKIP Unfulfilled Conditions: license

:zzz: SKIP: Checks METADATA.pb font.name field matches family name declared on the name table.

com.google.fonts/check/092
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.

com.google.fonts/check/093
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.full_name value matches fullname declared on the name table?

com.google.fonts/check/094
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name value should be same as the family name declared on the name table.

com.google.fonts/check/095
:zzz: SKIP Unfulfilled Conditions: font_metadata, style

:zzz: SKIP: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?

com.google.fonts/check/096
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.filename and font.post_script_name fields have equivalent values?

com.google.fonts/check/097
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name field contains font name in right format?

com.google.fonts/check/098
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.full_name field contains font name in right format?

com.google.fonts/check/099
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.filename field contains font name in right format?

com.google.fonts/check/100
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.post_script_name field contains font name in right format?

com.google.fonts/check/101
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Copyright notice on METADATA.pb matches canonical pattern?

com.google.fonts/check/102
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.

com.google.fonts/check/103
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Copyright notice shouldn't exceed 500 chars.

com.google.fonts/check/104
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Filename is set canonically?

com.google.fonts/check/105
:zzz: SKIP Unfulfilled Conditions: font_metadata, canonical_filename

:zzz: SKIP: METADATA.pb font.style "italic" matches font internals?

com.google.fonts/check/106
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.style "normal" matches font internals?

com.google.fonts/check/107
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name and font.full_name fields match the values declared on the name table?

com.google.fonts/check/108
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Check if fontname is not camel cased.

com.google.fonts/check/109
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Check font name is the same as family name.

com.google.fonts/check/110
:zzz: SKIP Unfulfilled Conditions: family_metadata, font_metadata

:zzz: SKIP: METADATA.pb: Check that font weight has a canonical value.

com.google.fonts/check/111
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Checking OS/2 usWeightClass matches weight specified at METADATA.pb.

com.google.fonts/check/112
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb weight matches postScriptName.

com.google.fonts/check/113
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Font styles are named canonically?

com.google.fonts/check/115
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Version number has increased since previous release on Google Fonts?

com.google.fonts/check/117
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont, github_gfonts_ttFont

:zzz: SKIP: Glyphs are similiar to Google Fonts version?

com.google.fonts/check/118
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: TTFAutohint x-height increase value is same as in previous release on Google Fonts?

com.google.fonts/check/119
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: Checking OS/2 fsSelection value.

com.google.fonts/check/129
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Checking post.italicAngle value.

com.google.fonts/check/130
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Checking head.macStyle value.

com.google.fonts/check/131
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check font has same encoded glyphs as version hosted on fonts.google.com

com.google.fonts/check/154
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?

com.google.fonts/check/155
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Font has all mandatory 'name' table entries ?

com.google.fonts/check/156
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FONT_FAMILY_NAME entries.

com.google.fonts/check/157
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FONT_SUBFAMILY_NAME entries.

com.google.fonts/check/158
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FULL_FONT_NAME entries.

com.google.fonts/check/159
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: POSTSCRIPT_NAME entries.

com.google.fonts/check/160
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.

com.google.fonts/check/161
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.

com.google.fonts/check/162
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: FontForge validation outputs error messages?

com.google.fonts/check/038
:zzz: SKIP Unfulfilled Conditions: fontforge_check_results

:zzz: SKIP: FontForge checks.

com.google.fonts/check/039
:zzz: SKIP Unfulfilled Conditions: fontforge_check_results

:zzz: SKIP: Monospace font has hhea.advanceWidthMax equal to each glyph's advanceWidth?

com.google.fonts/check/079
:zzz: SKIP Unfulfilled Conditions: seems_monospaced

:zzz: SKIP: The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.

com.google.fonts/check/168
:zzz: SKIP Unfulfilled Conditions: regular_wdth_coord

:zzz: SKIP: The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.

com.google.fonts/check/169
:zzz: SKIP Unfulfilled Conditions: regular_slnt_coord

:zzz: SKIP: The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.

com.google.fonts/check/170
:zzz: SKIP Unfulfilled Conditions: regular_ital_coord

:zzz: SKIP: The variable font 'opsz' (Optical Size) axis coordinate should be between 9 and 13 on the 'Regular' instance.

com.google.fonts/check/171
:zzz: SKIP Unfulfilled Conditions: regular_opsz_coord

:information_source: INFO: Font has old ttfautohint applied?

com.google.fonts/check/056
:information_source: 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 2.000']

:information_source: INFO: EPAR table present in font?

com.google.fonts/check/061
:information_source: INFO EPAR table not present in font. To learn more see https://github.com/googlefonts/fontbakery/issues/818

:information_source: INFO: Check for font-v versioning

com.google.fonts/check/166
:information_source: INFO Version string is: "Version 2.000"
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"

:information_source: INFO: Font contains all required tables?

com.google.fonts/check/052
:information_source: INFO This font contains the following optional tables [GPOS, gasp, GSUB, loca, DSIG, prep]
:bread: PASS Font contains all required tables.

:bread: PASS: Checking file is named canonically.

com.google.fonts/check/001
:bread: PASS RobotoSlabBeta-VF.ttf is named canonically.

:bread: PASS: Fonts have equal numbers of glyphs?

com.google.fonts/check/011
:bread: PASS All font files in this family have an equal total ammount of glyphs.

:bread: PASS: Fonts have equal glyph names?

com.google.fonts/check/012
:bread: PASS All font files have identical glyph names.

:bread: PASS: Checking OS/2 fsType.

com.google.fonts/check/016
:bread: PASS OS/2 fsType is properly set to zero.

:bread: PASS: Checking OS/2 achVendID.

com.google.fonts/check/018
:bread: PASS OS/2 VendorID 'GOOG' looks good!

:bread: PASS: Substitute copyright, registered and trademark symbols in name table entries.

com.google.fonts/check/019
:bread: PASS No need to substitute copyright, registered and trademark symbols in name table entries of this font.

:bread: PASS: "License URL matches License text on name table?

com.google.fonts/check/030
:bread: PASS Font has a valid license URL in NAME table.

:bread: PASS: Description strings in the name table must not exceed 200 characters.

com.google.fonts/check/032
:bread: PASS All description name records have reasonably small lengths.

:bread: PASS: Version format is correct in 'name' table?

com.google.fonts/check/055
:bread: PASS Version format in NAME table entries is correct.

:bread: PASS: Is 'gasp' table set to optimize rendering?

com.google.fonts/check/062
:bread: PASS 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.

:bread: PASS: Make sure family name does not begin with a digit.

com.google.fonts/check/067
:bread: PASS Font family name first character is not a digit.

:bread: PASS: Font has all expected currency sign characters?

com.google.fonts/check/070
:bread: PASS Font has all expected currency sign characters.

:bread: PASS: Are there non-ASCII characters in ASCII-only NAME table entries?

com.google.fonts/check/074
:bread: PASS None of the ASCII-only NAME table entries contain non-ASCII characteres.

:bread: PASS: Length of copyright notice must not exceed 500 characters.

com.google.fonts/check/164
:bread: PASS All copyright notice name entries on the 'name' table are shorter than 500 characters.

:bread: PASS: Familyname must be unique according to namecheck.fontdata.com

com.google.fonts/check/165
:bread: PASS Font familyname seems to be unique.

:bread: PASS: Check a static ttf can be generated from a variable font.

com.google.fonts/check/174
:bread: PASS fontTools.varLib.mutator generated a static font instance

:bread: PASS: Checking OS/2 usWinAscent & usWinDescent.

com.google.fonts/check/040
:bread: PASS OS/2 usWinAscent & usWinDescent values look good!

:bread: PASS: Checking OS/2 Metrics match hhea Metrics.

com.google.fonts/check/042
:bread: PASS OS/2.sTypoAscender/Descender match hhea.ascent/descent.

:bread: PASS: Font enables smart dropout control in "prep" table instructions?

com.google.fonts/check/072
:bread: PASS 'prep' table contains instructions enabling smart dropout control.

:bread: PASS: Checking with ftxvalidator.

com.google.fonts/check/035
:bread: PASS ftxvalidator passed this file

:bread: PASS: Checking with ots-sanitize.

com.google.fonts/check/036
:bread: PASS ots-sanitize passed this file

:bread: PASS: Font contains .notdef as first glyph?

com.google.fonts/check/046
:bread: PASS Font contains the .notdef glyph as the first glyph, it does not have a Unicode value assigned and contains a drawing.

:bread: PASS: Font contains glyphs for whitespace characters?

com.google.fonts/check/047
:bread: PASS Font contains glyphs for whitespace characters.

:bread: PASS: Font has **proper** whitespace glyph names?

com.google.fonts/check/048
:bread: PASS Font has proper whitespace glyph names.

:bread: PASS: Whitespace glyphs have ink?

com.google.fonts/check/049
:bread: PASS There is no whitespace glyph with ink.

:bread: PASS: Are there unwanted tables?

com.google.fonts/check/053
:bread: PASS There are no unwanted tables.

:bread: PASS: Font contains unique glyph names?

com.google.fonts/check/059
:bread: PASS Font contains unique glyph names.

:bread: PASS: Checking with fontTools.ttx

com.google.fonts/check/ttx-roundtrip
:bread: PASS Hey! It all looks good!

:bread: PASS: Check glyphs have unique unicode codepoints.

com.google.fonts/check/076
:bread: PASS All glyphs have unique unicode codepoint assignments.

:bread: PASS: Check all glyphs have codepoints assigned.

com.google.fonts/check/077
:bread: PASS All glyphs have a codepoint value assigned.

:bread: PASS: Checking unitsPerEm value is reasonable.

com.google.fonts/check/043
:bread: PASS unitsPerEm value on the 'head' table is reasonable.

:bread: PASS: Checking font version fields (head and name table).

com.google.fonts/check/044
:bread: PASS All font version fields match.

:bread: PASS: Font has correct post table version (2 for TTF, 3 for OTF)?

com.google.fonts/check/015
:bread: PASS Font has post table version 2.

:bread: PASS: Description strings in the name table must not contain copyright info.

com.google.fonts/check/031
:bread: PASS Description strings in the name table do not contain any copyright string.

:bread: PASS: Checking correctness of monospaced metadata.

com.google.fonts/check/033
:bread: PASS Font is not monospaced and all related metadata look good. [code: good]

:bread: PASS: Name table entries should not contain line-breaks.

com.google.fonts/check/057
:bread: PASS Name table entries are all single-line (no line-breaks found).

:bread: PASS: Does full font name begin with the font family name?

com.google.fonts/check/068
:bread: PASS Full font name begins with the font family name.

:bread: PASS: Font follows the family naming recommendations?

com.google.fonts/check/071
:bread: PASS Font follows the family naming recommendations.

:bread: PASS: Name table strings must not contain the string 'Reserved Font Name'.

com.google.fonts/check/152
:bread: PASS None of the name table strings contain "Reserved Font Name".

:bread: PASS: Combined length of family and style must not exceed 20 characters.

com.google.fonts/check/163
:bread: PASS All name entries are good.

:bread: PASS: Checking Vertical Metric Linegaps.

com.google.fonts/check/041
:bread: PASS OS/2 sTypoLineGap and hhea lineGap are both 0.

:bread: PASS: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?

com.google.fonts/check/073
:bread: PASS MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.

:bread: PASS: Does the font have a DSIG table?

com.google.fonts/check/045
:bread: PASS Digital Signature (DSIG) exists.

:bread: PASS: Whitespace and non-breaking space have the same width?

com.google.fonts/check/050
:bread: PASS Whitespace and non-breaking space have the same width.

:bread: PASS: Does GPOS table have kerning information?

com.google.fonts/check/063
:bread: PASS GPOS table has got kerning information.

:bread: PASS: Is there a "kern" table declared in the font?

com.google.fonts/check/066
:bread: PASS Font does not declare an optional "kern" table.

:bread: PASS: Is there any unused data at the end of the glyf table?

com.google.fonts/check/069
:bread: PASS There is no unused data at the end of the glyf table.

:bread: PASS: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.

com.google.fonts/check/167
:bread: PASS Regular:wght is 400.

:bread: PASS: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.

com.google.fonts/check/172
:bread: PASS Bold:wght is 700.

:bread: PASS: Does the number of glyphs in the loca table match the maxp table?

com.google.fonts/check/180
:bread: PASS 'loca' table matches numGlyphs in 'maxp' table.

Summary

:broken_heart: ERROR
:fire: FAIL
:warning: WARN
:zzz: SKIP
:information_source: INFO
:bread: PASS

1
2
7
63
4
56

1%
2%
5%
47%
3%
42%

@davelab6 does the fail on check 58 necessitate a change in the source file? The few problematic glyphs are intentionally named that way for automatic anchor generation within Glyphs app
🔥 FAIL: Glyph names are all valid?
com.google.fonts/check/058
🔥 FAIL The following glyph names do not comply with naming conventions: ['brevecomb-cy', 'hook-cy', 'descender-cy', 'tail-cy'] A glyph name may be up to 31 characters in length, must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). and must not start with a digit or period. There are a few exceptions such as the special character ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.

I think Adobe type team objected to this because the - is otherwise used as
a range indicator, but I forget if Georg actually convinced them this was
not a problem in practice. Please post on the glyphsapp forum to confirm if
these glyph names will actually cause any problems anywhere or not. If not,
file a FB issue and we'll get that check updated.

Posted here

Down the rabbit hole we go =)

In the mean time I can manually change the names since there are only 4, and push an updated version of the VF

Yes, just make a built.py or something so that its repeatable and
documented, and file an issue to stop doing it when fontmake is updated

Is there a benefit to adding that in the build script and then removing it?
I was just going to change it in the actual glyphs source and get a fresh VF from my current build.sh

AFAIK the glyphs are named that way because GlyphsApp does fancy things
when they are named that way.
If you rename them, you kinda corrupt the sources from working as sources.
This is a build detail, so belongs in a build script. And spending a few
hours figuring out how to do it via scripting (with glyphsLib or whatever
scripting) is going to be time well spent to make you stronger :)

Sounds good

Fontbakery report

[23] Family checks

:fire: FAIL: Check font has a license.

com.google.fonts/check/028
:fire: FAIL No license file was found. Please add an OFL.txt or a LICENSE.txt file. If you are running fontbakery on a Google Fonts upstream repo, which is fine, just make sure there is a temporary license file in the same folder. [code: none]

:bread: PASS: Checking all files are in the same directory.

com.google.fonts/check/002
:bread: PASS All files are in the same directory.

:bread: PASS: Fonts have equal unicode encodings?

com.google.fonts/check/013
:bread: PASS Fonts have equal unicode encodings.

:bread: PASS: Make sure all font files have the same version value.

com.google.fonts/check/014
:bread: PASS All font files have the same version.

:bread: PASS: Fonts have consistent PANOSE proportion?

com.google.fonts/check/009
:bread: PASS Fonts have consistent PANOSE proportion.

:bread: PASS: Fonts have consistent PANOSE family type?

com.google.fonts/check/010
:bread: PASS Fonts have consistent PANOSE family type.

:bread: PASS: Fonts have consistent underline thickness?

com.google.fonts/check/008
:bread: PASS Fonts have consistent underline thickness.

:zzz: SKIP: Does DESCRIPTION file contain broken links?

com.google.fonts/check/003
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: Is this a proper HTML snippet?

com.google.fonts/check/004
:zzz: SKIP Unfulfilled Conditions: descfile

:zzz: SKIP: DESCRIPTION.en_us.html must have more than 200 bytes.

com.google.fonts/check/005
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: DESCRIPTION.en_us.html must have less than 1000 bytes.

com.google.fonts/check/006
:zzz: SKIP Unfulfilled Conditions: description

:zzz: SKIP: Font designer field in METADATA.pb must not be 'unknown'.

com.google.fonts/check/007
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Ensure designer simple short name.

com.google.fonts/check/080
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Fontfamily is listed on Google Fonts API?

com.google.fonts/check/081
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: check if fonts field only has unique "full_name" values.

com.google.fonts/check/083
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: check if fonts field only contains unique style:weight pairs.

com.google.fonts/check/084
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb license is "APACHE2", "UFL" or "OFL"?

com.google.fonts/check/085
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb should contain at least "menu" and "latin" subsets.

com.google.fonts/check/086
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb subsets should be alphabetically ordered.

com.google.fonts/check/087
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Copyright notice is the same in all fonts?

com.google.fonts/check/088
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: Check that METADATA.pb family values are all the same.

com.google.fonts/check/089
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: According Google Fonts standards, families should have a Regular style.

com.google.fonts/check/090
:zzz: SKIP Unfulfilled Conditions: family_metadata

:zzz: SKIP: METADATA.pb: Regular should be 400.

com.google.fonts/check/091
:zzz: SKIP Unfulfilled Conditions: family_metadata, has_regular_style

[110] RobotoSlabBeta-VF.ttf

:broken_heart: ERROR: Checking with Microsoft Font Validator.

com.google.fonts/check/037
:broken_heart: ERROR Failed with FileNotFoundError: [Errno 2] No such file or directory: 'RobotoSlabBeta-VF.ttf.xml'
:information_source: INFO Microsoft Font Validator returned an error code. Output follows :

Unknown command line option: '-file'

:warning: WARN: Show hinting filesize impact.

com.google.fonts/check/054
:warning: WARN ttfautohint is not available! You really MUST check the fonts with this tool. To install it, see https://github.com/googlefonts/gf-docs/blob/master/ProjectChecklist.md#ttfautohint [code: ttfa-missing]

:warning: WARN: Is font em size (ideally) equal to 1000?

com.google.fonts/check/116
:warning: WARN Font em size (2048) is not equal to 1000.

:warning: WARN: Check if each glyph has the recommended amount of contours.

com.google.fonts/check/153
:warning: WARN This check inspects the glyph outlines and detects the total number of counters in each of them. The expected values are infered from the typical ammounts of counters observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

 There's a total of 11 ligatures, but only 4 sets of caret positioning values. [code: incomplete-caret-pos-data]

:warning: WARN: Check for points out of bounds.

com.google.fonts/check/075
:warning: WARN The following glyphs have coordinates which are out of bounds:
[('emdash', 1501.4, 803.0), ('emdash', 1501.4, 648.0), ('uni2015', 1501.4, 803.0), ('uni2015', 1501.4, 648.0), ('quotereversed', 334.0027, 1067.0)]
This happens a lot when points are not extremes, which is usually bad. However, fixing this alert by adding points on extremes may do more harm than good, especially with italics, calligraphic-script, handwriting, rounded and other fonts. So it is common to ignore this message

:zzz: SKIP: Checking OS/2 usWeightClass.

com.google.fonts/check/020
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check copyright namerecords match license file.

com.google.fonts/check/029
:zzz: SKIP Unfulfilled Conditions: license

:zzz: SKIP: Checks METADATA.pb font.name field matches family name declared on the name table.

com.google.fonts/check/092
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.

com.google.fonts/check/093
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.full_name value matches fullname declared on the name table?

com.google.fonts/check/094
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name value should be same as the family name declared on the name table.

com.google.fonts/check/095
:zzz: SKIP Unfulfilled Conditions: font_metadata, style

:zzz: SKIP: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?

com.google.fonts/check/096
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.filename and font.post_script_name fields have equivalent values?

com.google.fonts/check/097
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name field contains font name in right format?

com.google.fonts/check/098
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.full_name field contains font name in right format?

com.google.fonts/check/099
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.filename field contains font name in right format?

com.google.fonts/check/100
:zzz: SKIP Unfulfilled Conditions: style, font_metadata

:zzz: SKIP: METADATA.pb font.post_script_name field contains font name in right format?

com.google.fonts/check/101
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Copyright notice on METADATA.pb matches canonical pattern?

com.google.fonts/check/102
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.

com.google.fonts/check/103
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Copyright notice shouldn't exceed 500 chars.

com.google.fonts/check/104
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Filename is set canonically?

com.google.fonts/check/105
:zzz: SKIP Unfulfilled Conditions: font_metadata, canonical_filename

:zzz: SKIP: METADATA.pb font.style "italic" matches font internals?

com.google.fonts/check/106
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.style "normal" matches font internals?

com.google.fonts/check/107
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb font.name and font.full_name fields match the values declared on the name table?

com.google.fonts/check/108
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Check if fontname is not camel cased.

com.google.fonts/check/109
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Check font name is the same as family name.

com.google.fonts/check/110
:zzz: SKIP Unfulfilled Conditions: family_metadata, font_metadata

:zzz: SKIP: METADATA.pb: Check that font weight has a canonical value.

com.google.fonts/check/111
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Checking OS/2 usWeightClass matches weight specified at METADATA.pb.

com.google.fonts/check/112
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb weight matches postScriptName.

com.google.fonts/check/113
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: METADATA.pb: Font styles are named canonically?

com.google.fonts/check/115
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Version number has increased since previous release on Google Fonts?

com.google.fonts/check/117
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont, github_gfonts_ttFont

:zzz: SKIP: Glyphs are similiar to Google Fonts version?

com.google.fonts/check/118
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: TTFAutohint x-height increase value is same as in previous release on Google Fonts?

com.google.fonts/check/119
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: Checking OS/2 fsSelection value.

com.google.fonts/check/129
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Checking post.italicAngle value.

com.google.fonts/check/130
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Checking head.macStyle value.

com.google.fonts/check/131
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check font has same encoded glyphs as version hosted on fonts.google.com

com.google.fonts/check/154
:zzz: SKIP Unfulfilled Conditions: api_gfonts_ttFont

:zzz: SKIP: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?

com.google.fonts/check/155
:zzz: SKIP Unfulfilled Conditions: font_metadata

:zzz: SKIP: Font has all mandatory 'name' table entries ?

com.google.fonts/check/156
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FONT_FAMILY_NAME entries.

com.google.fonts/check/157
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FONT_SUBFAMILY_NAME entries.

com.google.fonts/check/158
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: FULL_FONT_NAME entries.

com.google.fonts/check/159
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: POSTSCRIPT_NAME entries.

com.google.fonts/check/160
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.

com.google.fonts/check/161
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.

com.google.fonts/check/162
:zzz: SKIP Unfulfilled Conditions: style

:zzz: SKIP: FontForge validation outputs error messages?

com.google.fonts/check/038
:zzz: SKIP Unfulfilled Conditions: fontforge_check_results

:zzz: SKIP: FontForge checks.

com.google.fonts/check/039
:zzz: SKIP Unfulfilled Conditions: fontforge_check_results

:zzz: SKIP: Monospace font has hhea.advanceWidthMax equal to each glyph's advanceWidth?

com.google.fonts/check/079
:zzz: SKIP Unfulfilled Conditions: seems_monospaced

:zzz: SKIP: The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.

com.google.fonts/check/168
:zzz: SKIP Unfulfilled Conditions: regular_wdth_coord

:zzz: SKIP: The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.

com.google.fonts/check/169
:zzz: SKIP Unfulfilled Conditions: regular_slnt_coord

:zzz: SKIP: The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.

com.google.fonts/check/170
:zzz: SKIP Unfulfilled Conditions: regular_ital_coord

:zzz: SKIP: The variable font 'opsz' (Optical Size) axis coordinate should be between 9 and 13 on the 'Regular' instance.

com.google.fonts/check/171
:zzz: SKIP Unfulfilled Conditions: regular_opsz_coord

:information_source: INFO: Font has old ttfautohint applied?

com.google.fonts/check/056
:information_source: 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 2.000']

:information_source: INFO: EPAR table present in font?

com.google.fonts/check/061
:information_source: INFO EPAR table not present in font. To learn more see https://github.com/googlefonts/fontbakery/issues/818

:information_source: INFO: Check for font-v versioning

com.google.fonts/check/166
:information_source: INFO Version string is: "Version 2.000"
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"

:information_source: INFO: Font contains all required tables?

com.google.fonts/check/052
:information_source: INFO This font contains the following optional tables [gasp, loca, GPOS, prep, DSIG, GSUB]
:bread: PASS Font contains all required tables.

:bread: PASS: Checking file is named canonically.

com.google.fonts/check/001
:bread: PASS RobotoSlabBeta-VF.ttf is named canonically.

:bread: PASS: Fonts have equal numbers of glyphs?

com.google.fonts/check/011
:bread: PASS All font files in this family have an equal total ammount of glyphs.

:bread: PASS: Fonts have equal glyph names?

com.google.fonts/check/012
:bread: PASS All font files have identical glyph names.

:bread: PASS: Checking OS/2 fsType.

com.google.fonts/check/016
:bread: PASS OS/2 fsType is properly set to zero.

:bread: PASS: Checking OS/2 achVendID.

com.google.fonts/check/018
:bread: PASS OS/2 VendorID 'GOOG' looks good!

:bread: PASS: Substitute copyright, registered and trademark symbols in name table entries.

com.google.fonts/check/019
:bread: PASS No need to substitute copyright, registered and trademark symbols in name table entries of this font.

:bread: PASS: "License URL matches License text on name table?

com.google.fonts/check/030
:bread: PASS Font has a valid license URL in NAME table.

:bread: PASS: Description strings in the name table must not exceed 200 characters.

com.google.fonts/check/032
:bread: PASS All description name records have reasonably small lengths.

:bread: PASS: Version format is correct in 'name' table?

com.google.fonts/check/055
:bread: PASS Version format in NAME table entries is correct.

:bread: PASS: Is 'gasp' table set to optimize rendering?

com.google.fonts/check/062
:bread: PASS 'gasp' table is correctly set, with one gaspRange:value of 0xFFFF:0x0F.

:bread: PASS: Make sure family name does not begin with a digit.

com.google.fonts/check/067
:bread: PASS Font family name first character is not a digit.

:bread: PASS: Font has all expected currency sign characters?

com.google.fonts/check/070
:bread: PASS Font has all expected currency sign characters.

:bread: PASS: Are there non-ASCII characters in ASCII-only NAME table entries?

com.google.fonts/check/074
:bread: PASS None of the ASCII-only NAME table entries contain non-ASCII characteres.

:bread: PASS: Length of copyright notice must not exceed 500 characters.

com.google.fonts/check/164
:bread: PASS All copyright notice name entries on the 'name' table are shorter than 500 characters.

:bread: PASS: Familyname must be unique according to namecheck.fontdata.com

com.google.fonts/check/165
:bread: PASS Font familyname seems to be unique.

:bread: PASS: Check a static ttf can be generated from a variable font.

com.google.fonts/check/174
:bread: PASS fontTools.varLib.mutator generated a static font instance

:bread: PASS: Checking OS/2 usWinAscent & usWinDescent.

com.google.fonts/check/040
:bread: PASS OS/2 usWinAscent & usWinDescent values look good!

:bread: PASS: Checking OS/2 Metrics match hhea Metrics.

com.google.fonts/check/042
:bread: PASS OS/2.sTypoAscender/Descender match hhea.ascent/descent.

:bread: PASS: Font enables smart dropout control in "prep" table instructions?

com.google.fonts/check/072
:bread: PASS 'prep' table contains instructions enabling smart dropout control.

:bread: PASS: Checking with ftxvalidator.

com.google.fonts/check/035
:bread: PASS ftxvalidator passed this file

:bread: PASS: Checking with ots-sanitize.

com.google.fonts/check/036
:bread: PASS ots-sanitize passed this file

:bread: PASS: Font contains .notdef as first glyph?

com.google.fonts/check/046
:bread: PASS Font contains the .notdef glyph as the first glyph, it does not have a Unicode value assigned and contains a drawing.

:bread: PASS: Font contains glyphs for whitespace characters?

com.google.fonts/check/047
:bread: PASS Font contains glyphs for whitespace characters.

:bread: PASS: Font has **proper** whitespace glyph names?

com.google.fonts/check/048
:bread: PASS Font has proper whitespace glyph names.

:bread: PASS: Whitespace glyphs have ink?

com.google.fonts/check/049
:bread: PASS There is no whitespace glyph with ink.

:bread: PASS: Are there unwanted tables?

com.google.fonts/check/053
:bread: PASS There are no unwanted tables.

:bread: PASS: Glyph names are all valid?

com.google.fonts/check/058
:bread: PASS Glyph names are all valid.

:bread: PASS: Font contains unique glyph names?

com.google.fonts/check/059
:bread: PASS Font contains unique glyph names.

:bread: PASS: Checking with fontTools.ttx

com.google.fonts/check/ttx-roundtrip
:bread: PASS Hey! It all looks good!

:bread: PASS: Check glyphs have unique unicode codepoints.

com.google.fonts/check/076
:bread: PASS All glyphs have unique unicode codepoint assignments.

:bread: PASS: Check all glyphs have codepoints assigned.

com.google.fonts/check/077
:bread: PASS All glyphs have a codepoint value assigned.

:bread: PASS: Checking unitsPerEm value is reasonable.

com.google.fonts/check/043
:bread: PASS unitsPerEm value on the 'head' table is reasonable.

:bread: PASS: Checking font version fields (head and name table).

com.google.fonts/check/044
:bread: PASS All font version fields match.

:bread: PASS: Check if OS/2 xAvgCharWidth is correct.

com.google.fonts/check/034
:bread: PASS OS/2 xAvgCharWidth value is correct.

:bread: PASS: Font has correct post table version (2 for TTF, 3 for OTF)?

com.google.fonts/check/015
:bread: PASS Font has post table version 2.

:bread: PASS: Description strings in the name table must not contain copyright info.

com.google.fonts/check/031
:bread: PASS Description strings in the name table do not contain any copyright string.

:bread: PASS: Checking correctness of monospaced metadata.

com.google.fonts/check/033
:bread: PASS Font is not monospaced and all related metadata look good. [code: good]

:bread: PASS: Name table entries should not contain line-breaks.

com.google.fonts/check/057
:bread: PASS Name table entries are all single-line (no line-breaks found).

:bread: PASS: Does full font name begin with the font family name?

com.google.fonts/check/068
:bread: PASS Full font name begins with the font family name.

:bread: PASS: Font follows the family naming recommendations?

com.google.fonts/check/071
:bread: PASS Font follows the family naming recommendations.

:bread: PASS: Name table strings must not contain the string 'Reserved Font Name'.

com.google.fonts/check/152
:bread: PASS None of the name table strings contain "Reserved Font Name".

:bread: PASS: Combined length of family and style must not exceed 20 characters.

com.google.fonts/check/163
:bread: PASS All name entries are good.

:bread: PASS: Checking Vertical Metric Linegaps.

com.google.fonts/check/041
:bread: PASS OS/2 sTypoLineGap and hhea lineGap are both 0.

:bread: PASS: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?

com.google.fonts/check/073
:bread: PASS MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables.

:bread: PASS: Does the font have a DSIG table?

com.google.fonts/check/045
:bread: PASS Digital Signature (DSIG) exists.

:bread: PASS: Whitespace and non-breaking space have the same width?

com.google.fonts/check/050
:bread: PASS Whitespace and non-breaking space have the same width.

:bread: PASS: Does GPOS table have kerning information?

com.google.fonts/check/063
:bread: PASS GPOS table has got kerning information.

:bread: PASS: Is there a "kern" table declared in the font?

com.google.fonts/check/066
:bread: PASS Font does not declare an optional "kern" table.

:bread: PASS: Is there any unused data at the end of the glyf table?

com.google.fonts/check/069
:bread: PASS There is no unused data at the end of the glyf table.

:bread: PASS: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.

com.google.fonts/check/167
:bread: PASS Regular:wght is 400.

:bread: PASS: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.

com.google.fonts/check/172
:bread: PASS Bold:wght is 700.

:bread: PASS: Does the number of glyphs in the loca table match the maxp table?

com.google.fonts/check/180
:bread: PASS 'loca' table matches numGlyphs in 'maxp' table.

Summary

:broken_heart: ERROR
:fire: FAIL
:warning: WARN
:zzz: SKIP
:information_source: INFO
:bread: PASS

1
1
6
63
4
58

1%
1%
5%
47%
3%
44%

Updated the build script and updated the beta VF, here is the latest Fontbakery report


[CLU] naming feedback

rename get_load_snapshot_status --> get_load_snapshot_job_status

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-language-conversations


Bug

Hi
page 1

Click Next Page:

Hi there,
Thank you for reporting this issue. I have notified the team and they are working to resolve it. I will keep this ticket updated as I learn more.

@AhrimanSefid I believe that this issue with full text searches has been resolved. I am going to go ahead and close this issue, but please feel free to reopen if you are still having difficulties with that query.


Feature/memory queue

Codecov Report

Merging #54 (1fef1e0) into master (9ff244f) will decrease coverage by 2.43%.
The diff coverage is 56.92%.

@@            Coverage Diff             @@
##           master      #54      +/-   ##
==========================================
- Coverage   79.79%   77.36%   -2.44%
==========================================
  Files          24       26       +2
  Lines         777      879     +102
==========================================
+ Hits          620      680      +60
- Misses        157      199      +42

Impacted Files
Coverage Δ

action-executor/src/iface_impl/trigger_reader.rs
0.00% <0.00%> (ø)

process/src/process/config/executor.rs
0.00% <0.00%> (ø)

...gger-interpreter/src/iface_impl/action_manifest.rs
33.33% <0.00%> (-5.80%)
:arrow_down:

trigger-interpreter/src/iface_impl/trigger.rs
66.66% <0.00%> (-4.77%)
:arrow_down:

process/src/process/resource_manager.rs
42.85% <42.85%> (ø)

process/src/process/node.rs
80.00% <55.55%> (-10.48%)
:arrow_down:

process/src/process/config/mod.rs
76.92% <60.00%> (+1.92%)
:arrow_up:

process/src/process/config/interpreter.rs
85.96% <70.83%> (-4.95%)
:arrow_down:

process/src/process/config/trigger.rs
85.71% <75.00%> (-4.45%)
:arrow_down:

toolkit/src/queue/memory.rs
75.60% <75.60%> (ø)

... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9ff244f...9a9181d. Read the comment docs.

Codecov Report

Merging #54 (1fef1e0) into master (9ff244f) will decrease coverage by 2.43%.
The diff coverage is 56.92%.

@@            Coverage Diff             @@
##           master      #54      +/-   ##
==========================================
- Coverage   79.79%   77.36%   -2.44%
==========================================
  Files          24       26       +2
  Lines         777      879     +102
==========================================
+ Hits          620      680      +60
- Misses        157      199      +42

Impacted Files
Coverage Δ

action-executor/src/iface_impl/trigger_reader.rs
0.00% <0.00%> (ø)

process/src/process/config/executor.rs
0.00% <0.00%> (ø)

...gger-interpreter/src/iface_impl/action_manifest.rs
33.33% <0.00%> (-5.80%)
:arrow_down:

trigger-interpreter/src/iface_impl/trigger.rs
66.66% <0.00%> (-4.77%)
:arrow_down:

process/src/process/resource_manager.rs
42.85% <42.85%> (ø)

process/src/process/node.rs
80.00% <55.55%> (-10.48%)
:arrow_down:

process/src/process/config/mod.rs
76.92% <60.00%> (+1.92%)
:arrow_up:

process/src/process/config/interpreter.rs
85.96% <70.83%> (-4.95%)
:arrow_down:

process/src/process/config/trigger.rs
85.71% <75.00%> (-4.45%)
:arrow_down:

toolkit/src/queue/memory.rs
75.60% <75.60%> (ø)

... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9ff244f...9a9181d. Read the comment docs.


docs: restructure network, security and other remaining sections

According to the restructure plan, below sections are restructured:

Networking
Security
Observability
Operation
Community
Contributor Guide
Reference

Please note that:
MicroK8s are indexed separately because it needs to retire in a separate PR later.

We have some "stuttering" in the table-of-contents - Networking -> Networking, Security->Security, and also Advanced Installation -> Advanced Installation Guides

Can we make it so the next level down section headings appear in the TOC?

Hi @lizrice I have updated the PR per your comments, please have a look and let me know if you have any other questions.

@yoyo-go There are conflicts on some files, can you please rebase this PR on the current master branch?

@yoyo-go There are conflicts on some files, can you please rebase this PR on the current master branch?

@qmonnet I have rebased the branch. Please let me know if there is any other issue.

There are a few ones.

The CI complains because the CODEOWNERS file should be updated. Please see this branch, in which I pushed commits to update it for each of your commit (although I haven't tested the changes through the CI). Can you please retrieve the changes and merge it with the respective commits from your PR?

I have updated the file per your changes.

Commit 3 contains changes that are not related to the TOC and index updates, but logically belonging to earlier commits, and that should be moved accordingly.

I have updated some other small changes together with this commit.

What's the point of subdirectories security/security/ and network/networking/? Should they be renamed, or should the subdirectories be removed altogether (with their contents placed under security/ or network/)?

The networking in network/networking is the directory for Network Concepts, and the security for security/security is the directory for Network Security. If that is not good, do you think change the first directory name into concept and the second into netoworksecurity works better?

There are a few ones.

The CI complains because the CODEOWNERS file should be updated. Please see this branch, in which I pushed commits to update it for each of your commit (although I haven't tested the changes through the CI). Can you please retrieve the changes and merge it with the respective commits from your PR?

I have updated the file per your changes.

Please fold the changes into the respective commits. I took the time to split the CODEOWNERS changes in 3 commits on purpose.

Commit 3 contains changes that are not related to the TOC and index updates, but logically belonging to earlier commits, and that should be moved accordingly.

I have updated some other small changes together with this commit.

Yes, that's what I'm talking about. I'd like these changes to be moved from that last commit to the relevant, earlier commits (networking and security). For example, the renaming of the bandwidth manager has nothing to do in the third commit (which should be only about updating the index.rst and TOC entries), but should instead be part of the reorganisation of the networking section.
I do realise this is not fun to do, but it's a big PR and it will make some tasks more complex for other people (I'm thinking about documentation backports to v1.10, v1.11, v1.12 branches). So I'd really like the Git history to be as clean as possible to help developers understand what's going on, and where the files have gone. I can help if necessary.

What's the point of subdirectories security/security/ and network/networking/? Should they be renamed, or should the subdirectories be removed altogether (with their contents placed under security/ or network/)?

The networking in network/networking is the directory for Network Concepts, and the security for security/security is the directory for Network Security. If that is not good, do you think change the first directory name into network/concept and the second into security/netoworksecurity works better?

What I meant is that the names looked redundant. Logically, everything under network/ should be about networking, so what would network/networking/ mean? Same thing for security/security/. So yes, I like your new suggestions better, let's go for network/concepts (plural) and maybe security/network/ (Cc @lizrice in case you have better suggestions). Please remember to update the corresponding entries in the CODEOWNERS file accordingly.

@qmonnet Hi, please have a look at the latest commits, I have done with all the requests in your reply, hope this time I got everything right, please have a look and let me know if there are other issues. Thanks for your help!

Nearly there! Can we reduce the list of commits to three different ones? We have:
1. Update Networking, Contributor Guides and Reference sections
2. CODEOWNERS: Update for docs reorganisation (networking)
3. Update Security and the remaining sections
4. CODEOWNERS: Update for docs reorganisation (security)
5. Update sidebar toc and index
6. CODEOWNERS: Update for docs reorganisation (index and misc updates)
7. Rename network/networking and security/security directory with CODEOW…

I would like:
- 1. + 2. + relevant chunks from 7. squashed together
- 3. + 4. + relevant chunks from 7. squashed together
- 5. + 6. squashed together

Nearly there! Can we reduce the list of commits to three different ones? We have:
1. Update Networking, Contributor Guides and Reference sections
2. CODEOWNERS: Update for docs reorganisation (networking)
3. Update Security and the remaining sections
4. CODEOWNERS: Update for docs reorganisation (security)
5. Update sidebar toc and index
6. CODEOWNERS: Update for docs reorganisation (index and misc updates)
7. Rename network/networking and security/security directory with CODEOW…

I would like:
- 1. + 2. + relevant chunks from 7. squashed together
- 3. + 4. + relevant chunks from 7. squashed together
- 5. + 6. squashed together

I have squashed other commits but leaving 7. Rename network/networking and security/security directory because it also contains the rename of index page's directory, and since index has changed its location in ealier commits,  it causes many conflicts when I tried to split and squatsg the changes to ealier commits. So can I leave this rename commit as it is？I think the commit itself is quite clear and will not cause trouble.

but leaving 7. Rename network/networking and security/security directory

I didn't realise the index changes had to be fold as well. Sorry to insist, but I'd really prefer to have these squashed. I could understand for minor changes, but the double-renaming of the files here is really going to make the backports for documentation unnecessarily complex.
I've squashed that commit for you (and rebased) on this branch. I had to merge with commit 3 as well to be able to build the docs after each commit, so there are only two commits remaining. I've also prefixed the commit subjects with docs: and added that it was part of the reorganisation we're doing, in the description. And please, consider setting up your editor to add line breaks at the end of files. Please double-check that it is the same as your PR (rebase locally and git diff <your branch>..<this branch>), and if it works with you, update accordingly?

I didn't realise the index changes had to be fold as well. Sorry to insist, but I'd really prefer to have these squashed. I could understand for minor changes, but the double-renaming of the files here is really going to make the backports for documentation unnecessarily complex.
I've squashed that commit for you (and rebased) on this branch. I had to merge with commit 3 as well to be able to build the docs after each commit, so there are only two commits remaining. I've also prefixed the commit subjects with docs: and added that it was part of the reorganisation we're doing, in the description. And please, consider setting up your editor to add line breaks at the end of files. Please double-check that it is the same as your PR (rebase locally and git diff <your branch>..<this branch>), and if it works with you, update accordingly?

@qmonnet Thank you sooooo much! I have rebased it locally and find out the diffs are all new lines under new files, apart from that, everything is the same.  I have moved the commits here and updated this PR, really thank you for your help!

@yoyo-go Sorry, there's a conflict that needs to be addressed now. Can you please rebase?

@yoyo-go Sorry, there's a conflict that needs to be addressed now. Can you please rebase?

@qmonnet Rebased on upstream master, does that work?

It probably did, but it looks like more conflicts appeared :/

It probably did, but it looks like more conflicts appeared since then :/

I have rebased the PR again, hope this time it will work.

It probably did, but it looks like more conflicts appeared since then :/

@qmonnet and @joestringer , I have rebased this PR again, hope this time the merge will work.


release: firestore-bigquery-changetracker

This PR bumps the changetracker and adds the README CI

just need to test RCs again to be sure


Update/staking footer copy

earlier variant didn't compile. Tested this locally, it's good to go

Reviewed and Approved.


Couldn't create simple authentication with .pem cert and private key

Hey,
I'm trying to connect using a .pem file and private key. I have the following code:
class TCPClient1 {

    let handler = TCPClientHandler1()

    private let group = MultiThreadedEventLoopGroup(numberOfThreads: 1)
    var channel: Channel!

    func connect(host: String, port: Int) {
        do {
            channel = try buildBootstrap().connect(host: host, port: port).wait()
            try channel.closeFuture.wait()
        } catch let error {
            print(error)
        }
    }

    func buildBootstrap() -> ClientBootstrap {

        // client certificate and private key
        let myCertPath = Connector.findFileInProject("public-cert-no-pass", ".pem")!.relativePath
        let myKeyFile = Connector.findFileInProject("private-key-no-pass", ".pem")!.relativePath

        do {

            // client configurations
            var configuration = TLSConfiguration.forClient(certificateChain: try NIOSSLCertificate.fromPEMFile(myCertPath).map { .certificate($0) },
                                                           privateKey: .file(myKeyFile))

            configuration.certificateVerification = .noHostnameVerification // or `.fullVerification`
            configuration.trustRoots = .file(myCertPath) // only necessary if the server uses a self-signed cert or a custom CA that isn't trusted by the system. If your server has a real cert, you can delete this line

            let sslContext = try NIOSSLContext(configuration: configuration)

            return ClientBootstrap(group: group)
                .channelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET), SO_REUSEADDR), value: 1)
                .channelOption(ChannelOptions.socket(IPPROTO_TCP, TCP_NODELAY), value: 1)
                .channelInitializer { channel in
                    var sslHandler: NIOSSLClientHandler?
                    do {
                        sslHandler = try NIOSSLClientHandler(context: sslContext, serverHostname: nil)
                    } catch let error {
                        print(error)
                    }
                    return channel.pipeline.addHandlers([ChannelHandler](arrayLiteral: sslHandler!, self.handler))
                }

        } catch let error {
            print(error)
            fatalError("What!")
        }
    }

    func stop() {
        do {
            try group.syncShutdownGracefully()
        } catch let error {
            print("Error shutting down \(error.localizedDescription)")
            exit(0)
        }
        print("Client connection closed")
    }
}

When I run connect with an ip and port I get (from the handler callbacks):
registered!
inactive channel!
unregister channel!
So, for some reason, the channel is immediately turned to inactive upon connection. Anyone know why?
Thanks!

I recommend adding a ChannelHandler to your pipeline that prints errors:
final class ErrorHandler: ChannelInboundHandler {
    typealias InboundIn = Any

    func errorCaught(context: ChannelHandlerContext, error: Any) {
        print("caught error: \(error)")
    }
}

This will likely show an error being fired into the ChannelPipeline.


pidgin-osd: init at 0.1.0

Motivation for this change
This is a straightforward pidgin plugin; not sure how popular it is, but it's cheap to add.  I hand-rolled this plugin on Gentoo; might as well do it properly on Nix.
Things done

[x] Tested using sandboxing
(nix.useChroot on NixOS,
or option build-use-chroot in nix.conf
on non-NixOS) - I believe I did this correctly; I set this (well, nix.useSandbox) in /etc/nixos/configuration.nix, ran nixos-rebuild switch, and then compiled it.
Built on platform(s)

[x] NixOS
[ ] OS X
[ ] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip" - No dependencies on this new package
[x] Tested execution of all binary files (usually in ./result/bin/) - more or less - I built a pidgin-with-plugins using it, and it works for me.
[x] Fits CONTRIBUTING.md.  To the best of my ability without spending too long agonizing.

A straightforward pidgin plugin; kind of ancient, but still works fine.

I can't make it work. Could you please explain? I've tried with:
{
pidgin = callPackage <nixpkgs/pkgs/applications/networking/instant-messengers/pidgin> {
  openssl = openssl;
  gnutls = null;
  startupnotification = libstartup_notification;
  plugins = [ pidginosd ];
};
}

I think you have to use pidgin-with-plugins, as described by the directions for OTR (at least, that's what I did).  I installed to my user using nix-env, with the following in my .nixpkgs/config.nix:
  packageOverrides = pkgs: with pkgs; rec {
    pidgin-with-plugins = pkgs.pidgin-with-plugins.override {
      plugins = [ pidginotr pidginosd ];
    };
  };

I found the problem with ChangeLog; autoreconf is running automake --add-missing --copy --force-missing, which appears to absolutely require a few of the standard files, like AUTHORS and ChangeLog.  And since this package doesn't have them, it fails.
My quick fix is a preAutoreconf hook to touch ChangeLog; it's kind of ugly, but works (and is still cleaner than manually reconfiguring).


unifont out of date

Ping @konimex

Since the tarball is not generated anymore (doesn't exist in the GNU site for some reason), I'll need to use either the bdf directly, or use the ttf instead.


Update Int document for Int128/UInt128 support.

https://crystal-lang.org/api/1.9.0/Int.html
There are todos for Int128::Max/UInt128::Max need to update too.

Existing PR: #5545


Cleanup unused files, improve build infra, add license to postgres, etc.

Clean up a lot of the unused files in the repository that are no longer needed. Also, improve the build infrastructure such as streamlining the Makefile and Github Actions config. Further, add the Triad license to the included postgres package.
Many of the deleted files are integration tests that have moved to deployment-recipes.
Is it worth keeping things like:

scripts/doVersionRelease.sh
runSnyk.sh
dev/

?

Personally, I think if we don't use it or need it, it's probably best to get rid of it. I didn't see anything in any of the things listed  that should impact BSS working like it is already.

Just pushed some commits that deletes the items in question in the initial comment. If we decide we need these, we can always refer to them or revert them.


Script to scaffold component shell breaks build

What package(s) are you using?
carbon/ibm-cloud-cognitive-experimental
Detailed description
It appears that the new script to scaffold components imports the old prefix but uses the new one. This is causing things to break across different components.

#350 fixed this


Is there a size limitation of mobile map package for opening in App studio.

Created a mobile map package (size 10 MB)--> Opens fine in App Studio.
Created a mobile map package (size 1.2 GB)--> Does not open in App Studio, no errors (Only blank screen).
Is there any other application apart from AppStudio, which i could try and further narrow down the issue?

Hi @AhmedTambe I don't think this question is very well suited for this repo. You will probably have better luck posting this question on GeoNet. That said, I asked around and was told there shouldn't be a limit. You could try to open it based on this sample https://github.com/Esri/arcgis-runtime-samples-java/tree/master/src/main/java/com/esri/samples/map/open_mobile_map_package if you are familiar with the Java SDK. I don't know if that will help you understand the issue with Android Studio though. Unfortunately, if the question isn't related to the Java SDK, I probably won't be able to help you. Best of luck.


[Enhancement] some trivial optimizations

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Some optimzations like:

skip putting empty chunk into buffer
use resize_uninitialized as possible.
fast path on binary to decimal converter
set file size to avoid calling get_size(which is a rpc call)
to remove extra memcpy from cache input stream

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] I have added user document for my new feature or new function

run starrocks_be_unittest

run starrocks_admit_test


Assessing how many  priority browser sets we have to host

It would be useful to know how many browser data sets we have as this will help me to write  justification for @Antonialock  since antonia does all these.
For one, I think most of the 'browser only' datasets I have shuck away  in
"sequence feature or region"
I'd like to  re-triage these, with a few new "subset" labels
i) Browser datasets, to host
ii) Browser datasets, hosted
iii) DNA replication  related
iv) DNA recombination related
(there seem to be many of these of various scales and types, first I would like to collect them all together, then we can   ask the community which ones they would like us to host)
v) mitochondrial sequence related
vi) 3D genome organization  (good to collect these in one place for future)
(this is probably worth mentioning in the grant since it's new and cool)

wrong tracker


Add more detailed docs to coconet_sample.Generator

This is helpful for me as a user of the library. Thanks!

I signed it!

Closing to make a change because I don't know how to edit the PR contents


WIP DO NOT MERGE: Improvement: Add link to OpenShift S2I Build process doc

The Spring Boot CRUD booster mentions S2i process without proposing a link where the end user can discover what is S2I process means

Remark : This remark is general and not specific to this runtime or mission

Closing this issue. Fix implemented and PR is closed. https://github.com/fabric8-launcher/launcher-documentation/pull/916


Typos fix

Coverage remained the same at 100.0% when pulling 27491cfcdc1b872c4b64c25b2128313f754e1a23 on ruisilva450:patch-1 into d1c612136c4b34f5fa7f5ffe644c633deac9cf53 on Narzerus:development.


toybox: unbreak on darwin

Actually didn't need an SDK update but was just missing iconv which Darwin's libc doesn't include apparently.
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Whoops, totally forgot x86_64-darwin uses a different SDK by default. However, calling it with darwin.apple_sdk_11_0.callPackage somehow does not make a difference: It still tries to use /nix/store/dm35436lwr5dyk6izqpjrhv6w5gx9gxx-Libsystem-1238.60.2 which is the same as regular callPackage?
That shouldn't happen. It should be Libsystem 1292.50.1 on the newer SDK.
Opened a bug report above.

Sorry for the confusion but I forgot to push the fix adressing @wegank's comment yesterday.

Sorry for the confusion but I forgot to push the fix adressing @wegank's comment yesterday.

I missed this one as well.


Add Revision Date

It would be useful to have the date of release included. Not necessarily the file mod date (although that could be it), but the date the version went "gold."
I find that I often look at these dates when considering updates and bugs.

Just saw this and just implemented it using the release date. some repos i get email notification on issues and some I don't, im gonna have to manually check my settings.


Support overlays

We want to be able to apply an overlay to an API definition before it's sent to our servers.
At the CLI level, this means adding an overlay method allowing us to get a new version of our definition after applying the overlay:
bump overlay path/to/definition path/to/overlay --destination=path/to/destination

If no destination is provided, we may have a default file name as a destination param (like original-file-name-overlayed.yml).
We can also imagine adding a parameter to the deploy command:
bump deploy path/to/definition --overlay=path/to/overlay

Which will apply the overlay to the definition just before deploying it on Bump.sh.
In a near future (this is not part of this issue), we will also add this as an option to our GitHub action, so the code we write here should be usable outside of the CLI (this can be done later).
Questions:

how do we handle $ref? is there any way to apply the overlay on external dependencies?
do we want to allow applying an overlay on a components file? if yes, are there some consequencies?

First implementation is available here: #553

@paulRbr if I'm correct, this implementation doesn't follow the proposed args/options. I could review it, but I think it would be more efficient if I review something that matches the expectations. If you disagree with the proposed options/args, feel free to share your opinion.
Also, would you have some time to answer the small questions at this end of this issue? Thanks a lot! 🙏

I think it would be more efficient if I review something that matches the expectations.

Sure think, I'll ping you when I have time to update the initial implemntation

how do we handle $ref? is there any way to apply the overlay on external dependencies?

With the current implementation, we used an external lib which doesn't apply overlay on references data. It applies overlays on a target jsonpath of the input json/yaml document.

do we want to allow applying an overlay on a components file? if yes, are there some consequencies?

That's a good question. For now I've limited the possibility to apply an overlay only on a “API document” (a document that looks like an AsyncAPI or OpenAPI). But we can discuss this further. I don't think there's a strong limitation for what you ask as the overlay is basically fetching a JSON path inside a simple JSON/YAML object.

Thanks for the explanation. Let's talk about this next week, when you had some time to work on it!

This is done! :raised_hands:

This is done! :raised_hands:


Show code lenses on Main() even when @EntryPoint() attribute is omitted

With #1584 , the @EntryPoint() attribute is no longer required if the entry callable is named Main . But the code lenses are still looking for the attribute.
With this fix, instead of looking for the @EntryPoint() attribute, we parse the entry expression. This expression would have been generated by a prior HIR pass. https://github.com/microsoft/qsharp/blob/54586a6bb9d91f21cbed1cbc5359a7a8ae43db64/compiler/qsc_passes/src/entry_point.rs#L44

Hmmm, broke the integration test since we now won't return code lenses if there are syntax errors elsewhere in the code! I'm going to have to update the integration test to match the new expectation. Putting back to draft.


feat/s3-for-all-clouds

Is your feature request related to a problem? Please describe.
I can't connect unstructured to s3 services other than those provided by amazon.
The boto library seems to be hardcoded for aws and I couldn't find a way to override that.
We use https://min.io for obect storage on site.
Describe the solution you'd like
Ability to set the URL for where we have object storage.
Possible solution
Use the min.io python library https://min.io/docs/minio/linux/developers/python/minio-py.html
This doesn't tie you into Amazon as many cloud providers provide storage with an s3 compatible protocol.

Thanks @ianpurton ! We'll take a look at this. cc: @ron-unstructured @jackretterer

Has this been resolved?

This was closed by #1606


pasted image's filename

Is there any way to get the pasted image's filename ?
Seems like there must be some way to do this, as I've seen apps like slack show an image's filename when pasted.
I thought it might be in the image's exif data, but that doesn't seem to be the case.

I thought, this is a paste of pictures from the clipboard, which is only a temporary file flow.
Do not have a file name in this form?

I understand what you're saying, but how do other js apps get filenames from pasted images ?

you can get file name like this
            chatTextarea.one('pasteImage', function (ev, data) {
                var fileName = data.name;
            }).on('pasteImageError', function (ev, data) {
                throw "error on pasting image";
            })

I eventually realised that the "other js apps" I was thinking of (like slack.com) don't get a filename when, as others have said, there is no "file" to have a name. Instead, they just make up a name like "Image.jpg"


LWJGL in non-main thread

Hello,
I'm creating an application where lwjgl is started in a non-main thread. It shouldn't be a problem, right?
I use the following code: `
		glfwSetErrorCallback(errorCallback = GLFWErrorCallback.createPrint(System.err));

		if (!glfwInit()) {
			System.err.println("Couldn't initialize glfw context. Using software renderer.");
			enabled = false;
			reportOpenGLStartupError(null, "glfwInit()");
			return;
		}

		// get monitor's size to set max width / height
		GLFWVidMode videoMode = glfwGetVideoMode(glfwGetPrimaryMonitor());
		maxWidth = videoMode.width();
		maxHeight = videoMode.height();

		// set current heights
		int w = (int) (maxWidth * 0.7);
		int h = (int) (maxHeight * 0.7);
		if (w < 900)
			w = 900;
		if (h < 600)
			h = 600;

		Client.clientWidth = width = frameWidth = w;
		Client.clientHeight = height = frameHeight = h;

		// resizable and
		glfwWindowHint(GLFW_RESIZABLE, 1);
		glfwWindowHint(GLFW_VISIBLE, 0);

		window = glfwCreateWindow(width, height, "Emps-World", 0, 0);
		if (window == 0) {
			enabled = false;
			System.err.println("Couldn't initialize glfw window ("+width+"/"+height+"). Using software renderer.");
			return;
		}

		// make current window current contest and create GL capabilities
		glfwMakeContextCurrent(window);
		GL.createCapabilities();
		System.out.println("[GraphicsDisplay]: init(): current thread: "+Thread.currentThread().getName());

`
Now this works on both, my laptop and on my Desktop computer. However, on another Windows 10 setup it crashes with following exception:
java.lang.IllegalStateException: There is no OpenGL context current in the current thread.
Do I have something wrong? Calling glfwMakeContextCurrent(window); should bind the current thread to the current OpenGL Context?
Thanks in advance!
Thomy

Deleting following folder fixed the problem:
C:\Users\User\AppData\Local\Temp\lwjglUser
Looks like I am forced to delete that folder upon every start of our application, since this has already been causing a lot of troubles.

I'm creating an application where lwjgl is started in a non-main thread. It shouldn't be a problem, right?

It is a problem. Most GLFW functions are required to be called from the main thread, which also has to be the first thread on macOS (see -XstartOnFirstThread). The javadoc of each function mentions if it's callable from any thread or only from main. This is neither an LWJGL nor a GLFW limitation; it's the only way to write a usable cross-platform windowing system. Your application may work on Windows, but will certainly fail on macOS. Note that this applies to GLFW functions only; OpenGL contexts can be made current in other threads and those threads can be used for rendering.

Looks like I am forced to delete that folder upon every start of our application, since this has already been causing a lot of troubles and a lot of different errors.
Any ideas what could be causing them?

This is odd, but there is not enough information to provide an answer. Which LWJGL version do you use? Could you please run your application with -Dorg.lwjgl.util.Debug=true and -Dorg.lwjgl.util.DebugLoader=true and attach the output here? (from a run that fails)

Thanks. a lot! :)
I am already using -xStartOnFirstThread on macOS and user have reported that it's working fine, no errors there.
The issue is indeed odd. I will provide an outprint if I find a user having this issue again. It was only happening on a user's computer with Windows 10 and lwjgl-3.1.1. Deleting the lwjgl folder in the user's temp directory completely fixed the problem for the user.
Though, in theory, I should be able to run lwjgl on the non-main thread on Windows if using the code from above. It works fine on my computer, no matter in which thread I run it.

Note that this applies to GLFW functions only; OpenGL contexts can be made current in other threads and those threads can be used for rendering.

But, if you need an GLFW window (even if hidden) to create an OpenGL context, how would one go at having the OpenGL context in a different thread than the main thread? And how to have two parallel OpenGL contexts on different threads?

I think an OpenGL context can only safely be active on one thread at a time. You can set the active context for a thread using glfwMakeContextCurrent, which can be called from any thread.

And how does this work on the larger scale level? In the OS, there must be multiple OpenGL contexts open at the same time without problems, what's the difference there? Where does this limitation come from (Java, GLFW, OS allowing one context per process, ...)?

Of course there can exist multiple OpenGL contexts at the same time. However an OpenGL context is inherently not thread-safe and therefore only one thread can access the same OpenGL context at any given time. It is up to you which thread that is (can be changed).
OpenGL uses thread-local memory to keep track of which context is associated with the current thread to direct OpenGL API calls to the right context (in case OpenGL function addresses are the same for all OpenGL contexts) and to enforce this single-threadedness. This goes in cooperation with the windowing subsystem of the operating system, such as WGL on Windows or GLX on Linux, which provide methods (such as wglMakeCurrent - wrapped via GLFW's glfwMakeCurrent) to switch the current thread of the context associated to a given drawable/window.

What happens on this topic if the machine used has multiple graphics cards?

Not sure if this is the issue, but by default the debug library does not have a thread as the main GLFW thread. You need to set that yourself for it's checks to pass.


NPE building HandshakeCertificates when Proguard is enabled

Hi there,
I'm using the following code with version 3.13.1 to create a HandshakeCertificates that is going to be used to configure MockWebserver to enable https in acceptance tests where our api is mocked this way, running on Android P emulators.
HandshakeCertificates serverCertificates = new HandshakeCertificates.Builder()
		.heldCertificate(certificate)
		.build();

mockWebServer.useHttps(serverCertificates.sslSocketFactory(), false);

as described in this example gist you published.
Everything works fine (configuring the certificate in client side, handshaking of the connection, etc), without Proguard but when we enable it the following error occurs while initialising test code:
java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.security.PublicKey.getAlgorithm()' on a null object reference
        at java.security.KeyStore$PrivateKeyEntry.<init>(KeyStore.java:576)
        at java.security.KeyStore$PrivateKeyEntry.<init>(KeyStore.java:526)
        at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:485)
        at java.security.KeyStore.getEntry(KeyStore.java:1560)
        at com.android.org.conscrypt.KeyManagerImpl.<init>(KeyManagerImpl.java:71)
        at com.android.org.conscrypt.KeyManagerFactoryImpl.engineGetKeyManagers(KeyManagerFactoryImpl.java:114)
        at javax.net.ssl.KeyManagerFactory.getKeyManagers(KeyManagerFactory.java:305)
        at okhttp3.tls.internal.TlsUtil.newKeyManager(SourceFile:101)
        at okhttp3.tls.HandshakeCertificates$Builder.build(SourceFile:164)

so I don't know if there is something I should be excluding explicitly in our config in order to avoid this problem.
The certificate used to configure HandshakeCertificates is provided here:
@Provides
@Singleton
HeldCertificate provideHeldCertificate() {
	return new HeldCertificate.Builder()
			.addSubjectAlternativeName("localhost")
			.build();
}

Yuck. If you can figure out why, please share.

Got it working by adding the following to the test-specific proguard configuration:
-keep class org.bouncycastle.** { *; }

Gotcha. Presumably we want the Proguard project to add that to their config.

Won't fix, not for us.


WIP: Group container

Current coverage is 89.14% (diff: 53.22%)

Merging #48 into master will decrease coverage by 4.90%

@@             master        #48   diff @@
==========================================
  Files            37         46     +9
  Lines           454        516    +62
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            427        460    +33
- Misses           27         56    +29
  Partials          0          0

Powered by Codecov. Last update 09f9d83...0555d56


Buildscript dependencies have bad handling of pom files

Expected Behavior
I have a custom gradle plugin that includes org.cyclonedx:cyclonedx-gradle-plugin as a dependency.
And tailors some of its plugins from java code in my plugin.
My plugin applies the cyclonedx plugin.
Current Behavior
When my plugin is activated, it causes 6.6RC1 to explode: gradle-6.6RC1-bug.txt
Context
Using 6.6RC1 fails. It works with 6.5.1
The problem appears to be just including the cyclonedx dependency in the buildscript classpath.
I do not know what they look like - it may actually be some bad POM. But "it used to work"(tm)
Steps to Reproduce
A simple build file containing just this causes the problem:
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
 	  classpath "org.cyclonedx:cyclonedx-gradle-plugin:1.1.3"
    }
}

Just starting the gradle wrapper causes the failure.
Your Environment
Build scan URL: https://scans.gradle.com/s/ds5dlykbnupua

Thanks for the report @jskovjyskebankdk
Some instrumentation of the build logic classpath fails on a broken jar
https://scans.gradle.com/s/ds5dlykbnupua/failure?expanded-stacktrace=0-1&focused-stack-frame=0-1-1

Fixed via https://github.com/gradle/gradle/pull/13841


AAD login with Bastion

Is AAD Sign-in with Bastion supported yet?
I'm working on a full scale VM deployment for several users and would love to use Bastion for this project.
If it is supported, does Conditional access need to be configured? Outbound access to AAD?
The User I'm testing with has Reader permissions to Bastion, VM, and VM NIC.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ffdc927a-882a-bb53-e6ec-0a18d71c3bec
Version Independent ID: dbdb4fc7-a55e-b025-8ad3-18ffbe21eb66
Content: Troubleshoot Azure Bastion
Content Source: articles/bastion/troubleshoot.md
Service: bastion
GitHub Login: @charwen
Microsoft Alias: charwen

Hi @Tony00000001 - Thank you for sharing your feedback! Since this channel is for driving improvements towards MS Docs, could you provide us with a specific URL of the MS Doc that your feedback is most applicable to? That way, we're able to connect you with the right team that is best suited to address your feedback.

Here's the URL: https://docs.microsoft.com/en-us/azure/bastion/troubleshoot
This is last updated in 2019 and states that Bastion can work with hybrid-joined domains. Is Azure AD only domain now supported for use with Bastion?

@charwen Can you please share details regarding any updates wrt Bastion with AAD? Thank you!

Any updates?
Thanks!

Thank you for you dedication to our documentation.
Unfortunately, we have been unable to review this issue in a timely manner. We sincerely apologize for the delayed response. We are closing this issue. If you feel that the problem persists, please respond to this issue with additional information.
Please continue to provide feedback about the documentation. We appreciate your contributions to our community.
#please-close


What color should I use for the marker exterior icon at the current location?

Please give me your opinion on the color.

white


fix: failing test on windows due to newline format

The test compares js_run_binary stdout which always seems to produce unix line endings, and a write_file which by default uses the platform's line ending format. I'm not sure which one of the two to change.

I don't care that much which we fix... but it does feel more principled that js_run_binary should produce platform line endings.

I don't care that much which we fix... but it does feel more principled that js_run_binary should produce platform line endings.

I agree that would be the more principled fix. I'll do that instead.

Updated to output stdout/err to platforms-specific line ending. I did the transformation after rather than piping output in the node command because it makes it difficult to get the error code of the child process later (I was trying to use PIPESTATUS but couldn't get it working). In any case, I think it's cleaner to do this after.


Replace TRY_MUTEX_LOCK_FOR with equivalent TRY_MUTEX_LOCK

The continuation parameter for TRY_MUTEX_LOCK_FOR is unused making it equivalent to TRY_MUTEX_LOCK.  The unused continuation parameter is confusing when reading the code making you thing the continuation is involved somehow in the operation.
This PR removes TRY_MUTEX_LOCK_FOR and replaces all uses with TRY_MUTEX_LOCK.
TRY_MUTEX_LOCK_SPIN was unused, so I removed that while I was in there.

[approve ci autest]

[ci approve autest]

[approve ci autest]

Removing the 7.1.x Project for now, please make a PR against 7.1.x branch if we need / want this for 7.1.x

Cherry picked to 8.1.0


dashboard: allow remote TLS cert/key copy

When using TLS on the ceph dashboard or grafana services, we can provide
the TLS certificate and key.
Those files should be present on the ansible controller and they will be
copyied to the right node(s).
In some situation, the TLS certificate and key could be already present
on the target node and not on the ansible controller.
For this scenario, we just need to copy the files locally (on each remote
host).
This patch adds the dashboard_tls_external variable (with default to
false) to allow users to achieve this scenario when configuring this
variable to true.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1860815
Signed-off-by: Dimitri Savineau<EMAIL_ADDRESS>

jenkins test centos-non_container-all_daemons

jenkins test centos-container-all_daemons

@fmount The PR assumes that the grafana crt/key are present on all nodes present in the grafana-server group (ie: all controller for tripleO). Is it the case with tls-everywhere ?
If it's not I would need to modify the code to copy the crt/key from the first controller to the others.

@fmount The PR assumes that the grafana crt/key are present on all nodes present in the grafana-server group (ie: all controller for tripleO). Is it the case with tls-everywhere ?

Exactly, certs and key are generated on all the three controllers: each controller has a grafana container running and a mgr backend active:
(undercloud) [stack@undercloud-0 ~]$ for controller in 55 46 8; { ssh -o StrictHostKeyChecking=no<EMAIL_ADDRESS>'ls /etc/pki/tls/{certs,private}/ceph_*'; }
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
/etc/pki/tls/certs/ceph_dashboard.crt
/etc/pki/tls/certs/ceph_grafana.crt
/etc/pki/tls/certs/ceph_rgw.crt
/etc/pki/tls/certs/ceph_rgw.pem
/etc/pki/tls/private/ceph_dashboard.key
/etc/pki/tls/private/ceph_grafana.key
/etc/pki/tls/private/ceph_rgw.key
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
/etc/pki/tls/certs/ceph_dashboard.crt
/etc/pki/tls/certs/ceph_grafana.crt
/etc/pki/tls/certs/ceph_rgw.crt
/etc/pki/tls/certs/ceph_rgw.pem
/etc/pki/tls/private/ceph_dashboard.key
/etc/pki/tls/private/ceph_grafana.key
/etc/pki/tls/private/ceph_rgw.key
Warning: Permanently added '<IP_ADDRESS>' (ECDSA) to the list of known hosts.
/etc/pki/tls/certs/ceph_dashboard.crt
/etc/pki/tls/certs/ceph_grafana.crt
/etc/pki/tls/certs/ceph_rgw.crt
/etc/pki/tls/certs/ceph_rgw.pem
/etc/pki/tls/private/ceph_dashboard.key
/etc/pki/tls/private/ceph_grafana.key
/etc/pki/tls/private/ceph_rgw.key

If it's not I would need to modify the code to copy the crt/key from the first controller to the others.


feat(process): compio-process

This PR adds a new crate, compio-process.

Windows: driver is modified to accept APC routines. This is required for anonymous pipes to child process.
Linux: tries to create a pidfd. If failed, fallback to spawn_blocking.

Please split the PR into two, one for parameterizing SharedFd, one for compio-process


Cleanup of pilot governance frameworks

Review and update corresponding governance section.

see PR 194, removed older EMDT pilots. Left those pages that reference business registry and candy ledger.


Multiple interfaces and routes

I am trying to set up a linux box using vagrant and libvirt. This has become routine and the libvirt plugins work well for me.
Currently I am setting up a linux box with two interfaces.

eth0: vagrant-libvirt management lan
eth1: LAN_A

I want to have the DHCP on eth1 to set the default route, not eth0
Can I somehow specify it in my Vagrantfile?
Perhaps it is related to #451 ?
--
From Vagrantfile

config.vm.define "serverA" do |serverA|
serverA.vm.box = "deb8-base"
serverA.vm.synced_folder "shared", "/vagrant", type: "9p"
serverA.vm.hostname = "serverA"
not setting IP address
specifying that DHCP trumps mgnt as gateway
serverA.vm.network :private_network,
:libvirt__network_name => "LAN_A",
:libvirt__forward_mode => "none"
end

From /etc/network/interfaces

The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
#VAGRANT-BEGIN
The contents below are automatically generated by Vagrant. Do not modify.
auto eth1
iface eth1 inet dhcp
post-up route del default dev $IFACE || true
#VAGRANT-END

And the route

$ ip route show
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/24 dev eth1  proto kernel  scope link  src <IP_ADDRESS>
<IP_ADDRESS>/24 dev eth0  proto kernel  scope link  src <IP_ADDRESS>

My solution is to use
:auto_config => false
something like this

serverA.vm.network :private_network,
:libvirt__network_name => "LAN_A",
:libvirt__forward_mode => "none",
:auto_config=> false

and have the provisioning handle /etc/network/interfaces

That would be a valid way, and I'm not sure if there's anything better. It's also not related to #451 directly. Since we depend on DHCP working on eth0, I don't think there's an easy solution to this, but some other ideas are:

Change the dhcp client config on the guest to not accept a default gateway from its eth0 lease
Change the management network mode to something other than nat

That last option turns out to be undocumented; I will add some documentation for it.


"Region is missing" when trying to call tRPC API hosted in Next.js from client side?

So, I can do a query like this const notes = api.note.byUser(); from a Next.js server component, but I get the Region is missing error when doing const { data, isPending } = api.note.byUser.useQuery(); in a Next.js client component or my Expo app. Not sure.
I have set:

region = us-east-1 in ~/.aws/credentials
home: "aws",    providers: {      aws: {        region: "us-east-1",      },    }, in sst.config.ts
AWS_REGION="us-east-1" in .env.local

Repo: https://github.com/trevorpfiz/scribeHC

Similar #494 #603

accidentally left export const runtime = "edge"; in my tRPC route. oops.

accidentally left export const runtime = "edge"; in my tRPC route. oops.


passing Data

how can i pass data from one step to another. can i use props.getStore(). to store and change the values.

@arifsohail - It's up to you how you want to maintain state. There are multiple options like Redux, Flux etc or you can have your own custom store approach like what've shown in the example. i.e
In my main app file, I create a simple object store:
https://github.com/newbreedofgeek/react-stepzilla/blob/master/src/examples/Example.js#L17-L20
I then have getStore and updateStore methods:
https://github.com/newbreedofgeek/react-stepzilla/blob/master/src/examples/Example.js#L28-L37
I then pass these 2 methods to all the individual steps:
https://github.com/newbreedofgeek/react-stepzilla/blob/master/src/examples/Example.js#L42
Now each step has access to props.getStore() and props.updateStore() to get and manipulate state.
You can see this in the example code by looking at the various steps and running the sample.
Hope that helps.

thanks a lot. i guess redux will work nicely