A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/rmagick/rmagick

https://github.com/rmagick/rmagick - RMagick 7.1.4

[!IMPORTANT]
Four kinds of input that used to be accepted now raise ArgumentError.

Three of them were ways for a string RMagick documents as a value to be read back as part of an ImageMagick program: an opacity of "1%\nimage Over 0,0 80,80 'secret.png'\n1%", a Draw#pattern name carrying the same payload, and a Caption property of "@/etc/passwd" arriving in the metadata of an uploaded image. ImageMagick executed the injected primitive, or read the named file and drew its contents into the returned image. Image#dispatch is the fourth: a map containing a NUL byte is now rejected rather than sized with the byte length while ImageMagick fills only what precedes the NUL.

Image#export_pixels_to_str with Magick::LongPixel also returns half as many bytes on LP64, and Image#import_pixels takes a buffer of that size. RMagick reserved sizeof(unsigned long) per element while ImageMagick reads and writes unsigned int, so the second half of the string was never written and carried whatever the heap held. Image#colormap returned uninitialized memory the same way, as the previous colour of an entry it had just created.

Breaking Changes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-1-3...RMagick_7-1-4

- C++
Published by Watson1978 about 1 month ago

https://github.com/rmagick/rmagick - RMagick 7.1.3

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-1-2...RMagick_7-1-3

- C++
Published by Watson1978 about 1 month ago

https://github.com/rmagick/rmagick - RMagick 7.1.2

Bug Fixes

New Contributors

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-1-1...RMagick_7-1-2

- C++
Published by Watson1978 about 1 month ago

https://github.com/rmagick/rmagick - RMagick 7.1.1

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-1-0...RMagick_7-1-1

- C++
Published by Watson1978 2 months ago

https://github.com/rmagick/rmagick - RMagick 7.1.0

[!IMPORTANT]
Draw#annotate and Draw#get_type_metrics no longer interpret the text they are given. A %[...] or %x escape is now drawn as written instead of being replaced.

Build the string in Ruby instead — everything those escapes provided has a direct accessor:

# before
img.annotate(gc, 0, 0, 10, 20, '%wx%h')

# after
img.annotate(gc, 0, 0, 10, 20, "#{img.columns}x#{img.rows}")

%[width]/%w → Image#columns, %[height]/%h → Image#rows, %f/%d → Image#filename, %m → Image#format, %b → Image#filesize, %[EXIF:*] and other properties → Image#[], %[artifact:KEY] → Image#artifact (new in this release), %[mean] → Image#channel_mean, %[pixel:p{x,y}] → Image#pixel_color, %[fx:...] → Image#fx or plain Ruby.

The interpolation was never documented, and leaving it in place meant that passing user-supplied text to annotate also handed that text to an expression evaluator, a pixel and metadata reader, and an unbounded CPU sink — on a 1500x1500 image, a 10 KB caption of %[mean] took 78 seconds. It also corrupted ordinary text: %d expanded to the directory the image had been read from, so a caption of "%d items" was drawn as /srv/app/uploads items.

Upgrading

  • Text starting with @ is drawn instead of being read from that file. annotate(gc, 0, 0, 0, 20, '@notes.txt') now draws @notes.txt; read the file yourself if that is what you wanted.
  • RVG path data is validated against the SVG path grammar. canvas.path(d) raises ArgumentError if d contains anything outside MmZzLlHhVvCcSsQqTtAa, digits, .,+-eE and whitespace.
  • Pathnames containing a NUL byte raise ArgumentError instead of being silently truncated.
  • Draw#clip_path and Draw#encoding now quote their argument in the generated MVG, and values interpolated by Draw#enquote have " and \ escaped. Rendering is unchanged; this is only visible if you compare Draw#inspect output.
  • Text containing a backslash is now drawn as written. Previously a trailing \ escaped the closing delimiter of the MVG token, so the text was mangled.

Breaking Changes

Improvements

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-5...RMagick_7-1-0

- C++
Published by Watson1978 2 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.5

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-4...RMagick_7-0-5

- C++
Published by Watson1978 3 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.4

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-3...RMagick_7-0-4

- C++
Published by Watson1978 4 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.3

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-2...RMagick_7-0-3

- C++
Published by Watson1978 4 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.2

Bug Fixes

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-1...RMagick_7-0-2

- C++
Published by Watson1978 4 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.1

Bug Fixes

  • Image_gray_q changes the colour space of the image, instead of returning whether it's grayscale (#1788)
  • Check for errors from ParseGeometry() (#1786)
  • Fail explicitly when trying to install on JRuby (#1784)

New Contributors

Full Changelog: https://github.com/rmagick/rmagick/compare/RMagick_7-0-0...RMagick_7-0-1

- C++
Published by Watson1978 4 months ago

https://github.com/rmagick/rmagick - RMagick 7.0.0

Breaking Changes

  • Drop support for Ruby 3.1 and older (#1749)
  • Drop support for old ImageMagick (6.8.x and 7.0.x) (#1748)

Improvements

  • Modernize argument parsing using keyword arguments API (#1754)
  • Fix floating-point truncation in Magick::TypeMetric coordinates (#1765)
  • Fix floating-point truncation in Magick::ChromaticityInfo coordinates (#1241)

- C++
Published by Watson1978 5 months ago