github-actions
released this
22 May 11:41
·
464 commits
to main
since this release
What's Changed
- Spinning up compiler repo by @rsheeter in #1
- Design space axis to IR axis by @rsheeter in #2
- Starting on change tracking by @rsheeter in #5
- Remove empty test that will never be populated by @rsheeter in #7
- Let loose the mighty fontir, fenris lesser known cousin by @rsheeter in #8
- Add the ability to consider A changed if B changes. by @rsheeter in #9
- Add a very stripped down sample of a designspace to use in fontc tests by @rsheeter in #11
- [testdata] add required layercontents.plist, plus DS source with 'layer' attribute by @anthrotype in #13
- Start figuring out which things we need to rebuild in fontc by @rsheeter in #10
- Rough in parallel designspace glyph to IR processing by @rsheeter in #12
- Pay attention to layer when loading glif files by @rsheeter in #15
- Provide the location when creating glif work by @rsheeter in #16
- A .glyphs VF for testing by @rsheeter in #19
- Add the ability to capture the state of a slice. by @rsheeter in #20
- Add the ability to read glyphs files by @rsheeter in #21
- Find the glyphs in a .glyphs and sketch out wiring to process them by @rsheeter in #24
- Use hashable types and derived plist conversion instead of raw access by @rsheeter in #25
- Add glyphs 2 (as written by glyphs 3) examples by @rsheeter in #29
- replace toml-rs with serde_yaml by @anthrotype in #31
- Capture the plan by @rsheeter in #32
- Start to convert Glyphs v2 to Glyphs v3 by @rsheeter in #30
- Use a release of Norad again by @rsheeter in #36
- Remove unused fontations deps by @rsheeter in #38
- Parse unicode from glyphs files by @rsheeter in #37
- Playing with how to move state around by @rsheeter in #39
- Start emitting IR for UFO glifs by @anthrotype in #18
- Get the axis ranges from .glyphs files by @rsheeter in #42
- Add a piecewise linear map based on the python version by @rsheeter in #46
- Push Glyphs axes => StaticMetadata using Context by @rsheeter in #43
- <3 units by @rsheeter in #55
- Mk2 of unit interchange by @rsheeter in #56
- Use updated converters on .designspace files by @rsheeter in #57
- Restore smoke test by @rsheeter in #58
- Load Glyphs v2 axis mappings, example based on Texturina, into converter by @rsheeter in #59
- Create blank GlyphInstances at correct NormalizedLocation for .glyphs by @rsheeter in #60
- Use an enum to distinguish Path from Component, populate for Glyphs 2 and 3 by @rsheeter in #63
- Use IndexSet for glyph order by @rsheeter in #67
- Make Location a type so it can have impl's by @rsheeter in #68
- Make it possible to change the build dir by @rsheeter in #71
- First pass at executing job graph by @rsheeter in #69
- Code review on #69 from @anthrotype by @rsheeter in #77
- Add a simple test ufo+ds that has features by @rsheeter in #78
- Fontdrasil by @rsheeter in #79
- Add wiring for backend tasks by @rsheeter in #82
- Build fea files in ufo+ds if identical across masters by @rsheeter in #81
- Use SmolStr instead of String in WorkIdentifier::GlyphName by @rsheeter in #88
- Read and honor Axis Location on font masters by @rsheeter in #83
- Compile simple - no token expansion - fea for .glyphs by @rsheeter in #91
- Use Kurbo's Point and Affine types by @rsheeter in #101
- small: fix some error format strings by @rsheeter in #105
- glyphs contour and component conversion by @rsheeter in #98
- Update path handling based on smoke test by @rsheeter in #108
- Use kurbo::BezPath instead of our own in-house contour by @rsheeter in #104
- small: support tag on feature by @rsheeter in #107
- Fill in qcurve by @rsheeter in #111
- Move non-uniform to it's own test by @rsheeter in #114
- [glyphs-reader] Fix order of combined affine transform by @anthrotype in #113
- Use upcoming compile api for fea-rs by @rsheeter in #97
- Make clippy happy @ 1.67 by @rsheeter in #118
- VariationModel in Rust, part 1 by @rsheeter in #117
- Store a VariationModel in StaticMetadata by @rsheeter in #119
- Add a phase that eliminates mixed contour+component glyphs; legal in source but not binary by @rsheeter in #123
- Update kurbo by @rsheeter in #126
- Add the ability to filter glyphs to be processed by @rsheeter in #127
- Forgive me oh wise and powerful clippy by @rsheeter in #129
- Very sophisticated instructions by @rsheeter in #133
- Make ACL system more flexible (static glyf, 1 of 3) by @rsheeter in #130
- Build simple glyphs (static glyf, 2 of 3) by @rsheeter in #131
- Composite glyphs (static glyf, 3 of 3) by @rsheeter in #132
- Build a simple cmap by @rsheeter in #134
- Emit mvp post by @rsheeter in #139
- Try to de-duplicate some of our Context helpers by @rsheeter in #140
- Rough in hmtx by @rsheeter in #143
- Properly round advances when building hmtx by @rsheeter in #151
- Assemble final font by @rsheeter in #148
- Improve composite glyf bbox computation by @rsheeter in #153
- Create the minimal maxp for a TrueType outlines font by @rsheeter in #154
- Add a minimal head table. Our fonts now ttx. by @rsheeter in #156
- [fontc] move Args to args module by @cmyr in #159
- [fontc] Replace test_args with Args::for_test by @cmyr in #160
- Add hhea by @rsheeter in #158
- [fontc] Move Config to new 'config' module by @cmyr in #161
- [fontc] Make Config::init return errors by @cmyr in #165
- Update deps by @cmyr in #163
- [fontc] Recompute config path as needed by @cmyr in #166
- Require Glyph to have a default location, make that instance easy to get by @rsheeter in #167
- [fontc] Move ChangeDetector into change_detector.rs by @cmyr in #168
- [fontc] Split main.rs and lib.rs by @cmyr in #169
- [fontc] Add workload module by @cmyr in #175
- Rework AccessFn type by @cmyr in #177
- Combine identical impl blocks by @cmyr in #180
- Remove unnecessary bounds on types by @cmyr in #179
- Remove doc(hidden) from test helper by @cmyr in #178
- Add 'name' values to WghtVar.glyphs by @rsheeter in #182
- Set all the names I could find by @rsheeter in #183
- Take 'name' entries from the default master for UFO+designspace by @rsheeter in #171
- Support lang=dflt names from .glyphs 2 and 3 by @rsheeter in #184
- Don't lose post by @rsheeter in #191
- MVP OS2: the default by @rsheeter in #190
- Move to write-fonts 0.1.5; it fixes cmap by @rsheeter in #193
- Produce a font that renders by @rsheeter in #194
- Mention githooks in README by @cmyr in #197
- Add a script and a CI to fire it that builds a font and runs OTS on it by @rsheeter in #199
- [ufo2fontir] Codegolf computing UPM by @cmyr in #198
- Read ascender and descender from the default UFO by @rsheeter in #200
- Update CI to match googlefonts/fontations#254 by @rsheeter in #202
- Minor cleanup by @cmyr in #181
- Fix 'no default master' error for empty glyphs by @anthrotype in #186
- Capture glyphs v3 ascender/descender and plumb through to IR by @rsheeter in #201
- x-height and cap height by @rsheeter in #203
- Use a loc:metrics map by @rsheeter in #206
- Basic fvar by @rsheeter in #211
- Use font_types NameId by @rsheeter in #216
- Avar mk1 by @rsheeter in #213
- Use font_types definition of Tag for IR by @rsheeter in #215
- Fix bad merge by @rsheeter in #218
- Fix fvar filtering bug by @rsheeter in #219
- add pre-push git hook to check for println! or eprintln! statements in Rust files by @anthrotype in #204
- Vendor ID by @rsheeter in #221
- Use kurbo 0.9.2 to get fix to cubic to quadratic by @rsheeter in #222
- allow to set fontc --emit-ir=false by @anthrotype in #225
- bump write-fonts to 0.1.7, fixes building cmap with large idDeltas by @anthrotype in #228
- build post format 2.0 containing glyph names by default by @anthrotype in #229
- Build a simple font w/o OTS warnings by @rsheeter in #231
- [fontbe/head] set created/modified to current timestamp or SOURCE_DATE_EPOCH by @anthrotype in #232
- Filename does not align with a single location by @rsheeter in #234
- Add get deltas method by @rsheeter in #230
- Expose and fix bug where metrics would capture for glyph-only layers by @rsheeter in #238
- GlyphPathBuilder: always output implicit closing line for closed paths by @anthrotype in #239
- Add a test .designspace with two axes, one to move X and the other Y by @rsheeter in #242
- Adjust handling of env var in a test by @rsheeter in #243
- Compile a gvar for Texturina that ttx accepts by @rsheeter in #246
- Tweak to make testing with glyph name filter easier by @rsheeter in #247
- Compile simple VFs w/gvar that works in a browser by @rsheeter in #236
- Use skrifa from crates by @dfrg in #253
- Add examples of glyphs files with instances by @rsheeter in #254
- Move to kurbo 0.9.3 to fix compilation failure by @rsheeter in #256
- Load .glyphs instances and use them to inform axis rigging by @rsheeter in #252
- [ci] test all packages individually by @dfrg in #258
- Use
#[fromplist(rest)]
instead of#[rest]
by @rsheeter in #259 - Pick short or long loca by @rsheeter in #260
- Correct comment by @rsheeter in #265
- Obey emit_ir more closely by @rsheeter in #261
- Only convert to contours if basis vectors vary by @rsheeter in #266
- Set USE_MY_METRICS similar to how ufo2ft does it by @rsheeter in #267
- Preallocate delta buffer by @rsheeter in #269
- Support component flattening by @rsheeter in #268
- Make arg and flag defaults match by @rsheeter in #271
- Centralize versions of shared dependencies by @rsheeter in #272
- Don't crash when a glyph bbox x_max is < 0 by @rsheeter in #273
- From plist fixups by @cmyr in #274
- Add a comment about point stream => bezpath by @rsheeter in #276
- Filter implied on curves for interpolatable glyphs by @anthrotype in #277
- Update to latest fea-rs, write-fonts by @rsheeter in #280
- Parse more unquoted strings by @madig in #282
- Use font-types serde support by @rsheeter in #284
- Fire IUP optimization per glyph by @rsheeter in #279
- Use latest write-fonts so we produce identical cmap's for Oswald. by @rsheeter in #289
- Helper for frequent diff pattern by @rsheeter in #288
- Explore using the glyphsLib datafile to figure out if things are nonspacing marks by @rsheeter in #287
- Add basic support for named instances for .glyphs files by @rsheeter in #293
- Make Oswald OS/2 from fontc closer to that from fontmake by @rsheeter in #294
- Support ttx_diff.py run on a .designspace by @rsheeter in #295
- Bring OS/2 and named instance support for ufo+ds up to par with .glyphs by @rsheeter in #297
- Update README.md by @rsheeter in #303
- Update write-fonts, fea-rs by @cmyr in #302
- Make fsSelection match for Oswald by @rsheeter in #298
- Set OS/2 unicode ranges by @rsheeter in #299
- Set codepage range bits in OS/2 by @rsheeter in #301
- Match outlineCompiler.py default value for break char by @rsheeter in #305
- Set first/last char index on OS/2 by @rsheeter in #304
- Improve handling of fea-rs output by @rsheeter in #306
- Didn't rename dir in ttx_dif.py by @rsheeter in #311
- Compute usMaxContext for GSUB by @rsheeter in #309
- Make Oswald 'name' match fontmake by @rsheeter in #314
- Match glyphsLib/ufo2ft defaults for underline thickness/position by @rsheeter in #315
- This updates to new versions of fontations + fea-rs by @cmyr in #319
- Improve hhea enough to match for Oswald by @rsheeter in #317
- Appease clippy by @rsheeter in #322
- Use the real sort order for 'name' by @rsheeter in #321
- Update a comment by @rsheeter in #323
- Remove sort; I get identical name regardless by @rsheeter in #326
- Update root readme by @rsheeter in #325
- Make maxp almost match for Oswald by @rsheeter in #320
- Set more of head correctly by @rsheeter in #324
- Remove checksum from diff by @rsheeter in #328
- Write a rudimentary STAT by @rsheeter in #329
- Add example .glyphs kern and ability to read it by @rsheeter in #330
- Update fontations by @cmyr in #332
- require write-fonts 0.6.1 by @anthrotype in #335
- Add/update test files with kerning data by @rsheeter in #331
- ttx_diff.py: pass --drop-implied-oncurves fontmake option to reduce glyf diff by @anthrotype in #336
- Resolve fea includes for UFO against dir containing .ufo by @rsheeter in #337
- Model kerning in IR and capture it for .glyphs and .designspace by @rsheeter in #334
- Take the default master as authoritative in designspace kerning by @rsheeter in #338
- only test for use_my_metrics component flags for the default instance by @anthrotype in #340
- Update to write-fonts 0.6.2 to get updated reverse pen by @rsheeter in #341
- Use latest norad; stop manually adding instances by @rsheeter in #342
- Update fontations/fea-rs by @cmyr in #343
- Update fontations crates + fea-rs by @cmyr in #344
- [fontir] Use common rust method names in Location by @cmyr in #346
- Use tag instead of name in Location by @rsheeter in #348
- Use display representations when logging errors by @cmyr in #350
- Bump norad and fea-rs by @cmyr in #351
- [fontir] Minor fixups in variations.rs by @cmyr in #353
- Housekeeping: a work should know it's own id by @rsheeter in #356
- Housekeeping: Let Work tell us what ids it completed by @rsheeter in #358
- Update fontations & fea-rs by @cmyr in #360
- Housekeeping: let work tell us dependencies and what it reads/writes by @rsheeter in #359
- bump fea-rs dep to 0.9.1 by @anthrotype in #364
- Include source info when writing logs by @cmyr in #368
- Tiny refactor in main runloop by @cmyr in #370
- Update syn by @cmyr in #366
- Remove most impls of From<&T> by @cmyr in #372
- Update fea-rs/fontations by @cmyr in #374
- Halt runloop when jobs panic by @cmyr in #371
- [ufo2fontir] Fix for optional designspace names by @cmyr in #376
- Update fontations/fea-rs by @cmyr in #379
- must follow fvar axes order when building gvar GlyphDeltas by @anthrotype in #387
- GlyphPathBuilder: support contours starting with offcurves or without oncurves by @anthrotype in #385
- Restore fine-grained glyph work dependencies by @rsheeter in #380
- fontbe/gvar: don't skip glyphs without variations by @anthrotype in #389
- iup_delta_optimize' contour_ends wants endpoint indices, must -1 lengths by @anthrotype in #390
- Restore the ability to produce a meaningful flamegraph by @rsheeter in #391
- Document flamegraph, it's quite handy by @rsheeter in #392
- Script that helps compare build time across branches by @rsheeter in #394
- Use fontations Glyph enum by @cmyr in #382
- Use fontations glyf/loca builder by @cmyr in #383
- bump write-fonts to 0.14.1 by @anthrotype in #401
- Preallocate some buffers based on flamegraph by @rsheeter in #393
- Tweak is_nonspacing_mark_name based on flamegraph by @rsheeter in #395
- Use GDEF table provided by fea-rs by @cmyr in #405
- Generate kern fea and pass to fea-rs by @rsheeter in #373
- [features] Update fea-rs to allow axis unit suffixes by @cmyr in #408
- Add merge_group to on: by @rsheeter in #409
- Generate kerning fea with normalized units by @rsheeter in #410
- Try to parallelize test execution by @rsheeter in #411
- Fix glyph variations for sparse and intermediate masters by @anthrotype in #403
- Add kerning to fea include test to trigger breakage; fix it by @rsheeter in #413
- Manually catch & print errors in main() by @cmyr in #416
- Update to fea-rs floating like a butterfly by @rsheeter in #418
- Fix clippy, format, etc after rustup by @rsheeter in #419
- Prove no outlines take no glyf space by @rsheeter in #424
- Use pub(crate) in fontir/src/serde.rs by @rsheeter in #425
- Generate missing .notdef like ufo2ft by @rsheeter in #423
- Fix MissingAxisTentError when building Oswald by @anthrotype in #427
- leave generated .notdef glyph unmapped in cmap by @anthrotype in #428
- Rename static metadata fields for clarity by @rsheeter in #431
- Housekeeping by @rsheeter in #432
- Update fontations/fea-rs by @cmyr in #433
- avar was wrong if default was min or max value for the axis by @rsheeter in #434
- Bump fea-rs to 0.16.1 by @cmyr in #437
- Add support for anchors to IR and glyphs2fontir by @rsheeter in #438
- Script generating designspaces from .glyphs by @rsheeter in #439
- Capture anchors in glyphs and ufo 2 fontir by @rsheeter in #440
- add requirements.txt for ttx_diff.py by @anthrotype in #444
- add --compile-features=false to disable FEA compilation by @anthrotype in #446
- Improve plist ergonomics by @cmyr in #450
- Support loading from .glyphspackage by @anthrotype in #447
- glyphs-reader: ignore nodes userData by @anthrotype in #452
- Tweak root readme by @rsheeter in #455
- Capture instructions to narrow a flamegraph by @rsheeter in #460
- Update fontc/Cargo.toml by @chrissimpkins in #459
- Add a visualization of thread activity by @rsheeter in #443
- Move consistent transform computation to glyph and avoid allocation by @rsheeter in #462
- Filter out disabled features in glyphs files by @rsheeter in #463
- Update for new delta IUP API by @cmyr in #471
- Improve handling of composite glyph deltas by @cmyr in #472
- skip avar segments when they are all identity mappings by @anthrotype in #470
- Optionally eliminate components with transforms to match gftools by @rsheeter in #480
- ufo2fontir: prefer use instance.stylename by @anthrotype in #481
- skip feature IR job if --compile-features=false by @anthrotype in #482
- use BezPath::reverse_subpaths() from latest kurbo by @anthrotype in #484
- Update verbose flag string by @rsheeter in #485
- Reverse TrueType glyph contour direction by default to match fontmake by @anthrotype in #475
- Add an underscore after capitals in glyph names by @rsheeter in #486
- Further improve generation of safe filenames by @rsheeter in #488
- Parse plists directly into the target structures instead of building a graph of enums first by @rsheeter in #467
- Update README.md by @rsheeter in #491
- Postscript names for UFO sources by @RickyDaMa in #489
- [ttx_diff.py] remove fontmake's --no-production-names flag by @anthrotype in #498
- [ttx_diff.py] pass --no-production-names until supported for both .glyphs & DS by @anthrotype in #500
- Update README.md by @rsheeter in #497
- Don't lose MiscMetadata in serde by @rsheeter in #501
- Move coords to fontdrasil so fea-rs can agree with us on what NormalozedLocation looks like by @rsheeter in #503
- Merge fea-rs repo by @cmyr in #505
- Update fea-lsp dependencies by @cmyr in #512
- [ci] Merge fea-rs actions into main CI workflow by @cmyr in #511
- Add an allowlist for prints and permit a few by @rsheeter in #514
- [ci] Address remaining eprintln statements in fea-rs by @cmyr in #515
- [chore] Update manifests post fea-rs merge by @cmyr in #513
- Remove unused quick-xml by @anthrotype in #518
- fea-rs => fontc coords by @rsheeter in #516
- feature writer api by @rsheeter in #517
- Fixup 'default-run' settings by @cmyr in #521
- Build HVAR (take 2) by @anthrotype in #527
- First step toward marks by @rsheeter in #492
- [fea-rs] Rename gsub/gpos module to gsub/gpos{_builders} by @cmyr in #534
- [fea-rs] Tweak logic for assigning glyph class ids by @cmyr in #536
- [fea-rs] Update fonttools test data files by @cmyr in #540
- Add support for intermediate (aka "brace") layers from Glyphs sources by @anthrotype in #538
- New test file plus instructions to make more by @rsheeter in #543
- Add 'GlyphSet' type to fea-rs to encode the property of a sorted & deduped set of glyphs by @cmyr in #539
- Add test files that restrict glyph export by @rsheeter in #546
- Correct family for WghtVar_NoExport.glyphs so it exports to expected .designspace by @rsheeter in #547
- Make the export status of a glyph available by @rsheeter in #548
- Do not retain glyphs we should not retain by @rsheeter in #549
- Match fontmake defaults for fsType by @rsheeter in #553
- Update README.md by @rsheeter in #554
- Fix MissingGlyphId while building mark feature with a non-export glyph with anchors by @anthrotype in #557
- Push building a lookup up one level by @rsheeter in #560
- [fontc] Ensure feature code is deterministic by @cmyr in #561
- Title for timing elements by @rsheeter in #563
- Capture timing for early stages by @rsheeter in #564
- Directly interfere to start kern sooner by @rsheeter in #562
- [fea-rs] ensure first wins when specific kern rules conflict by @anthrotype in #566
- ensure non-export glyphs get pruned from kerning groups by @anthrotype in #558
- [glyphs-reader] fix a typo by @anthrotype in #570
- Add support for 'Virtual Master' Glyphs.app's custom parameter by @anthrotype in #569
- Don't block on glyph order if you don't have to by @rsheeter in #565
- don't emit IR by default and rename option to --incremental by @anthrotype in #575
- Move construction of kerning and mark structures to feed to fea-rs into separate jobs that can run in parallel by @rsheeter in #567
- make input arg positional, add -o/--output-file option by @anthrotype in #576
- Add GS main branch build CI testing by @chrissimpkins in #574
- [ttx_diff] Run black formatter by @cmyr in #583
- [fontc/args] don't take true|false argument in --incremental by @anthrotype in #580
- [gsbuild] remove superflous --source CLI flag, use positional input source by @anthrotype in #579
- Add tool for generating a normalized text representation of mark/kerning rules by @cmyr in #578
- Add automated clap --version / -V CLI version string support by @chrissimpkins in #587
- Bump OTS testing version to latest by @chrissimpkins in #588
- [fontbe/avar] don't skip no-op segment maps by @anthrotype in #586
- [fontc] More code reuse in fontc tests by @cmyr in #584
- Build builder with 'build' instead of TryInto by @cmyr in #592
- [ttx_diff] fix minor typo by @anthrotype in #595
- [fea-rs] Disable printing in test by @cmyr in #597
- Add verbose debugging version reporting by @chrissimpkins in #590
- [ci] Add OTS tests on GS builds by @chrissimpkins in #589
- [workload] exclude non-runnable jobs when popping items from the run_queue by @anthrotype in #600
- [marks] Add bases for mark2mark lookups by @cmyr in #577
- [fontbe] make cu2qu tolerance relative to UPEM by @anthrotype in #599
- [chore] Rationalize imports by @cmyr in #596
- Tidy up by @rsheeter in #603
- [chore] Update fontations crates by @cmyr in #605
- Note what each crate is for in its readme by @rsheeter in #602
- Use is identity by @cmyr in #606
- Add variable-aware ValueRecord and Anchor types to fea-rs by @cmyr in #598
- Delete SimpleCompile by @rsheeter in #604
- Construct kerning/mark lookup builders direclty by @cmyr in #609
- [features] Improve PreviouslyAssignedClass error by @cmyr in #613
- [fontir] Remove custom serde impl for Kerning by @cmyr in #614
- Remove custom serde impls for fontir::ir module by @cmyr in #615
- [ttx_diff] Get ttx_diff working again by @cmyr in #617
- Allow .glyphs to specify fsType by @rsheeter in #621
- move italic_angle to StaticMetadata; set in post table by @anthrotype in #622
- Use italic_angle to set default hhea caret slope/run by @anthrotype in #623
- [glypsh-reader] fix ParseIntError when custom param has unquoted string by @anthrotype in #626
- Improve error messages in fontc/fontir by @cmyr in #625
- move underline_thickness/position to GlobalMetrics as they are MVAR-iable by @anthrotype in #627
- Remove Access::Custom; it forces table scans to figure out what can run by @rsheeter in #573
- support strikeout/subscripts/superscripts pos/size settings in ir::GlobalMetrics by @anthrotype in #631
- [layout-normalizer] skip if GPOS not present by @anthrotype in #630
- Allow 0.1% of coordinates to differ from fontmake by 1 by @rsheeter in #629
- [fontc] Validate glyph fliter regex at parse time by @cmyr in #624
- Cleanup for the CoordConverter type by @cmyr in #633
- [fontdrasil] Make piecewise_linear_map module private by @cmyr in #634
- [ufo2fontir] Avoid duplicate loading of kerning groups by @cmyr in #636
- Add an error type to the VariationInfo trait by @rsheeter in #635
- use units_per_em for default caret_slope_rise by @anthrotype in #637
- match ufo2ft's default ascender/descender settings by @anthrotype in #638
- Small GlyphName improvements by @cmyr in #645
- Try spreading FE kerning across threads per location by @rsheeter in #642
- Spread BE kerning across threads by @rsheeter in #644
- [ttx_diff] Fix incorrect subtable handling by @cmyr in #650
- [ttx_diff] Fix incorrect path in build script by @cmyr in #651
- [ttx_diff] Group language systems with identical lookups by @cmyr in #653
- [ttx_diff] Actually handle extension lookups by @cmyr in #654
- Fix instability of kerning output by @rsheeter in #655
- Stable name order by @rsheeter in #659
- [fontdrasil] Typed coordinate spaces by @cmyr in #632
- [ci] Fail CI if docs contain broken links by @cmyr in #658
- [ttx_diff] Split up normalizer gpos module by @cmyr in #661
- [ttx_diff] Better handling of pairpos subtables by @cmyr in #662
- [chore] Update write-fonts to 0.21.0 by @cmyr in #665
- [ttx_diff] Better handling of mark pos subtables by @cmyr in #663
- layout-normalizer: fix clippy, VariationStoreBuilder::new(0) by @anthrotype in #667
- Add MVAR test files exercising all global metrics by @anthrotype in #666
- build MVAR table from variable GlobalMetrics by @anthrotype in #648
- [ttx_diff] Less type erasure in layout-normalizer by @cmyr in #669
- CI to expose build instability by @rsheeter in #656
- bump write-fonts to 0.21.1 by @anthrotype in #673
- make clippy happy again by @anthrotype in #674
- Fix the order of BE kern gathering by @rsheeter in #678
- Add repeatable-builds.sh and test Oswald as well by @anthrotype in #676
- [ttx_diff]: Normalize kern rules by @cmyr in #670
- [ttx_diff] Normalize marks by @cmyr in #671
- [chore] Update fea-rs tests fonttools version by @cmyr in #679
- [fea-rs] Fixups for ttx_test util by @cmyr in #681
- [fea-rs] Tweak ligature sort order by @cmyr in #680
- Update to new write-fonts version by @cmyr in #683
- Add fontra2fontir without an actual implementation by @rsheeter in #685
- [fea-rs] Remove 'rel_pos' from Node by @cmyr in #687
- Find the glyphs of a .fontra by @rsheeter in #686
- [fea-rs] Remove use of Cell from Node by @cmyr in #689
- Serde type for the fontra font-data.json file by @rsheeter in #690
- Make a rudimentary static metadata for .fontra by @rsheeter in #691
- [fontir] Rename Features -> FeaturesSrc by @cmyr in #694
- [fea-rs] rollup of changes to support more manual control from fontc by @cmyr in #693
- Split feature work into separate parsing & compilation steps by @cmyr in #695
- [fontbe] Fix path for FeaturesAst by @cmyr in #699
- Parse Fontra glyphs as far as contours by @rsheeter in #692
- use the latest fontmake 3.8.0 by @anthrotype in #702
- fea-rs: conditional compilation of GPOS & GSUB by @cmyr in #703
- Revert "use the latest fontmake 3.8.0" by @anthrotype in #704
- [fontbe] Write out glyph order when --emit-debug is set by @cmyr in #705
- Start to parse Fontra components by @rsheeter in #701
- [fea-rs] Fixup test-data/README.md by @cmyr in #708
- requirements.txt: update fontmake to 3.8.1 by @anthrotype in #707
- [fea-rs] Update fontools test cases by @cmyr in #710
- [fontbe] Validate FEA AST at parse time by @cmyr in #706
- Try to make field matching in fontra more obvious with newtypes. Don't reinvent chunks. by @rsheeter in #711
- [clippy] Push the rock back up the hill by @cmyr in #712
- [ttx_diff] Use new lookup API in normalizer by @cmyr in #714
- Make a UFO-only compile run through by @rsheeter in #716
- [fea-rs] Stop printing ttx version in test by @cmyr in #715
- Correct case of subfamily name by @simoncozens in #719
- [fea-rs] Support inline 'by Null' in contextual sub by @cmyr in #718
- [ttx_diff] skip STAT if it is missing by @anthrotype in #722
- [fea-rs] Improve glyph class parsing error messages by @cmyr in #720
- Correct ordering of transform coefficients by @simoncozens in #721
- [fea-rs] Remove ClassId, add gdef classes to output by @cmyr in #723
- [chore] Fix deprecation in chrono crate by @cmyr in #726
- Add KernGroup type by @cmyr in #725
- Kern alignment by @cmyr in #727
- [chore]: Update fontations crates by @cmyr in #729
- [kerning] Prune nop deltas by @cmyr in #728
- [fontbe] move marks/kern modules into ::features by @cmyr in #730
- [marks] Prune nop deltas from marks by @cmyr in #732
- [fontc] update skrifa test to new outline API by @dfrg in #734
- Split kerning by script by @cmyr in #731
- set lookupflag and mark filtering set for kerning lookups by @cmyr in #733
- [chore] Bump fontations crates by @cmyr in #735
- Guard against empty parent path by @cmyr in #737
- [ttx_diff] Fix logic bug in normalizer by @cmyr in #739
- Remove missed dbg statement by @cmyr in #740
- [ttx_diff] Make generated fonts easier to find by @cmyr in #738
- [kern] Use LookupFlag constants by @cmyr in #736
- Update to write-fonts 0.25.0, handling the new cmap conflict by @rictic in #742
- [kerning] Remove second record from PairPosEntry by @cmyr in #741
- [cleanup] Delete some dead code by @cmyr in #743
- [kerning] Pre-validate kerning groups & pairs by @cmyr in #744
- [clippy] Push the rock back up the hill by @cmyr in #747
- Add a graph of dependencies to the README by @rictic in #746
- [fontbe] Fixup errors for variable metrics by @cmyr in #745
- [kerning] Delay decomposing kern rules by @cmyr in #749
- [fontir] Rename KernParticipant -> KernSide by @cmyr in #751
- Minimize test case for fontra multi-codepoint by @rsheeter in #754
- remove the GlyphName defined in fea-rs, and use the one in fontdrasil by @qxliu76 in #758
- [fontbe] Minor marks cleanup by @cmyr in #759
- promote string_to_filename to fontdrasil and use it instead of safe_filename by @qxliu76 in #761
- Handle multiple codepoints in .fontra files, as well as axes with a values array instead of min and max by @rictic in #748
- Move anchor name parsing into fontir by @cmyr in #762
- set head.macStyle from OS2 selection_flags by @qxliu76 in #763
- [ttx_diff] Buffer writing from layout normalizer by @cmyr in #750
- [marks] Move marks logic into a context struct by @cmyr in #764
- [g2f] Use smolstr when parsing glyphs.app data by @cmyr in #765
- [glyphs-reader] Remove pub from raw types by @cmyr in #770
- [fontc] Simplify timing color code by @cmyr in #772
- The continued adventures of GlyphData by @cmyr in #773
- [glyphs] Store codepoints in glyph struct by @cmyr in #775
- Add test files to reproduce issue #407 by @anthrotype in #776
- [fontdrasil] Add agl module to fontdrasil by @cmyr in #778
- [glyphs] track category info in glyphs by @cmyr in #777
- [glyphs] Parse 'anchor' field of glyph components by @cmyr in #783
- Add work id aliases for "all of variant" types by @cmyr in #785
- Anchor propagation by @cmyr in #782
- clippy day by @cmyr in #788
- [marks] Store GDEF categories in StaticMetadata by @cmyr in #786
- [fea] Move PendingLookup into fea-rs by @cmyr in #791
- More marks progress by @cmyr in #789
- [ttx_diff] Add basic support for mark2lig rules by @cmyr in #792
- Mark2mark filtering sets/lookupflags by @cmyr in #793
- [ttx_diff] Split layout-normalizer into bin & lib by @cmyr in #752
- Add release workflow to build and publish source and binary artifacts to Github and PyPI by @anthrotype in #795
- [fontbe] Impl FeatureProvider for kern/mark IR types by @cmyr in #796
- Mark testing harness by @cmyr in #797
- [marks] Add tests for using GDEF block from user FEA by @cmyr in #799
- [marks] Fix bad boolean logic in find_mark_glyphs by @cmyr in #798
- [glyphs] Add test for anchor propagation on digraph by @cmyr in #790
- [ttx_diff] Better normalization of Mark2Lig by @cmyr in #803
- [marks] Parse empty ligature anchors like '_3' by @cmyr in #802
- [ttx_diff] Try getting glyph names from post table by @cmyr in #808
- add (failing) test case to repro #407 by @anthrotype in #817
- [fontbe] Fix incorrect feature deltas w/ sparse glyph sources by @anthrotype in #779
- [ufo2fontir] fix non-deterministic glyph order when not explicitly provided by @anthrotype in #816
- Update manifests and lib docs by @cmyr in #818
- Rename plist_derive -> ascii_plist_derive by @cmyr in #819
- Rename layout-normalizer -> otl-normalizer by @cmyr in #820
- [chore] Bump version on fea-rs by @cmyr in #822
- [chore] Ensure manifests contain all required keys by @cmyr in #823
- [chore] Set repository field in otl-normalizer manifest by @cmyr in #824
- [fontbe] Get off patched version of icu_properties by @cmyr in #825
New Contributors
- @anthrotype made their first contribution in #13
- @dfrg made their first contribution in #253
- @madig made their first contribution in #282
- @chrissimpkins made their first contribution in #459
- @RickyDaMa made their first contribution in #489
- @simoncozens made their first contribution in #719
- @rictic made their first contribution in #742
- @qxliu76 made their first contribution in #758
Full Changelog: https://github.com/googlefonts/fontc/commits/fontc-v0.0.1