vgo-plugin
(com.jzbrooks.vgo.plugin
) no longer requires a particular version of Android Gradle Plugin. Note::vgo
is now an abstract implementation of the tool which does not assume either a cli or plugin context. CLI related logic has been relocated into:vgo-cli
.
- Conversions without a specified output file will write a file the file extension corresponding to the format.
- Decimal separators are locale-invariant.
- Crash when using the cli to convert an svg containing a clip path to vector drawable.
- Support AGP 8.7.0. This is a stop-gap solution which will be improved in #89.
- Validate binary compatibility of vgo-core's API
- Rolled back the JVM requirement to 17
- A bug that would sometimes introduce a grouping comma into a large number, breaking path data. This most often occurred in the convert curves to arcs optimization when an arc with a large radius was more compact than the corresponding Bézier curve.
- Thread safety issues that prevented the
shrinkVectorArtwork
task from being executed in parallel in a highly-modularized parallel Gradle build.
- A crash when running
shrinkVectorArtwork
in a highly-modularized parallel Gradle build
- Gradle plugin hangs for projects with no vector drawables
- More robust SVG → vector conversions by Android Studio tools (#47)
- More compact printing of 2D coordinates when y < 0 for vector drawables
- In rare cases, subpath start points were tracked incorrectly which resulted in a crash (#57)
- Disabled
ConvertCurvesToArcs
until some edge cases can be worked out (#65)
- New: Simplified optimization machinery with
ElementVisitor
- Improvement:
MergePaths
no longer requires its own tree traversal - Improvement: Attribute values omit leading zeros where possible
- Fix: theme referenced colors like
?attrs/dark
no longer cause crashes - Upgrade: Build tools
- Fixed: Vector Drawable shorthand hex colors (like #FFF) are properly handled
- Fixed: Groups that wrap clip paths are no longer removed
- New, breaking(vgo-core): Structured graphic element attributes.
- This greatly simplifies the conversions between formats
- Unstructured attributes will be dropped during conversion between formats
- Improvement, breaking(vgo): Unified the clip path implementation
- Improvement, breaking(vgo): Format-specific implementations of optimizations have been traded for format independent implementations, so they can be more easily used by new formats
- Improvement: The new implementation of the bake transformations optimization operates in many more situations for svg compared to the previous implementation
- Improvement: Remove redundant commands in situations where the command is effectively but not precisely redundant
- Fixed: Redundant move commands are removed
- Fixed: Test failures on Windows due to path handling
- Upgrade: Build with Kotlin 1.5.10
- Added: A new type for the
shrinkVectorArtwork
task
- Added: Gradle plugin
- Improved: Reworked the gradle modules to better be published as a library (vgo-core) and thin application wrapper (vgo).
- Added: Sonatype publishing
- Added: Collapse multiple Bézier curves into elliptical arcs when possible
- Improvement: Target JVM 11
- Improvement: Show filenames with statistics with multiple file inputs and
--stats
- Improvement: Remove Kotlin metadata from the output jar
- Fixed: Temporarily removed an optimization that distorted some images
- Fixed: Some images with curves that lie on a circle omit any representation of that circle in the output
- Fixed: Modifying files in-place sometimes results in destroying non-vector files.
- Improvement: Resort to distribution via a fat jar. Requires managing fewer files and results in a smaller installation since R8 can operate on classes from dependencies as well.
- Improvement: Use R8 for optimization. R8 produces a slightly smaller jar and in some cases faster code as well.
- Fixed: A crash when running on a file in the current directory
- Improvement: Report an error when an input file doesn't exist
- New: Remove redundant close path commands
- Improvement: Use the Gradle Application Plugin to build application distrobutions, simplifying installation and making running the tool a little simpler.