Most of our efforts have shifted to improving the API for a 0.5 release, for which cleanups and refactorings are landing on the 0.4.x branch.
The most significant changes in this release are two sets of deprecations.
We deprecated all timestamp-related methods on NaiveDateTime. The reason is that a timestamp is defined to be in UTC. The NaiveDateTime type doesn't know the offset from UTC, so it was technically wrong to have these methods. The alternative is to use the similar methods on the DateTime<Utc> type, or from the TimeZone trait.
Converting from NaiveDateTime to DateTime<Utc> is simple with .and_utc(), and in the other direction with .naive_utc().
The panicking constructors of TimeDelta (the new name of the Duration type) are deprecated. This was the last part of chrono that defaulted to panicking on error, dating from before rust 1.0.
A nice change is that NaiveDate now includes a niche. So now Option<NaiveDate>, Option<NaiveDateTime> and Option<DateTime<Tz>> are the same size as their base types.
format::Numeric and format::Fixed are marked as non_exhaustive. This will allow us to improve our formatting and parsing support, and we have reason to believe this breaking change will have little to no impact on users.
usvg::WriteOptions::preserve_text to control how usvg generates an SVG.
usvg::Image::abs_bounding_box
Changed
All types in usvg are immutable now. Meaning that usvg::Tree cannot be modified
after creation anymore.
All struct fields in usvg are private now. Use getters instead.
All usvg::Tree parsing methods require the fontdb argument now.
All defs children like gradients, patterns, clipPaths, masks and filters are guarantee
to have a unique, non-empty ID.
All defs children like gradients, patterns, clipPaths, masks and filters are guarantee
to have userSpaceOnUse units now. No objectBoundingBox units anymore.
usvg::Mask is allowed to have no children now.
Text nodes will not be parsed when the text build feature isn't enabled.
usvg::Tree::clip_paths, usvg::Tree::masks, usvg::Tree::filters returns
a pre-collected slice of unique nodes now.
It's no longer a closure and you do not have to deduplicate nodes by yourself.
usvg::filter::Primitive::x, y, width and height methods were replaced
with usvg::filter::Primitive::rect.
Split usvg::Tree::paint_servers into usvg::Tree::linear_gradients,
usvg::Tree::radial_gradients, usvg::Tree::patterns.
All three returns pre-collected slices now.
A usvg::Path no longer can have an invalid bbox. Paths with an invalid bbox will be
rejected during parsing.
All usvg methods that return bounding boxes return non-optional Rect now.
No NonZeroRect as well.
usvg::Text::flattened returns &Group and not Option<&Group> now.
usvg::ImageHrefDataResolverFn and usvg::ImageHrefStringResolverFn
require fontdb::Database argument.
All shared nodes are stored in Arc and not Rc<RefCell> now.
resvg::render_node now includes filters bounding box. Meaning that a node with a blur filter
no longer be clipped.
Replace usvg::utils::view_box_to_transform with usvg::ViewBox::to_transform.
Rename usvg::XmlOptions into usvg::WriteOptions and embed xmlwriter::Options.
Removed
usvg::Tree::postprocess() and usvg::PostProcessingSteps. No longer needed.
usvg::ClipPath::units(), usvg::Mask::units(), usvg::Mask::content_units(),
usvg::Filter::units(), usvg::Filter::content_units(), usvg::LinearGradient::units(),
usvg::RadialGradient::units(), usvg::Pattern::units(), usvg::Pattern::content_units()
and usvg::Paint::units(). They are always userSpaceOnUse now.
usvg::Units. No longer needed.
Fixed
Text bounding box is accounted during SVG size resolving.
Previously, only paths and images were included.
Font selection when an italic font isn't explicitly marked as one.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the cli group with 4 updates: chrono, clap, reqwest and usvg.
Updates
chrono
from 0.4.34 to 0.4.35Release notes
Sourced from chrono's releases.
... (truncated)
Commits
9fdb596
Prepare 0.4.359e667b6
Deprecate panickingTimeDelta
constructors2c1b0be
Tests: replaceTimeDelta::milliseconds
withtry_milliseconds
2bf3302
Tests: replaceTimeDelta::seconds
withtry_seconds
f93508f
Tests: replaceTimeDelta::minutes
withtry_minutes
9fc931a
Tests: replaceTimeDelta::hours
withtry_hours
9f23c08
Tests: replaceTimeDelta::days
withtry_days
e8f9b5e
Tests: replaceTimeDelta::weeks
withtry_weeks
51a1aa2
Tests: useDays
type when it is more appropriate thanTimeDelta
4251bd1
ReplaceTimeDelta::seconds
withtry_seconds
Updates
clap
from 4.5.1 to 4.5.2Release notes
Sourced from clap's releases.
Changelog
Sourced from clap's changelog.
Commits
f65d421
chore: Release886b272
docs: Update changelog3ba4297
Merge pull request #5386 from amaanq/static-var-name2aea950
fix: Use SCREAMING_SNAKE_CASE for static variableauthors
690f555
Merge pull request #5382 from clap-rs/renovate/pre-commit-action-3.xa2aa644
chore(deps): update compatible (dev) (#5381)c233de5
chore(deps): update pre-commit/action action to v3.0.1d0028d7
Merge pull request #5371 from BenWiederhake/dev-fix-link-command-trailing_var...0076cac
fix(builder): Don't doc-link to undocumented itemUpdates
reqwest
from 0.11.24 to 0.11.25Release notes
Sourced from reqwest's releases.
Changelog
Sourced from reqwest's changelog.
Commits
7e77674
v0.11.25ba550f0
docs: change no-default-features to default-features (#2154)68547a0
chore: blocking doesn't need multi-threaded (#2146)e639bdc
fix: Patchsystem-configuration
version (#2130)ba9e588
Fix Certificate::from_pem_bundle (#2129)2d6eb24
chore: Inline format args (#2024)05c3982
chore: Use edition 2021 panics (#2122)05996d8
chore: edition 2021 (#2023)Updates
usvg
from 0.37.0 to 0.40.0Release notes
Sourced from usvg's releases.
Changelog
Sourced from usvg's changelog.
... (truncated)
Commits
6b973b2
Version bump.b50e3c6
Renameusvg::XmlOptions
intousvg::WriteOptions
.db4904d
Update changelog.17708a9
Update usvg readme.20c8dcc
Fix build.cadb172
Replaceusvg::utils::view_box_to_transform
withusvg::ViewBox::to_transform
.782948f
Try to preserve original gradient and pattern objects when converting units.e042024
Gradients and patterns are always inuserSpaceOnUse
units now.6af096e
Use layer bbox during individual nodes rendering.1961564
Fix defs id generation.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show