diff --git a/.gitignore b/.gitignore index 3c10540..b54992c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,9 +7,9 @@ node_modules package-lock.json package.json master_ufo -instance_ufo -private_notes -*.backup +instance_ufos +.ninja_log +build.ninja # OS generated files # ###################### @@ -21,7 +21,23 @@ private_notes ehthumbs.db Thumbs.db -sources/*.ttf -sources/*.otf +# Autosaved by application when editing +###################### +*(تم الحفظ تلقائيًا).* +*(automaticky uloženo).* +*(Automatisch gesichert).* +*(Autosaved).* +*(guardado automáticamente).* +*(enregistré automatiquement).* +*(salvato automaticamente).* +*(自動保存).* +*(자동 저장됨).* +*(Salvo Automaticamente).* +*(Автосохранение).* +*(Otomatik Kaydedildi).* +*(自动存储).* +*(已自動儲存).* -* (Autosaved).glyphs +# Custom +sources/KodeMono.backup +private_notes diff --git a/.templaterc.json b/.templaterc.json new file mode 100644 index 0000000..176d7b2 --- /dev/null +++ b/.templaterc.json @@ -0,0 +1,8 @@ +{ + "files": [ + ".github/**/*", + "Makefile", + "scripts/**/*", + "requirements.txt" + ] +} \ No newline at end of file diff --git a/DESCRIPTION.en_us.html b/DESCRIPTION.en_us.html deleted file mode 100644 index 00248b2..0000000 --- a/DESCRIPTION.en_us.html +++ /dev/null @@ -1,10 +0,0 @@ -

- A custom-designed typeface explicitly created for the developer community. -

-

- This typeface is designed to enhance the user experience and reflect our principles of functionality and - timelessness. -

-

- To contribute, see github.com/isaozler/kode-mono. -

\ No newline at end of file diff --git a/Makefile b/Makefile index 24665ef..91972fe 100644 --- a/Makefile +++ b/Makefile @@ -67,4 +67,4 @@ update: venv venv-test venv-test/bin/pip-sync requirements-test.txt git commit -m "Update requirements" requirements.txt requirements-test.txt - git push \ No newline at end of file + git push diff --git a/documentation/ARTICLE.en_us.html b/documentation/ARTICLE.en_us.html new file mode 100644 index 0000000..495dc61 --- /dev/null +++ b/documentation/ARTICLE.en_us.html @@ -0,0 +1,12 @@ +Kode Mono +

+ Kode Mono is a variable monospaced typeface designed specifically for the developer + community. Its key feature is clarity and functionality, making it ideal for coding environments where legibility + is crucial. The font includes ligatures, which are combinations of multiple characters into a single glyph—helpful + in improving the readability of common programming symbols in languages like JavaScript, Python, Haskell, and Rust. +

+

+ To contribute, see github.com/isaozler/kode-mono. +

+Kode Mono Outline +Kode Mono Grid \ No newline at end of file diff --git a/documentation/DESCRIPTION.en_us.html b/documentation/DESCRIPTION.en_us.html new file mode 100644 index 0000000..fb63e14 --- /dev/null +++ b/documentation/DESCRIPTION.en_us.html @@ -0,0 +1,10 @@ +

+ Kode Mono is a variable monospaced typeface designed specifically for the + developer + community. Its key feature is clarity and functionality, making it ideal for coding environments where legibility + is crucial. The font includes ligatures, which are combinations of multiple characters into a single glyph—helpful + in improving the readability of common programming symbols in languages like JavaScript, Python, Haskell, and Rust. +

+

+ To contribute, see github.com/isaozler/kode-mono. +

