Releases: linebender/norad
Releases · linebender/norad
v0.10.0
v0.9.0
What's Changed
- LayerSet: add retain & remove_empty_layers by @RickyDaMa in #285
- Update custom whitespace API by @cmyr in #289
- Add
LayerSet::get_or_create_layer
by @RickyDaMa in #291
Full Changelog: v0.8.0...v0.9.0
v0.8.0
Support for reading design spaces, and a few smaller tweaks.
What's Changed
- Ignore
path_set
when equality testing LayerSet by @madig in #265 - Take glyph name crate-public by @madig in #267
- impl Default for Os2WidthClass by @RickyDaMa in #273
- Add a basic designspace parser by @rsheeter in #272
- Finer grained control over layer loading by @cmyr in #280
- Make name-to-file-name conversion functions public by @cmyr in #282
- Fix rustdoc complaints by @cmyr in #284
- Use IndexSet instead of Vec for codepoints by @cmyr in #283
New Contributors
- @RickyDaMa made their first contribution in #273
- @rsheeter made their first contribution in #272
Full Changelog: v0.7.0...v0.8.0
v0.7.0
User Visible Changes
- Rewrote the entire error hierarchy to be specific to the operation at hand instead of having one big error type for everything.
- Glyph names, layer names, group names and kerning entries now use
Name
instead ofString
to enforce UFO restrictions on what can be contained in a name. - The DataRequest builder API now passes back
Self
instead of a mutable reference, for writing "one-liners". - All public items should now have documentation text attached to them.
- The
norad::util
module is private for now. - Minor API changes in
NonNegativeIntegerOrFloat
,IntegerOrFloat
is just anf64
now. Font.data_request
is private for now.- Load and save methods apart from those in
Font
andGlyph
are now private. Font::get_glyph()
,Layer::get_glyph()
,Layer::remove_glyph()
andLayer::iter
now return&Glyph
without theArc<>
wrapper unless thedruid
feature is enabled; some methods got a_raw
counterpart for explicitly getting behind theArc<>
wrapper then.Image::file_name()
is now a getter for the underlying privatefile_name
field.- On saving, font parts other than glyphs are validated up-front, to reduce the chance of erroring out half-way through saving.
Color
's fields are now private.- Layer renaming is more strict now and catches things forbidden by the spec.
- Minor GLIF versions are now read.
Identifier
's API should now mostly matchName
's.
What's Changed
- Refactor read and write configurations by @chrissimpkins in #201
- Update public API docs by @chrissimpkins in #197
- Error tweaks by @cmyr in #209
- Use LayerInfo struct to deserialize layerinfo.plist by @madig in #214
- Make util module pub(crate) by @cmyr in #215
- Minor reorganization by @cmyr in #216
- Use thiserror by @madig in #211
- Tweak docs and API for shared numeric types by @cmyr in #217
- Tweak Font object docs by @cmyr in #220
- Remove
write_plist_value_to_file
by @madig in #228 - Remove IntegerOrFloat by @cmyr in #226
- Take some load/save methods private by @madig in #229
- Simplify Glyph.load_object_libs with a macro by @madig in #231
- Rejig error hierarchy by @madig in #224
- Cut down builder by @madig in #235
- Undo Error for ErrorKind by @madig in #236
- Only store Arc if 'druid' feature is enabled by @cmyr in #234
- Miscellaneous changes by @madig in #239
- Name type and related API changes by @cmyr in #240
- Protect Image.file_name by @madig in #243
- Validate some structures up front by @madig in #244
- Use our errors in custom deserialize functions by @madig in #245
- Move/clean up some tests by @madig in #246
- Harden Color by @madig in #247
- Check that some blue zone lists are pairs by @madig in #249
- Stricter layer renaming handling by @madig in #254
- Remove LayerSet::get_or_create by @madig in #255
- Implement full user name to file name conversion by @madig in #251
- Remove LayerSet::new by @madig in #256
- Add minor version support to GlifVersion by @cmyr in #241
- Use Name for glyph parts by @madig in #257
- Make code for Identifier match Name by @madig in #259
- Update manifest for v0.7.0 by @cmyr in #258
- Implement FromStr for Name by @madig in #260
- Use Name instead of String in Groups and Kerning by @madig in #261
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- Handle UFO data and images v2 by @madig in #180
- Prepare 0.6.0 by @cmyr in #183
- Use f64 instead of f32 everywhere by @madig in #184
- Implement MetaInfo to spec by @madig in #185
- Font::load: First check data request, then path by @madig in #186
- Add Glyph components public methods by @chrissimpkins in #181
- Make all Font fields non-optional by @madig in #187
- MetaInfo: creator is optional now by @madig in #190
- Update pretty-assertions by @cmyr in #193
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Normalize line endings
What's Changed
- Remove Mutator Sans git submodule configuration by @chrissimpkins in #171
- Add glif contour point PointType enum Display trait by @chrissimpkins in #174
- Serialize consistent cross-platform line endings across plist, glif, and feature files by @chrissimpkins in #172
- Bump crate version to 0.5.1 by @cmyr in #178
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
- Add transform() method to ContourPoint by @simoncozens in #135
- get_path is actually pretty handy, don't hide it by @simoncozens in #136
- Rename ufo.rs to font.rs by @cmyr in #140
- Fixup load api by @cmyr in #141
- Minor refactoring by @madig in #139
- font.rs deprecation notice typo fix by @chrissimpkins in #142
- Add custom missing mandatory UFO path error types & missing mandatory UFO path checks by @chrissimpkins in #146
- Push the rock back up the hill by @cmyr in #151
- Remove examples/open_ufo, improve examples/load_save by @cmyr in #149
- Use rayon when serializing glyphs by @cmyr in #150
- [ci] Run clippy against all targets, check docs by @cmyr in #154
- These were for debugging, committed by mistake by @cmyr in #155
- Update plist to 1.2, sort keys on save by @cmyr in #147
- Allow specifying whitespace on save by @cmyr in #148
- Fix bug where glyphs were saved twice by @cmyr in #160
- Add XML declaration custom single/double quote style support in glif and *.plist files by @chrissimpkins in #157
- Update to plist 1.2.1 by @cmyr in #163
- Make all FontInfo structs accessible by @madig in #165
- Remove submodules by @cmyr in #166
- Add Windows CI support by @chrissimpkins in #161
- Cleanup docs and exports by @cmyr in #169
- Tweak README by @cmyr in #168
- Bump crate version, remove deprecations by @cmyr in #167
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
- Use enums to keep state by @madig in #79
- Properly account for identifier and lib arguments by @madig in #82
- Make kurbo a direct optional dependency by @madig in #86
- Remove comment-triggering from bloatcmp by @cmyr in #88
- Wrong name for UFOs by @benkiel in #90
- Add UfoDataRequest by @ctrlcctrlv in #53
- Fix clippy lints by @madig in #94
- Simplify Glyph by @madig in #93
- Move Guideline to own file by @madig in #97
- Move Identifier to own file by @madig in #98
- I don't think the fontinfo and glyph mods need to be pub? by @madig in #99
- Rename Ufo to Font by @cmyr in #103
- LayerSet + other layer-related tweaks by @cmyr in #106
- Make fontinfo module public by @cmyr in #112
- Add Layer::clear and ::get_or_create by @madig in #113
- Limit Color::to_rgba_string precision by @madig in #117
- Convenience methods for accessing global guidelines by @cmyr in #120
- Prepare for 0.4.0 by @cmyr in #122
- Implement to_kurbo on Contour by @simoncozens in #116
- Run clippy with the --all-features flag in CI by @cmyr in #129
- Error fixups by @cmyr in #128
- Layer API improvements and fixups by @cmyr in #121
- Serialization normalizations by @madig in #126
- Serialize height before width by @cmyr in #133
- Overwrite meta.creator on save by @cmyr in #134
New Contributors
- @benkiel made their first contribution in #90
- @ctrlcctrlv made their first contribution in #53
Full Changelog: v0.3.1...v0.4.0
v0.3.1
What's Changed
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
- Implement Glif v1 upconversion and minor fixups by @madig in #51
- Upconvert UFO v1 and v2 fontinfo and feature data by @madig in #38
- Glif serialization: get closer to ufonormalizer by @madig in #52
- Consolidate Color methods to shared_types by @madig in #54
- Use #[non_exhaustive] on struct Ufo by @madig in #55
- Add Glyph::advance_width convenience method by @cmyr in #57
- More rigorous validation of Identifiers by @cmyr in #58
- Add sanity check for outlines, add point pen by @madig in #56
- Move Identifier hashing into Self's Impl by @madig in #59
- Add bloatcmp to CI by @cmyr in #61
- Load and write out lib section of glif files by @cmyr in #65
- Split OutlineBuilder from GlyphBuilder by @madig in #60
- Add fontinfo guideline identifier validation by @madig in #66
- WIP: implement layerinfo loading by @madig in #67
- Serialize kerning values as integers if possible by @madig in #68
- Add normalization example by @madig in #69
- Protect various objects' identifier and lib by @madig in #72
- Handle object libs by @madig in #75
- Prepare for v0.3.0 by @cmyr in #76
Full Changelog: v0.2.0...v0.3.0