\ No newline at end of file diff --git a/documentation/image1.png b/documentation/image1.png index 5884bf7..c0551b5 100644 Binary files a/documentation/image1.png and b/documentation/image1.png differ diff --git a/documentation/image1.py b/documentation/image1.py index 8fc9f98..1dfe8d5 100644 --- a/documentation/image1.py +++ b/documentation/image1.py @@ -15,16 +15,18 @@ import argparse # Constants, these are the main "settings" for the image -WIDTH, HEIGHT, MARGIN, FRAMES = 2048, 2048, 128, 1 +WIDTH, HEIGHT, MARGIN, FRAMES = 2048, 1024, 128, 1 FONT_PATH = "fonts/ttf/KodeMono-Regular.ttf" FONT_LICENSE = "OFL v1.1" AUXILIARY_FONT = "Helvetica" AUXILIARY_FONT_SIZE = 48 -BIG_TEXT = "Aa" -BIG_TEXT_FONT_SIZE = 1024 -BIG_TEXT_SIDE_MARGIN = MARGIN * 3.1 -BIG_TEXT_BOTTOM_MARGIN = MARGIN * 5.5 -GRID_VIEW = False # Change this to "True" for a grid overlay + +BIG_TEXT = "AaBb" +BIG_TEXT_FONT_SIZE = 730 +BIG_TEXT_SIDE_MARGIN = MARGIN * 1 +BIG_TEXT_BOTTOM_MARGIN = MARGIN * 2 + +GRID_VIEW = False # Toggle this for a grid overlay # Handel the "--output" flag # For example: $ python3 documentation/image1.py --output documentation/image1.png @@ -98,9 +100,9 @@ def draw_main_text(): # Divider lines def draw_divider_lines(): stroke(1) - strokeWidth(4) + strokeWidth(5) lineCap("round") - line((MARGIN, HEIGHT - MARGIN), (WIDTH - MARGIN, HEIGHT - MARGIN)) + line((MARGIN, HEIGHT - (MARGIN * 1.5)), (WIDTH - MARGIN, HEIGHT - (MARGIN * 1.5))) line((MARGIN, MARGIN + (MARGIN / 2)), (WIDTH - MARGIN, MARGIN + (MARGIN / 2))) stroke(None) @@ -110,8 +112,8 @@ def draw_auxiliary_text(): # Setup font(AUXILIARY_FONT) fontSize(AUXILIARY_FONT_SIZE) - POS_TOP_LEFT = (MARGIN, HEIGHT - MARGIN * 1.5) - POS_TOP_RIGHT = (WIDTH - MARGIN, HEIGHT - MARGIN * 1.5) + POS_TOP_LEFT = (MARGIN, HEIGHT - MARGIN * 1.25) + POS_TOP_RIGHT = (WIDTH - MARGIN, HEIGHT - MARGIN * 1.25) POS_BOTTOM_LEFT = (MARGIN, MARGIN) POS_BOTTOM_RIGHT = (WIDTH - MARGIN * 0.95, MARGIN) URL_AND_HASH = MY_URL + "at commit " + MY_HASH diff --git a/documentation/image2.png b/documentation/image2.png new file mode 100644 index 0000000..103860c Binary files /dev/null and b/documentation/image2.png differ diff --git a/documentation/image2.py b/documentation/image2.py new file mode 100644 index 0000000..b5c142c --- /dev/null +++ b/documentation/image2.py @@ -0,0 +1,145 @@ +# This script is meant to be run from the root level +# of your font's git repository. For example, from a Unix terminal: +# $ git clone my-font +# $ cd my-font +# $ python3 documentation/image1.py --output documentation/image1.png + +# Import moduels from external python packages: https://pypi.org/ +from drawbot_skia.drawbot import * +from fontTools.ttLib import TTFont +from fontTools.misc.fixedTools import floatToFixedToStr + +# Import moduels from the Python Standard Library: https://docs.python.org/3/library/ +import subprocess +import sys +import argparse + +# Constants, these are the main "settings" for the image +WIDTH, HEIGHT, MARGIN, FRAMES = 2048, 1024, 128, 1 +FONT_PATH = "fonts/ttf/KodeMono-Regular.ttf" +FONT_LICENSE = "OFL v1.1" +AUXILIARY_FONT = "Helvetica" +AUXILIARY_FONT_SIZE = 48 + +LINE_ONE = "ABCDEFGHIJKLMNOPQ" +LINE_TWO = "RSTUVWXYZ123456789" +LINE_THREE = "abcdefghijklmnopqrstu" +LINE_FOUR = "vwxyz,.;:!@#$%^&*(){}[]" +BIG_TEXT_FONT_SIZE = 160 +BIG_TEXT_SIDE_MARGIN = MARGIN * 1 +BIG_TEXT_BOTTOM_MARGIN = MARGIN * 5.45 + +GRID_VIEW = False # Toggle this for a grid overlay + +# Handel the "--output" flag +# For example: $ python3 documentation/image1.py --output documentation/image1.png +parser = argparse.ArgumentParser() +parser.add_argument("--output", metavar="PNG", help="where to write the PNG file") +args = parser.parse_args() + +# Load the font with the parts of fonttools that are imported with the line: +# from fontTools.ttLib import TTFont +# Docs Link: https://fonttools.readthedocs.io/en/latest/ttLib/ttFont.html +ttFont = TTFont(FONT_PATH) + +# Constants that are worked out dynamically +MY_URL = subprocess.check_output("git remote get-url origin", shell=True).decode() +MY_HASH = subprocess.check_output("git rev-parse --short HEAD", shell=True).decode() +FONT_NAME = ttFont["name"].getDebugName(4) +FONT_VERSION = "v%s" % floatToFixedToStr(ttFont["head"].fontRevision, 16) + + +# Draws a grid +def grid(): + stroke(1, 0, 0, 0.75) + strokeWidth(2) + STEP_X, STEP_Y = 0, 0 + INCREMENT_X, INCREMENT_Y = MARGIN / 2, MARGIN / 2 + rect(MARGIN, MARGIN, WIDTH - (MARGIN * 2), HEIGHT - (MARGIN * 2)) + for x in range(29): + polygon((MARGIN + STEP_X, MARGIN), (MARGIN + STEP_X, HEIGHT - MARGIN)) + STEP_X += INCREMENT_X + for y in range(29): + polygon((MARGIN, MARGIN + STEP_Y), (WIDTH - MARGIN, MARGIN + STEP_Y)) + STEP_Y += INCREMENT_Y + polygon((WIDTH / 2, 0), (WIDTH / 2, HEIGHT)) + polygon((0, HEIGHT / 2), (WIDTH, HEIGHT / 2)) + + +# Remap input range to VF axis range +# This is useful for animation +# (E.g. sinewave(-1,1) to wght(100,900)) +def remap(value, inputMin, inputMax, outputMin, outputMax): + inputSpan = inputMax - inputMin # FIND INPUT RANGE SPAN + outputSpan = outputMax - outputMin # FIND OUTPUT RANGE SPAN + valueScaled = float(value - inputMin) / float(inputSpan) + return outputMin + (valueScaled * outputSpan) + + +# Draw the page/frame and a grid if "GRID_VIEW" is set to "True" +def draw_background(): + newPage(WIDTH, HEIGHT) + fill(0) + rect(-2, -2, WIDTH + 2, HEIGHT + 2) + if GRID_VIEW: + grid() + else: + pass + + +# Draw main text +def draw_main_text(): + fill(1) + stroke(None) + font(FONT_PATH) + fontSize(BIG_TEXT_FONT_SIZE) + # Adjust this line to center main text manually. + # TODO: This should be done automatically when drawbot-skia + # has support for textBox() and FormattedString + LEADING = 1.2 + text(LINE_ONE, (BIG_TEXT_SIDE_MARGIN, BIG_TEXT_BOTTOM_MARGIN)) + text(LINE_TWO, (BIG_TEXT_SIDE_MARGIN, BIG_TEXT_BOTTOM_MARGIN - (MARGIN * LEADING))) + text(LINE_THREE, (BIG_TEXT_SIDE_MARGIN, BIG_TEXT_BOTTOM_MARGIN - (MARGIN * (LEADING * 2)))) + text(LINE_FOUR, (BIG_TEXT_SIDE_MARGIN, BIG_TEXT_BOTTOM_MARGIN - (MARGIN * (LEADING * 3)))) + + +# Divider lines +def draw_divider_lines(): + stroke(1) + strokeWidth(5) + lineCap("round") + line((MARGIN, HEIGHT - (MARGIN * 1.5)), (WIDTH - MARGIN, HEIGHT - (MARGIN * 1.5))) + line((MARGIN, MARGIN + (MARGIN / 2)), (WIDTH - MARGIN, MARGIN + (MARGIN / 2))) + stroke(None) + + +# Draw text describing the font and it's git status & repo URL +def draw_auxiliary_text(): + # Setup + font(AUXILIARY_FONT) + fontSize(AUXILIARY_FONT_SIZE) + POS_TOP_LEFT = (MARGIN, HEIGHT - MARGIN * 1.25) + POS_TOP_RIGHT = (WIDTH - MARGIN, HEIGHT - MARGIN * 1.25) + POS_BOTTOM_LEFT = (MARGIN, MARGIN) + POS_BOTTOM_RIGHT = (WIDTH - MARGIN * 0.95, MARGIN) + #URL_AND_HASH = "github.com/googlefonts/googlefonts-project-template " + "at commit " + MY_HASH + URL_AND_HASH = MY_URL + "at commit " + MY_HASH + URL_AND_HASH = URL_AND_HASH.replace("\n", " ") + # Draw Text + #text("Your Font Regular", POS_TOP_LEFT, align="left") + text(FONT_NAME, POS_TOP_LEFT, align="left") + text(FONT_VERSION, POS_TOP_RIGHT, align="right") + text(URL_AND_HASH, POS_BOTTOM_LEFT, align="left") + text(FONT_LICENSE, POS_BOTTOM_RIGHT, align="right") + + +# Build and save the image +if __name__ == "__main__": + draw_background() + draw_main_text() + draw_divider_lines() + draw_auxiliary_text() + # Save output, using the "--output" flag location + saveImage(args.output) + # Print done in the terminal + print("DrawBot: Done") diff --git a/documentation/images-license.txt b/documentation/images-license.txt new file mode 100644 index 0000000..db75db6 --- /dev/null +++ b/documentation/images-license.txt @@ -0,0 +1 @@ +The images in this repository are licensed under the CC https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/documentation/images/cover.jpg b/documentation/images/cover.jpg new file mode 100644 index 0000000..e35f257 Binary files /dev/null and b/documentation/images/cover.jpg differ diff --git a/documentation/images/grid.jpg b/documentation/images/grid.jpg new file mode 100644 index 0000000..99543f1 Binary files /dev/null and b/documentation/images/grid.jpg differ diff --git a/documentation/images/outlines.jpg b/documentation/images/outlines.jpg new file mode 100644 index 0000000..4ede638 Binary files /dev/null and b/documentation/images/outlines.jpg differ diff --git a/fonts/ttf/KodeMono-Bold.ttf b/fonts/ttf/KodeMono-Bold.ttf index 74d7569..14e3cbe 100644 Binary files a/fonts/ttf/KodeMono-Bold.ttf and b/fonts/ttf/KodeMono-Bold.ttf differ diff --git a/fonts/ttf/KodeMono-Medium.ttf b/fonts/ttf/KodeMono-Medium.ttf index cfc63f4..5371d9a 100644 Binary files a/fonts/ttf/KodeMono-Medium.ttf and b/fonts/ttf/KodeMono-Medium.ttf differ diff --git a/fonts/ttf/KodeMono-Regular.ttf b/fonts/ttf/KodeMono-Regular.ttf index 79d74dd..6676d71 100644 Binary files a/fonts/ttf/KodeMono-Regular.ttf and b/fonts/ttf/KodeMono-Regular.ttf differ diff --git a/fonts/ttf/KodeMono-SemiBold.ttf b/fonts/ttf/KodeMono-SemiBold.ttf index 7133c1f..05a2c42 100644 Binary files a/fonts/ttf/KodeMono-SemiBold.ttf and b/fonts/ttf/KodeMono-SemiBold.ttf differ diff --git a/fonts/variable/KodeMono[wght].ttf b/fonts/variable/KodeMono[wght].ttf index dd9c42e..ee930ff 100644 Binary files a/fonts/variable/KodeMono[wght].ttf and b/fonts/variable/KodeMono[wght].ttf differ diff --git a/fonts/webfonts/KodeMono-Bold.woff2 b/fonts/webfonts/KodeMono-Bold.woff2 index 0b18e9f..6168988 100644 Binary files a/fonts/webfonts/KodeMono-Bold.woff2 and b/fonts/webfonts/KodeMono-Bold.woff2 differ diff --git a/fonts/webfonts/KodeMono-Medium.woff2 b/fonts/webfonts/KodeMono-Medium.woff2 index 6cf086f..71bea6b 100644 Binary files a/fonts/webfonts/KodeMono-Medium.woff2 and b/fonts/webfonts/KodeMono-Medium.woff2 differ diff --git a/fonts/webfonts/KodeMono-Regular.woff2 b/fonts/webfonts/KodeMono-Regular.woff2 index acb4dee..cf94ffb 100644 Binary files a/fonts/webfonts/KodeMono-Regular.woff2 and b/fonts/webfonts/KodeMono-Regular.woff2 differ diff --git a/fonts/webfonts/KodeMono-SemiBold.woff2 b/fonts/webfonts/KodeMono-SemiBold.woff2 index 8c98f55..e50255e 100644 Binary files a/fonts/webfonts/KodeMono-SemiBold.woff2 and b/fonts/webfonts/KodeMono-SemiBold.woff2 differ diff --git a/fonts/webfonts/KodeMono[wght].woff2 b/fonts/webfonts/KodeMono[wght].woff2 index 602fd2a..4984c27 100644 Binary files a/fonts/webfonts/KodeMono[wght].woff2 and b/fonts/webfonts/KodeMono[wght].woff2 differ diff --git a/out/fontbakery/fontbakery-report.html b/out/fontbakery/fontbakery-report.html index 093f2fd..e726d1f 100644 --- a/out/fontbakery/fontbakery-report.html +++ b/out/fontbakery/fontbakery-report.html @@ -3126,36 +3126,36 @@

  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • -
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • -
  • U+0305 COMBINING OVERLINE: try adding one of: math, elbasan, glagolitic, coptic, gothic
  • -
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • -
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, old-permic, canadian-aboriginal, duployan, malayalam, coptic, tifinagh, hebrew, todhri, tai-le, syriac
  • +
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, tifinagh, coptic, math
  • +
  • U+0305 COMBINING OVERLINE: try adding one of: math, glagolitic, elbasan, gothic, coptic
  • +
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • +
  • U+0307 COMBINING DOT ABOVE: try adding one of: canadian-aboriginal, hebrew, math, tai-le, syriac, malayalam, todhri, old-permic, tifinagh, coptic, duployan
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • -
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • +
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030D COMBINING VERTICAL LINE ABOVE: try adding sunuwar
  • U+030E COMBINING DOUBLE VERTICAL LINE ABOVE: try adding ethiopic
  • -
  • U+0310 COMBINING CANDRABINDU: try adding one of: math, sunuwar
  • +
  • U+0310 COMBINING CANDRABINDU: try adding one of: sunuwar, math
  • U+0312 COMBINING TURNED COMMA ABOVE: try adding math
  • U+0313 COMBINING COMMA ABOVE: try adding one of: todhri, old-permic
  • U+0314 COMBINING REVERSED COMMA ABOVE: not included in any glyphset definition
  • U+0316 COMBINING GRAVE ACCENT BELOW: not included in any glyphset definition
  • U+0317 COMBINING ACUTE ACCENT BELOW: not included in any glyphset definition
  • -
  • U+0324 COMBINING DIAERESIS BELOW: try adding one of: syriac, duployan, cherokee
  • +
  • U+0324 COMBINING DIAERESIS BELOW: try adding one of: cherokee, syriac, duployan
  • U+0325 COMBINING RING BELOW: try adding syriac
  • U+0326 COMBINING COMMA BELOW: try adding math
  • U+0327 COMBINING CEDILLA: try adding math
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • -
  • U+032D COMBINING CIRCUMFLEX ACCENT BELOW: try adding one of: syriac, sunuwar
  • +
  • U+032D COMBINING CIRCUMFLEX ACCENT BELOW: try adding one of: sunuwar, syriac
  • U+032E COMBINING BREVE BELOW: try adding syriac
  • -
  • U+0331 COMBINING MACRON BELOW: try adding one of: sunuwar, tifinagh, thai, caucasian-albanian, syriac, gothic, cherokee
  • +
  • U+0331 COMBINING MACRON BELOW: try adding one of: cherokee, syriac, thai, sunuwar, gothic, tifinagh, caucasian-albanian
  • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
  • U+0336 COMBINING LONG STROKE OVERLAY: not included in any glyphset definition
  • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
  • U+0338 COMBINING LONG SOLIDUS OVERLAY: try adding math
  • -
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, math, elbasan
  • -
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • -
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, math, greek
  • +
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: elbasan, greek, math
  • +
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • +
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, greek, math
  • U+2017 DOUBLE LOW LINE: try adding math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • @@ -3184,14 +3184,14 @@

  • U+215D VULGAR FRACTION FIVE EIGHTHS: try adding symbols
  • U+215E VULGAR FRACTION SEVEN EIGHTHS: try adding symbols
  • U+215F FRACTION NUMERATOR ONE: try adding symbols
  • -
  • U+2190 LEFTWARDS ARROW: try adding one of: symbols, math
  • -
  • U+2192 RIGHTWARDS ARROW: try adding one of: symbols, math
  • -
  • U+2194 LEFT RIGHT ARROW: try adding one of: symbols, math
  • -
  • U+2195 UP DOWN ARROW: try adding one of: symbols, math
  • -
  • U+2196 NORTH WEST ARROW: try adding one of: symbols, math
  • -
  • U+2197 NORTH EAST ARROW: try adding one of: symbols, math
  • -
  • U+2198 SOUTH EAST ARROW: try adding one of: symbols, math
  • -
  • U+2199 SOUTH WEST ARROW: try adding one of: symbols, math
  • +
  • U+2190 LEFTWARDS ARROW: try adding one of: math, symbols
  • +
  • U+2192 RIGHTWARDS ARROW: try adding one of: math, symbols
  • +
  • U+2194 LEFT RIGHT ARROW: try adding one of: math, symbols
  • +
  • U+2195 UP DOWN ARROW: try adding one of: math, symbols
  • +
  • U+2196 NORTH WEST ARROW: try adding one of: math, symbols
  • +
  • U+2197 NORTH EAST ARROW: try adding one of: math, symbols
  • +
  • U+2198 SOUTH EAST ARROW: try adding one of: math, symbols
  • +
  • U+2199 SOUTH WEST ARROW: try adding one of: math, symbols
  • U+2200 FOR ALL: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+220F N-ARY PRODUCT: try adding math
  • @@ -3215,8 +3215,8 @@

  • U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL: try adding symbols2
  • U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL: try adding symbols2
  • U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL: try adding symbols2
  • -
  • U+25CA LOZENGE: try adding one of: symbols, math
  • -
  • U+25CC DOTTED CIRCLE: try adding one of: buginese, batak, phags-pa, marchen, canadian-aboriginal, lepcha, tai-le, bhaiksuki, bassa-vah, bengali, kaithi, oriya, tamil, sinhala, warang-citi, sundanese, thai, miao, kannada, psalter-pahlavi, mende-kikakui, tai-viet, buhid, meetei-mayek, duployan, rejang, ahom, tirhuta, saurashtra, grantha, wancho, armenian, math, kayah-li, gunjala-gondi, hanifi-rohingya, gurmukhi, mongolian, soyombo, mandaic, sharada, new-tai-lue, thaana, old-permic, nko, cham, tai-tham, modi, syloti-nagri, gujarati, caucasian-albanian, telugu, khudawadi, mahajani, balinese, khmer, khojki, masaram-gondi, elbasan, symbols, hebrew, tibetan, adlam, devanagari, limbu, malayalam, chakma, takri, javanese, myanmar, newa, syriac, sogdian, kharoshthi, brahmi, hanunoo, tagalog, manichaean, tifinagh, pahawh-hmong, siddham, tagbanwa, dogra, osage, zanabazar-square, lao, yi, coptic, music
  • +
  • U+25CA LOZENGE: try adding one of: math, symbols
  • +
  • U+25CC DOTTED CIRCLE: try adding one of: psalter-pahlavi, music, thaana, tamil, caucasian-albanian, oriya, tai-tham, tagalog, symbols, elbasan, bassa-vah, armenian, kharoshthi, hanifi-rohingya, nko, hebrew, balinese, marchen, grantha, soyombo, zanabazar-square, kayah-li, masaram-gondi, duployan, math, tai-viet, malayalam, telugu, tagbanwa, wancho, mongolian, rejang, mandaic, tibetan, sundanese, yi, mende-kikakui, adlam, meetei-mayek, lao, tai-le, mahajani, takri, bhaiksuki, myanmar, old-permic, tifinagh, gujarati, kaithi, syriac, new-tai-lue, buhid, cham, warang-citi, chakma, phags-pa, siddham, sogdian, devanagari, bengali, osage, miao, canadian-aboriginal, thai, limbu, lepcha, kannada, gurmukhi, brahmi, manichaean, hanunoo, ahom, khojki, tirhuta, gunjala-gondi, batak, buginese, dogra, pahawh-hmong, khmer, khudawadi, sharada, sinhala, javanese, coptic, newa, saurashtra, modi, syloti-nagri
  • U+EE00 : not included in any glyphset definition
  • U+EE01 : not included in any glyphset definition
  • U+EE02 : not included in any glyphset definition
  • diff --git a/out/fontbakery/fontbakery-report.md b/out/fontbakery/fontbakery-report.md index 8fe823a..bab7ce6 100644 --- a/out/fontbakery/fontbakery-report.md +++ b/out/fontbakery/fontbakery-report.md @@ -90,36 +90,36 @@ definitions.

  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • -
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • -
  • U+0305 COMBINING OVERLINE: try adding one of: math, elbasan, glagolitic, coptic, gothic
  • -
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • -
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, old-permic, canadian-aboriginal, duployan, malayalam, coptic, tifinagh, hebrew, todhri, tai-le, syriac
  • +
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, tifinagh, coptic, math
  • +
  • U+0305 COMBINING OVERLINE: try adding one of: math, glagolitic, elbasan, gothic, coptic
  • +
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • +
  • U+0307 COMBINING DOT ABOVE: try adding one of: canadian-aboriginal, hebrew, math, tai-le, syriac, malayalam, todhri, old-permic, tifinagh, coptic, duployan
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • -
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • +
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030D COMBINING VERTICAL LINE ABOVE: try adding sunuwar
  • U+030E COMBINING DOUBLE VERTICAL LINE ABOVE: try adding ethiopic
  • -
  • U+0310 COMBINING CANDRABINDU: try adding one of: math, sunuwar
  • +
  • U+0310 COMBINING CANDRABINDU: try adding one of: sunuwar, math
  • U+0312 COMBINING TURNED COMMA ABOVE: try adding math
  • U+0313 COMBINING COMMA ABOVE: try adding one of: todhri, old-permic
  • U+0314 COMBINING REVERSED COMMA ABOVE: not included in any glyphset definition
  • U+0316 COMBINING GRAVE ACCENT BELOW: not included in any glyphset definition
  • U+0317 COMBINING ACUTE ACCENT BELOW: not included in any glyphset definition
  • -
  • U+0324 COMBINING DIAERESIS BELOW: try adding one of: syriac, duployan, cherokee
  • +
  • U+0324 COMBINING DIAERESIS BELOW: try adding one of: cherokee, syriac, duployan
  • U+0325 COMBINING RING BELOW: try adding syriac
  • U+0326 COMBINING COMMA BELOW: try adding math
  • U+0327 COMBINING CEDILLA: try adding math
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • -
  • U+032D COMBINING CIRCUMFLEX ACCENT BELOW: try adding one of: syriac, sunuwar
  • +
  • U+032D COMBINING CIRCUMFLEX ACCENT BELOW: try adding one of: sunuwar, syriac
  • U+032E COMBINING BREVE BELOW: try adding syriac
  • -
  • U+0331 COMBINING MACRON BELOW: try adding one of: sunuwar, tifinagh, thai, caucasian-albanian, syriac, gothic, cherokee
  • +
  • U+0331 COMBINING MACRON BELOW: try adding one of: cherokee, syriac, thai, sunuwar, gothic, tifinagh, caucasian-albanian
  • U+0335 COMBINING SHORT STROKE OVERLAY: not included in any glyphset definition
  • U+0336 COMBINING LONG STROKE OVERLAY: not included in any glyphset definition
  • U+0337 COMBINING SHORT SOLIDUS OVERLAY: not included in any glyphset definition
  • U+0338 COMBINING LONG SOLIDUS OVERLAY: try adding math
  • -
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, math, elbasan
  • -
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • -
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, math, greek
  • +
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: elbasan, greek, math
  • +
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • +
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, greek, math
  • U+2017 DOUBLE LOW LINE: try adding math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • @@ -148,14 +148,14 @@ definitions.

  • U+215D VULGAR FRACTION FIVE EIGHTHS: try adding symbols
  • U+215E VULGAR FRACTION SEVEN EIGHTHS: try adding symbols
  • U+215F FRACTION NUMERATOR ONE: try adding symbols
  • -
  • U+2190 LEFTWARDS ARROW: try adding one of: symbols, math
  • -
  • U+2192 RIGHTWARDS ARROW: try adding one of: symbols, math
  • -
  • U+2194 LEFT RIGHT ARROW: try adding one of: symbols, math
  • -
  • U+2195 UP DOWN ARROW: try adding one of: symbols, math
  • -
  • U+2196 NORTH WEST ARROW: try adding one of: symbols, math
  • -
  • U+2197 NORTH EAST ARROW: try adding one of: symbols, math
  • -
  • U+2198 SOUTH EAST ARROW: try adding one of: symbols, math
  • -
  • U+2199 SOUTH WEST ARROW: try adding one of: symbols, math
  • +
  • U+2190 LEFTWARDS ARROW: try adding one of: math, symbols
  • +
  • U+2192 RIGHTWARDS ARROW: try adding one of: math, symbols
  • +
  • U+2194 LEFT RIGHT ARROW: try adding one of: math, symbols
  • +
  • U+2195 UP DOWN ARROW: try adding one of: math, symbols
  • +
  • U+2196 NORTH WEST ARROW: try adding one of: math, symbols
  • +
  • U+2197 NORTH EAST ARROW: try adding one of: math, symbols
  • +
  • U+2198 SOUTH EAST ARROW: try adding one of: math, symbols
  • +
  • U+2199 SOUTH WEST ARROW: try adding one of: math, symbols
  • U+2200 FOR ALL: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+220F N-ARY PRODUCT: try adding math
  • @@ -179,8 +179,8 @@ definitions.

  • U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL: try adding symbols2
  • U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL: try adding symbols2
  • U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL: try adding symbols2
  • -
  • U+25CA LOZENGE: try adding one of: symbols, math
  • -
  • U+25CC DOTTED CIRCLE: try adding one of: buginese, batak, phags-pa, marchen, canadian-aboriginal, lepcha, tai-le, bhaiksuki, bassa-vah, bengali, kaithi, oriya, tamil, sinhala, warang-citi, sundanese, thai, miao, kannada, psalter-pahlavi, mende-kikakui, tai-viet, buhid, meetei-mayek, duployan, rejang, ahom, tirhuta, saurashtra, grantha, wancho, armenian, math, kayah-li, gunjala-gondi, hanifi-rohingya, gurmukhi, mongolian, soyombo, mandaic, sharada, new-tai-lue, thaana, old-permic, nko, cham, tai-tham, modi, syloti-nagri, gujarati, caucasian-albanian, telugu, khudawadi, mahajani, balinese, khmer, khojki, masaram-gondi, elbasan, symbols, hebrew, tibetan, adlam, devanagari, limbu, malayalam, chakma, takri, javanese, myanmar, newa, syriac, sogdian, kharoshthi, brahmi, hanunoo, tagalog, manichaean, tifinagh, pahawh-hmong, siddham, tagbanwa, dogra, osage, zanabazar-square, lao, yi, coptic, music
  • +
  • U+25CA LOZENGE: try adding one of: math, symbols
  • +
  • U+25CC DOTTED CIRCLE: try adding one of: psalter-pahlavi, music, thaana, tamil, caucasian-albanian, oriya, tai-tham, tagalog, symbols, elbasan, bassa-vah, armenian, kharoshthi, hanifi-rohingya, nko, hebrew, balinese, marchen, grantha, soyombo, zanabazar-square, kayah-li, masaram-gondi, duployan, math, tai-viet, malayalam, telugu, tagbanwa, wancho, mongolian, rejang, mandaic, tibetan, sundanese, yi, mende-kikakui, adlam, meetei-mayek, lao, tai-le, mahajani, takri, bhaiksuki, myanmar, old-permic, tifinagh, gujarati, kaithi, syriac, new-tai-lue, buhid, cham, warang-citi, chakma, phags-pa, siddham, sogdian, devanagari, bengali, osage, miao, canadian-aboriginal, thai, limbu, lepcha, kannada, gurmukhi, brahmi, manichaean, hanunoo, ahom, khojki, tirhuta, gunjala-gondi, batak, buginese, dogra, pahawh-hmong, khmer, khudawadi, sharada, sinhala, javanese, coptic, newa, saurashtra, modi, syloti-nagri
  • U+EE00 : not included in any glyphset definition
  • U+EE01 : not included in any glyphset definition
  • U+EE02 : not included in any glyphset definition
  • diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..8231f98 --- /dev/null +++ b/renovate.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ], + "rangeStrategy": "bump" +} \ No newline at end of file diff --git a/requirements-test.in b/requirements-test.in new file mode 100644 index 0000000..a0347a8 --- /dev/null +++ b/requirements-test.in @@ -0,0 +1,2 @@ +fontbakery[googlefonts]>=0.9.2 +gftools[qa]>=0.9.23 \ No newline at end of file diff --git a/requirements-test.txt b/requirements-test.txt index a0347a8..edf50d5 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,2 +1,479 @@ -fontbakery[googlefonts]>=0.9.2 -gftools[qa]>=0.9.23 \ No newline at end of file +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile requirements-test.in +# +absl-py==2.1.0 + # via + # gftools + # nanoemoji + # picosvg +afdko==4.0.1 + # via gftools +appdirs==1.4.4 + # via fs +attrs==24.2.0 + # via + # cattrs + # outcome + # statmake + # trio + # ufolib2 +axisregistry==0.4.11 + # via + # fontbakery + # gftools +babelfont==3.0.5 + # via + # collidoscope + # gftools +beautifulsoup4==4.12.3 + # via + # fontbakery + # gftools +beziers==0.6.0 + # via fontbakery +blackrenderer[skia]==0.6.0 + # via diffenator2 +booleanoperations==0.9.0 + # via + # afdko + # fontparts + # ufo2ft +brotli==1.1.0 + # via + # fonttools + # gftools +bump2version==1.0.1 + # via bumpfontversion +bumpfontversion==0.4.1 + # via gftools +cattrs==24.1.2 + # via + # statmake + # ufolib2 +certifi==2024.8.30 + # via + # requests + # selenium +cffi==1.17.1 + # via + # cmarkgfm + # cryptography + # pygit2 + # pynacl +cffsubr==0.3.0 + # via ufo2ft +charset-normalizer==3.4.0 + # via requests +cmarkgfm==2024.1.14 + # via fontbakery +collidoscope==0.6.5 + # via fontbakery +commandlines==0.4.1 + # via ufolint +compreffor==0.5.5 + # via ufo2ft +cryptography==43.0.1 + # via pyjwt +defcon[lxml,pens]==0.10.3 + # via + # afdko + # fontbakery + # fontparts + # glyphsets + # mutatormath + # ufoprocessor +dehinter==4.0.0 + # via fontbakery +deprecated==1.2.14 + # via pygithub +diffenator2==0.4.4 + # via gftools +docopt==0.6.2 + # via num2words +exceptiongroup==1.2.2 + # via + # cattrs + # trio + # trio-websocket +filelock==3.16.1 + # via youseedee +font-v==2.1.0 + # via gftools +fontbakery[beautifulsoup4,googlefonts,googlefontsalwayslatest,shaperglot]==0.12.10 + # via + # -r requirements-test.in + # gftools +fontfeatures==1.8.0 + # via + # babelfont + # gftools +fontmake[json]==3.9.0 + # via gftools +fontmath==0.9.4 + # via + # afdko + # fontmake + # fontparts + # mutatormath + # ufo2ft + # ufoprocessor +fontparts==0.12.2 + # via ufoprocessor +fontpens==0.2.4 + # via defcon +fonttools[lxml,ufo,unicode,woff]==4.54.1 + # via + # afdko + # axisregistry + # babelfont + # blackrenderer + # booleanoperations + # bumpfontversion + # cffsubr + # collidoscope + # compreffor + # defcon + # dehinter + # diffenator2 + # font-v + # fontbakery + # fontfeatures + # fontmake + # fontmath + # fontparts + # fontpens + # gftools + # glyphsets + # glyphslib + # kurbopy + # mutatormath + # nanoemoji + # statmake + # ufo2ft + # ufolib2 + # ufolint + # ufomerge + # ufoprocessor + # vfblib + # vharfbuzz + # vttlib +freetype-py==2.3.0 + # via + # diffenator2 + # fontbakery +fs==2.4.16 + # via + # fontfeatures + # fonttools +gflanguages==0.6.4 + # via + # diffenator2 + # fontbakery + # gftools + # glyphsets + # shaperglot +gfsubsets==2024.9.25 + # via + # fontbakery + # gftools +gftools[qa]==0.9.71 + # via -r requirements-test.in +gitdb==4.0.11 + # via gitpython +gitpython==3.1.43 + # via font-v +glyphsets==1.0.0 + # via + # diffenator2 + # fontbakery + # gftools +glyphslib==6.9.2 + # via + # babelfont + # bumpfontversion + # fontmake + # gftools + # glyphsets +h11==0.14.0 + # via wsproto +idna==3.10 + # via + # requests + # trio +importlib-resources==6.4.5 + # via gfsubsets +jinja2==3.1.4 + # via + # diffenator2 + # fontbakery + # gftools +kurbopy==0.11.0 + # via collidoscope +lxml==5.3.0 + # via + # afdko + # fontfeatures + # fonttools + # nanoemoji + # picosvg +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.1 + # via jinja2 +mdurl==0.1.2 + # via markdown-it-py +munkres==1.1.4 + # via fontbakery +mutatormath==3.0.1 + # via ufoprocessor +nanoemoji==0.15.1 + # via gftools +networkx==3.4 + # via gftools +ninja==1.11.1.1 + # via + # diffenator2 + # gftools + # nanoemoji +num2words==0.5.13 + # via shaperglot +numpy==2.1.2 + # via + # blackrenderer + # skia-python +openstep-plist==0.3.1 + # via + # babelfont + # bumpfontversion + # glyphslib +opentype-sanitizer==9.1.0 + # via + # fontbakery + # gftools +opentypespec==1.9.1 + # via fontbakery +orjson==3.10.7 + # via + # babelfont + # ufolib2 +outcome==1.3.0.post0 + # via trio +packaging==24.1 + # via + # fontbakery + # gftools +picosvg==0.22.1 + # via nanoemoji +pillow==10.4.0 + # via + # diffenator2 + # gftools + # nanoemoji +pip-api==0.0.34 + # via fontbakery +pngquant-cli==3.0.3 + # via nanoemoji +protobuf==3.20.3 + # via + # axisregistry + # diffenator2 + # fontbakery + # gflanguages + # gftools + # shaperglot +pyahocorasick==2.1.0 + # via diffenator2 +pybind11==2.13.6 + # via skia-python +pycairo==1.27.0 + # via gftools +pyclipper==1.3.0.post5 + # via + # beziers + # booleanoperations +pycparser==2.22 + # via cffi +pygit2==1.14.1 + # via gftools +pygithub==2.4.0 + # via gftools +pygments==2.18.0 + # via rich +pyjwt[crypto]==2.9.0 + # via pygithub +pynacl==1.5.0 + # via pygithub +pyparsing==3.1.4 + # via vttlib +pysocks==1.7.1 + # via urllib3 +python-bidi==0.4.2 + # via diffenator2 +python-dateutil==2.9.0.post0 + # via strictyaml +pyyaml==6.0.2 + # via + # fontbakery + # gftools + # glyphsets + # shaperglot +regex==2024.9.11 + # via nanoemoji +requests==2.32.3 + # via + # fontbakery + # gftools + # glyphsets + # pygithub + # youseedee +resvg-cli==0.44.0 + # via nanoemoji +rich==13.9.2 + # via + # fontbakery + # gftools +rstr==3.2.2 + # via stringbrewer +ruamel-yaml==0.18.6 + # via gftools +ruamel-yaml-clib==0.2.8 + # via ruamel-yaml +selenium==4.25.0 + # via diffenator2 +shaperglot==0.5.1 + # via fontbakery +six==1.16.0 + # via + # fs + # python-bidi + # python-dateutil +skia-pathops==0.8.0.post1 + # via + # collidoscope + # gftools + # picosvg +skia-python==87.6 + # via blackrenderer +smmap==5.0.1 + # via gitdb +sniffio==1.3.1 + # via trio +sortedcontainers==2.4.0 + # via trio +soupsieve==2.6 + # via beautifulsoup4 +sre-yield==1.2 + # via stringbrewer +statmake==0.6.0 + # via gftools +strictyaml==1.7.3 + # via + # gftools + # shaperglot +stringbrewer==0.0.1 + # via fontbakery +tabulate==0.9.0 + # via gftools +termcolor==2.5.0 + # via shaperglot +toml==0.10.2 + # via + # fontbakery + # nanoemoji +tqdm==4.66.5 + # via + # afdko + # collidoscope + # diffenator2 +trio==0.26.2 + # via + # selenium + # trio-websocket +trio-websocket==0.11.1 + # via selenium +ttfautohint-py==0.5.1 + # via gftools +typing-extensions==4.12.2 + # via + # cattrs + # fontbakery + # pygithub + # rich + # selenium + # vfblib +ufo2ft[cffsubr,compreffor]==3.3.1 + # via + # fontbakery + # fontmake + # nanoemoji + # shaperglot +ufolib2[json]==0.16.0 + # via + # babelfont + # bumpfontversion + # fontmake + # glyphslib + # nanoemoji + # ufomerge + # vfblib + # vttlib +ufolint==1.2.0 + # via fontbakery +ufomerge==1.8.2 + # via gftools +ufonormalizer==0.6.2 + # via + # afdko + # vfblib +ufoprocessor==1.13.1 + # via afdko +uharfbuzz==0.41.0 + # via + # blackrenderer + # collidoscope + # diffenator2 + # fontbakery + # vharfbuzz +unicodedata2==15.1.0 + # via + # diffenator2 + # fontbakery + # fonttools + # glyphsets +unidecode==1.3.8 + # via gftools +urllib3[socks]==2.2.3 + # via + # pygithub + # requests + # selenium +vfblib==0.7.1 + # via babelfont +vharfbuzz==0.3.1 + # via + # fontbakery + # gftools + # shaperglot +vttlib==0.12.0 + # via gftools +websocket-client==1.8.0 + # via selenium +wrapt==1.16.0 + # via deprecated +wsproto==1.2.0 + # via trio-websocket +youseedee==0.5.3 + # via + # diffenator2 + # shaperglot +zopfli==0.2.3 + # via + # fonttools + # nanoemoji + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/requirements.in b/requirements.in new file mode 100644 index 0000000..d63ae05 --- /dev/null +++ b/requirements.in @@ -0,0 +1,6 @@ +fontmake>=3.9.0 +gftools[qa]>=0.9.54 +drawbot-skia>=0.5.0 +sh>=2.0.6 +bumpfontversion>=0.4.1 +diffenator2>=0.3.8 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index d63ae05..2138726 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,497 @@ -fontmake>=3.9.0 -gftools[qa]>=0.9.54 -drawbot-skia>=0.5.0 -sh>=2.0.6 -bumpfontversion>=0.4.1 -diffenator2>=0.3.8 \ No newline at end of file +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile requirements.in +# +absl-py==2.1.0 + # via + # gftools + # nanoemoji + # picosvg +afdko==4.0.1 + # via gftools +appdirs==1.4.4 + # via fs +attrs==24.2.0 + # via + # cattrs + # outcome + # statmake + # trio + # ufolib2 +axisregistry==0.4.11 + # via + # fontbakery + # gftools +babelfont==3.0.5 + # via + # collidoscope + # gftools +beautifulsoup4==4.12.3 + # via + # fontbakery + # gftools +beziers==0.6.0 + # via fontbakery +blackrenderer[skia]==0.6.0 + # via + # diffenator2 + # drawbot-skia +booleanoperations==0.9.0 + # via + # afdko + # fontparts + # ufo2ft +brotli==1.1.0 + # via + # fonttools + # gftools +bump2version==1.0.1 + # via bumpfontversion +bumpfontversion==0.4.1 + # via + # -r requirements.in + # gftools +cattrs==24.1.2 + # via + # statmake + # ufolib2 +certifi==2024.8.30 + # via + # requests + # selenium +cffi==1.17.1 + # via + # cmarkgfm + # cryptography + # pygit2 + # pynacl +cffsubr==0.3.0 + # via ufo2ft +charset-normalizer==3.4.0 + # via requests +cmarkgfm==2024.1.14 + # via fontbakery +collidoscope==0.6.5 + # via fontbakery +commandlines==0.4.1 + # via ufolint +compreffor==0.5.5 + # via ufo2ft +cryptography==43.0.1 + # via pyjwt +defcon[lxml,pens]==0.10.3 + # via + # afdko + # fontbakery + # fontparts + # glyphsets + # mutatormath + # ufoprocessor +dehinter==4.0.0 + # via fontbakery +deprecated==1.2.14 + # via pygithub +diffenator2==0.4.4 + # via + # -r requirements.in + # gftools +docopt==0.6.2 + # via num2words +drawbot-skia==0.5.1 + # via -r requirements.in +exceptiongroup==1.2.2 + # via + # cattrs + # trio + # trio-websocket +filelock==3.16.1 + # via youseedee +font-v==2.1.0 + # via gftools +fontbakery[beautifulsoup4,googlefonts,googlefontsalwayslatest,shaperglot]==0.12.10 + # via gftools +fontfeatures==1.8.0 + # via + # babelfont + # gftools +fontmake[json]==3.9.0 + # via + # -r requirements.in + # gftools +fontmath==0.9.4 + # via + # afdko + # fontmake + # fontparts + # mutatormath + # ufo2ft + # ufoprocessor +fontparts==0.12.2 + # via ufoprocessor +fontpens==0.2.4 + # via defcon +fonttools[lxml,ufo,unicode,woff]==4.54.1 + # via + # afdko + # axisregistry + # babelfont + # blackrenderer + # booleanoperations + # bumpfontversion + # cffsubr + # collidoscope + # compreffor + # defcon + # dehinter + # diffenator2 + # drawbot-skia + # font-v + # fontbakery + # fontfeatures + # fontmake + # fontmath + # fontparts + # fontpens + # gftools + # glyphsets + # glyphslib + # kurbopy + # mutatormath + # nanoemoji + # statmake + # ufo2ft + # ufolib2 + # ufolint + # ufomerge + # ufoprocessor + # vfblib + # vharfbuzz + # vttlib +freetype-py==2.3.0 + # via + # diffenator2 + # fontbakery +fs==2.4.16 + # via + # fontfeatures + # fonttools +gflanguages==0.6.4 + # via + # diffenator2 + # fontbakery + # gftools + # glyphsets + # shaperglot +gfsubsets==2024.9.25 + # via + # fontbakery + # gftools +gftools[qa]==0.9.71 + # via -r requirements.in +gitdb==4.0.11 + # via gitpython +gitpython==3.1.43 + # via font-v +glyphsets==1.0.0 + # via + # diffenator2 + # fontbakery + # gftools +glyphslib==6.9.2 + # via + # babelfont + # bumpfontversion + # fontmake + # gftools + # glyphsets +h11==0.14.0 + # via wsproto +idna==3.10 + # via + # requests + # trio +importlib-resources==6.4.5 + # via gfsubsets +jinja2==3.1.4 + # via + # diffenator2 + # fontbakery + # gftools +kurbopy==0.11.0 + # via collidoscope +lxml==5.3.0 + # via + # afdko + # fontfeatures + # fonttools + # nanoemoji + # picosvg +markdown-it-py==3.0.0 + # via rich +markupsafe==3.0.1 + # via jinja2 +mdurl==0.1.2 + # via markdown-it-py +munkres==1.1.4 + # via fontbakery +mutatormath==3.0.1 + # via ufoprocessor +nanoemoji==0.15.1 + # via gftools +networkx==3.4 + # via gftools +ninja==1.11.1.1 + # via + # diffenator2 + # gftools + # nanoemoji +num2words==0.5.13 + # via shaperglot +numpy==2.1.2 + # via + # blackrenderer + # drawbot-skia + # skia-python +openstep-plist==0.3.1 + # via + # babelfont + # bumpfontversion + # glyphslib +opentype-sanitizer==9.1.0 + # via + # fontbakery + # gftools +opentypespec==1.9.1 + # via fontbakery +orjson==3.10.7 + # via + # babelfont + # ufolib2 +outcome==1.3.0.post0 + # via trio +packaging==24.1 + # via + # fontbakery + # gftools +picosvg==0.22.1 + # via nanoemoji +pillow==10.4.0 + # via + # diffenator2 + # gftools + # nanoemoji +pip-api==0.0.34 + # via fontbakery +pngquant-cli==3.0.3 + # via nanoemoji +protobuf==3.20.3 + # via + # axisregistry + # diffenator2 + # fontbakery + # gflanguages + # gftools + # shaperglot +pyahocorasick==2.1.0 + # via diffenator2 +pybind11==2.13.6 + # via skia-python +pycairo==1.27.0 + # via gftools +pyclipper==1.3.0.post5 + # via + # beziers + # booleanoperations +pycparser==2.22 + # via cffi +pygit2==1.14.1 + # via gftools +pygithub==2.4.0 + # via gftools +pygments==2.18.0 + # via rich +pyjwt[crypto]==2.9.0 + # via pygithub +pynacl==1.5.0 + # via pygithub +pyparsing==3.1.4 + # via vttlib +pysocks==1.7.1 + # via urllib3 +python-bidi==0.4.2 + # via + # diffenator2 + # drawbot-skia +python-dateutil==2.9.0.post0 + # via strictyaml +pyyaml==6.0.2 + # via + # fontbakery + # gftools + # glyphsets + # shaperglot +regex==2024.9.11 + # via nanoemoji +requests==2.32.3 + # via + # fontbakery + # gftools + # glyphsets + # pygithub + # youseedee +resvg-cli==0.44.0 + # via nanoemoji +rich==13.9.2 + # via + # fontbakery + # gftools +rstr==3.2.2 + # via stringbrewer +ruamel-yaml==0.18.6 + # via gftools +ruamel-yaml-clib==0.2.8 + # via ruamel-yaml +selenium==4.25.0 + # via diffenator2 +sh==2.1.0 + # via -r requirements.in +shaperglot==0.5.1 + # via fontbakery +six==1.16.0 + # via + # fs + # python-bidi + # python-dateutil +skia-pathops==0.8.0.post1 + # via + # collidoscope + # gftools + # picosvg +skia-python==87.6 + # via + # blackrenderer + # drawbot-skia +smmap==5.0.1 + # via gitdb +sniffio==1.3.1 + # via trio +sortedcontainers==2.4.0 + # via trio +soupsieve==2.6 + # via beautifulsoup4 +sre-yield==1.2 + # via stringbrewer +statmake==0.6.0 + # via gftools +strictyaml==1.7.3 + # via + # gftools + # shaperglot +stringbrewer==0.0.1 + # via fontbakery +tabulate==0.9.0 + # via gftools +termcolor==2.5.0 + # via shaperglot +toml==0.10.2 + # via + # fontbakery + # nanoemoji +tqdm==4.66.5 + # via + # afdko + # collidoscope + # diffenator2 +trio==0.26.2 + # via + # selenium + # trio-websocket +trio-websocket==0.11.1 + # via selenium +ttfautohint-py==0.5.1 + # via gftools +typing-extensions==4.12.2 + # via + # cattrs + # fontbakery + # pygithub + # rich + # selenium + # vfblib +ufo2ft[cffsubr,compreffor]==3.3.1 + # via + # fontbakery + # fontmake + # nanoemoji + # shaperglot +ufolib2[json]==0.16.0 + # via + # babelfont + # bumpfontversion + # fontmake + # glyphslib + # nanoemoji + # ufomerge + # vfblib + # vttlib +ufolint==1.2.0 + # via fontbakery +ufomerge==1.8.2 + # via gftools +ufonormalizer==0.6.2 + # via + # afdko + # vfblib +ufoprocessor==1.13.1 + # via afdko +uharfbuzz==0.41.0 + # via + # blackrenderer + # collidoscope + # diffenator2 + # drawbot-skia + # fontbakery + # vharfbuzz +unicodedata2==15.1.0 + # via + # diffenator2 + # drawbot-skia + # fontbakery + # fonttools + # glyphsets +unidecode==1.3.8 + # via gftools +urllib3[socks]==2.2.3 + # via + # pygithub + # requests + # selenium +vfblib==0.7.1 + # via babelfont +vharfbuzz==0.3.1 + # via + # fontbakery + # gftools + # shaperglot +vttlib==0.12.0 + # via gftools +websocket-client==1.8.0 + # via selenium +wrapt==1.16.0 + # via deprecated +wsproto==1.2.0 + # via trio-websocket +youseedee==0.5.3 + # via + # diffenator2 + # shaperglot +zopfli==0.2.3 + # via + # fonttools + # nanoemoji + +# The following packages are considered to be unsafe in a requirements file: +# pip +# setuptools diff --git a/scripts/customize.py b/scripts/customize.py new file mode 100644 index 0000000..f7feab4 --- /dev/null +++ b/scripts/customize.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 + +# This script is run by the user using `make customize` after the repository +# is cloned. If you are reading this because `make customize` failed, +# skip down to the section headed "INITIALIZATION STEPS". + +from sh import git +import datetime +import re +import sys +from urllib.parse import quote +import subprocess +import requests + +BASE_OWNER = "googlefonts" +BASE_REPONAME = "googlefonts-project-template" +DUMMY_URL = "https://yourname.github.io/your-font-repository-name" +LATEST_OFL = "https://raw.githubusercontent.com/googlefonts/googlefonts-project-template/main/OFL.txt" + + +def repo_url(owner, name): + return f"https://github.com/{owner}/{name}" + + +def web_url(owner, name): + return f"https://{owner}.github.io/{name}" + + +def raw_url(owner, name): + return f"https://raw.githubusercontent.com/{owner}/{name}" + + +def lose(msg, e=None): + print(msg) + print("You will need to do the initialization steps manually.") + print("Read scripts/customize.py for more instructions how to do this.") + if e: + print( + "\nHere's an additional error message which may help diagnose the problem." + ) + raise e + sys.exit(1) + + +try: + my_repo_url = git.remote("get-url", "origin") +except Exception as e: + lose("Could not use git to find my own repository URL", e) + +m = re.match(r"(?:https://github.com/|git@github.com:)(.*)/(.*)/?", str(my_repo_url)) +if not m: + lose( + f"My git repository URL ({my_repo_url}) didn't look what I expected - are you hosting this on github?" + ) + +owner, reponame = m[1], m[2] + +if owner == BASE_OWNER and reponame == BASE_REPONAME: + print("I am being run on the upstream repository; don't do that") + sys.exit() + +# INITIALIZATION STEPS + +# First, the README file contains URLs to pages in the `gh-pages` branch of the +# repo. When initially cloned, these URLs will point to the +# googlefonts/Unified-Font-Repository itself. But downstream users want links +# and badges about their own font, not ours! So any URLs need to be adjusted to +# refer to the end user's repository. + +# We will also pin the dependencies so future builds are reproducible. + +readme = open("README.md").read() +ghpages_url = web_url(owner, reponame) +project_url = repo_url(owner, reponame) + +print("Fixing URLs:", web_url(BASE_OWNER, BASE_REPONAME), "->", ghpages_url) + +readme = readme.replace(web_url(BASE_OWNER, BASE_REPONAME), ghpages_url) +# In the badges, the URLs to raw.githubusercontent.com are URL-encoded as they +# are passed to shields.io. +readme = readme.replace( + quote(raw_url(BASE_OWNER, BASE_REPONAME), safe=""), + quote(raw_url(owner, reponame), safe=""), +) + +print("Fixing URLs:", DUMMY_URL, "->", ghpages_url) +readme = readme.replace(f"`{DUMMY_URL}`", ghpages_url) + +with open("README.md", "w") as fh: + fh.write(readme) + +git.add("README.md") + +# Fix the OFL +year = datetime.date.today().year +title = reponame.title() +copyright = f"Copyright {year} The {title} Project Authors ({project_url})\n" +print("Fetching the latest OFL..") +ofl = requests.get(LATEST_OFL).text.splitlines() +print("Writing an OFL for you") +print(copyright) +with open("OFL.txt", "w") as fh: + fh.write(copyright) + fh.write("\n".join(ofl[1:])) + +git.add("OFL.txt") + +# Pin the dependencies +print("Pinning dependencies") +dependencies = subprocess.check_output(["pip", "freeze"]) +with open("requirements.txt", "wb") as dependency_file: + dependency_file.write(dependencies) +git.add("requirements.txt") + +# Did anything change? +result = git.status("--porcelain") +if any(line.startswith("M ") for line in result.splitlines()): + git.commit("-m", "Customize repository") + + print("Pushing changes to GitHub") + git.push() +else: + print("Nothing changed, no need to push") diff --git a/scripts/index.html b/scripts/index.html index f76f5f5..07bb551 100644 --- a/scripts/index.html +++ b/scripts/index.html @@ -3,11 +3,10 @@ - Kode Mono Test Reports + My Font development - cover image -

    Kode Mono Test Reports

    +

    My Font testing pages

    - \ No newline at end of file + diff --git a/scripts/read-config.py b/scripts/read-config.py index e9e9e6a..5c2d404 100644 --- a/scripts/read-config.py +++ b/scripts/read-config.py @@ -42,4 +42,4 @@ sys.exit(0) else: print("Could not determine sources from config file!") - sys.exit(1) \ No newline at end of file + sys.exit(1) diff --git a/sources/.ninja_log b/sources/.ninja_log index 8d16d3b..32b5413 100644 --- a/sources/.ninja_log +++ b/sources/.ninja_log @@ -143,3 +143,27 @@ 6580 7499 1728645489922245688 ../fonts/webfonts/KodeMono-Regular.woff2 ef9ca051d6b9ac08 6578 7500 1728645489915797279 ../fonts/webfonts/KodeMono-Medium.woff2 7b8596d01c5fa9e7 6575 7508 1728645489924819060 ../fonts/webfonts/KodeMono-SemiBold.woff2 32fe6447de431902 +1 2063 1728652916370858457 instance_ufos/KodeMono-Bold.ufo.json 50b13865d7278b27 +1 2064 1728652916361332343 instance_ufos/KodeMono-Medium.ufo.json 36825f849255f9ca +1 2064 1728652916360612927 instance_ufos/KodeMono-SemiBold.ufo.json da52c34de8cd91e0 +1 2069 1728652916378773031 instance_ufos/KodeMono-Regular.ufo.json 4d3f4902423e2859 +1 2427 1728652916780091427 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpai_053cc 6f90127834179833 +2069 3814 1728652918144090174 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpkvc6c5q7 463bf4c7c4846ca8 +2064 3823 1728652918144774923 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmptqfp9lml 3725bc1bdbf4146d +2064 3823 1728652918146594379 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpor16rtth 236b4799474c0473 +2063 3824 1728652918143681883 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpktx_20re f25945368f3fd015 +2427 4437 1728652918747408163 ../fonts/variable/KodeMono[wght].ttf dde1a3c54d355875 +4437 5112 1728652919667581731 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmphbtaxsve.buildStatstamp 8db78abbdaa5c05c +4438 5513 1728652919852991593 ../fonts/webfonts/KodeMono[wght].woff2 13272ba99b78efd6 +3824 5591 1728652919797502701 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpavclxy10 83db23f2f555aae7 +3815 5596 1728652919796756952 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv5jlpdm9 e362e66d670f01e6 +3823 5596 1728652919797349493 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfzs4d4ng 35eaf528d2e9219b +3823 5597 1728652919797825992 /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpcqmpqb1y 97a95963e8748fed +5596 7338 1728652921626950559 ../fonts/ttf/KodeMono-Regular.ttf 6b650eec78c641c5 +5597 7339 1728652921627238142 ../fonts/ttf/KodeMono-Medium.ttf 61ea09a1cc7841c0 +5596 7340 1728652921627372225 ../fonts/ttf/KodeMono-SemiBold.ttf baeb45d1a2b8a7e2 +5591 7342 1728652921627204809 ../fonts/ttf/KodeMono-Bold.ttf ab7fc7005da42c8a +7338 8320 1728652922715103302 ../fonts/webfonts/KodeMono-Regular.woff2 ef9ca051d6b9ac08 +7342 8320 1728652922711052099 ../fonts/webfonts/KodeMono-Bold.woff2 207b666677b552b7 +7339 8324 1728652922712601347 ../fonts/webfonts/KodeMono-Medium.woff2 7b8596d01c5fa9e7 +7340 8325 1728652922715358385 ../fonts/webfonts/KodeMono-SemiBold.woff2 32fe6447de431902 diff --git a/sources/KodeMono-VF.ttf b/sources/KodeMono-VF.ttf new file mode 100644 index 0000000..937f9ff Binary files /dev/null and b/sources/KodeMono-VF.ttf differ diff --git a/sources/build.ninja b/sources/build.ninja index e90440c..b6c0975 100644 --- a/sources/build.ninja +++ b/sources/build.ninja @@ -58,8 +58,8 @@ rule copy -m gftools.builder.jobrunner cp $in $out $stamp description = copy -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfw0qltv4 -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfw0qltv4: $ +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpai_053cc +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpai_053cc: $ buildVariable ./KodeMono.glyphs operation = buildVariable args = --filter ... --filter FlattenComponentsFilter --filter $ @@ -98,10 +98,10 @@ build instance_ufos/KodeMono-Bold.ufo.json: instantiateUfo ./KodeMono.glyphs args = --ufo-structure=json --instance-dir instance_ufos # Postprocessing with BuildSTAT build $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpvkg8ut5k.buildStatstamp: $ + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmphbtaxsve.buildStatstamp: $ buildSTAT-postprocess ../fonts/variable/KodeMono[wght].ttf stamp = && touch $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpvkg8ut5k.buildStatstamp + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmphbtaxsve.buildStatstamp postprocess = buildStat # Generating ../fonts/webfonts/KodeMono[wght].woff2 build ../fonts/webfonts/KodeMono[wght].woff2: compress $ @@ -125,83 +125,83 @@ build ../fonts/webfonts/KodeMono-Bold.woff2: compress $ operation = compress # Generating ../fonts/variable/KodeMono[wght].ttf build ../fonts/variable/KodeMono[wght].ttf: fix $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfw0qltv4 + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpai_053cc operation = fix args = -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpzvkvl7gg -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpzvkvl7gg: $ +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpkvc6c5q7 +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpkvc6c5q7: $ buildTTF instance_ufos/KodeMono-Regular.ufo.json operation = buildTTF args = --filter ... --filter FlattenComponentsFilter --filter $ DecomposeTransformedComponentsFilter fontmake_type = -u fontmake_args = --verbose WARNING -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmppr8ywqs3 -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmppr8ywqs3: $ - autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpzvkvl7gg +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv5jlpdm9 +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv5jlpdm9: $ + autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpkvc6c5q7 operation = autohint args = --fail-ok # Generating ../fonts/ttf/KodeMono-Regular.ttf build ../fonts/ttf/KodeMono-Regular.ttf: fix $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmppr8ywqs3 + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv5jlpdm9 operation = fix args = -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpje2ikqre -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpje2ikqre: $ +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpor16rtth +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpor16rtth: $ buildTTF instance_ufos/KodeMono-Medium.ufo.json operation = buildTTF args = --filter ... --filter FlattenComponentsFilter --filter $ DecomposeTransformedComponentsFilter fontmake_type = -u fontmake_args = --verbose WARNING -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp1gkllvrl -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp1gkllvrl: $ - autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpje2ikqre +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpcqmpqb1y +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpcqmpqb1y: $ + autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpor16rtth operation = autohint args = --fail-ok # Generating ../fonts/ttf/KodeMono-Medium.ttf build ../fonts/ttf/KodeMono-Medium.ttf: fix $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp1gkllvrl + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpcqmpqb1y operation = fix args = -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp6isrcepo -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp6isrcepo: $ +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmptqfp9lml +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmptqfp9lml: $ buildTTF instance_ufos/KodeMono-SemiBold.ufo.json operation = buildTTF args = --filter ... --filter FlattenComponentsFilter --filter $ DecomposeTransformedComponentsFilter fontmake_type = -u fontmake_args = --verbose WARNING -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv4s_5d9d -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv4s_5d9d: $ - autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp6isrcepo +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfzs4d4ng +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfzs4d4ng: $ + autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmptqfp9lml operation = autohint args = --fail-ok # Generating ../fonts/ttf/KodeMono-SemiBold.ttf build ../fonts/ttf/KodeMono-SemiBold.ttf: fix $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpv4s_5d9d + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpfzs4d4ng operation = fix args = -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpbj4at42z -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpbj4at42z: $ +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpktx_20re +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpktx_20re: $ buildTTF instance_ufos/KodeMono-Bold.ufo.json operation = buildTTF args = --filter ... --filter FlattenComponentsFilter --filter $ DecomposeTransformedComponentsFilter fontmake_type = -u fontmake_args = --verbose WARNING -# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp2g_oojej -build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp2g_oojej: $ - autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpbj4at42z +# Generating /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpavclxy10 +build /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpavclxy10: $ + autohint /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpktx_20re operation = autohint args = --fail-ok # Generating ../fonts/ttf/KodeMono-Bold.ttf build ../fonts/ttf/KodeMono-Bold.ttf: fix $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmp2g_oojej + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpavclxy10 operation = fix args = default $ - /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmpvkg8ut5k.buildStatstamp $ + /var/folders/cf/j7rdq36d2mb6dpm37ppz50840000gn/T/tmphbtaxsve.buildStatstamp $ ../fonts/webfonts/KodeMono[wght].woff2 $ ../fonts/webfonts/KodeMono-Regular.woff2 $ ../fonts/webfonts/KodeMono-Medium.woff2 $