Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update mini_magick 4.13.2 → 5.0.1 (major) #1520

Merged
merged 1 commit into from
Aug 5, 2024

Conversation

depfu[bot]
Copy link
Contributor

@depfu depfu bot commented Aug 5, 2024

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ mini_magick (4.13.2 → 5.0.1) · Repo · Changelog

Release Notes

5.0.1

  • MiniMagick::Image#write doesn't delete the internal tempfile anymore, which restores use cases like:

    image = MiniMagick::Image.open("...")
    image.resize("500x500")
    image.write("foo.jpg")
    image.blur
    image.write("bar.png")
  • Prevented MiniMagick::Image#to_ary being called by ruby in certain cases, such as [image].flatten(1).

5.0.0

Improvements

  • New class method shorthands were added for the tool API:

    # BEFORE
    MiniMagick::Tool::Convert.new { |convert| ... }
    MiniMagick::Tool::Identify.new { |convert| ... }
    # ...
    

    # AFTER
    MiniMagick.convert { |convert| ... }
    MiniMagick.identify { |identify| ... }
    # ...

  • Image#write now deletes the underlying tempfile if Image.open was used, instead of relying on the tempfile to eventually be garbage collected.

Backwards compatibility

  • Removed official GraphicsMagick support. GraphicsMagick can be used by setting cli_prefix:

    MiniMagick.configure do |config|
      config.cli_prefix = "gm"
    end

    Some features won't be supported, such as MiniMagick.timeout (GraphicsMagick doesn't support time limits), Image#data (GraphicsMagick doesn't support JSON image details) and Image#exif (returns different format).

    As a result, MiniMagick.cli and MiniMagick.processor configuration has been removed as well.

  • MiniMagick::Image and MiniMagick.convert now use magick instead of the deprecated magick convert on ImageMagick 7. This should be backwards compatible, but there might be small differences in options and behavior.

  • Removed deprecated posix-spawn shell backend, along with MiniMagick.shell_api configuration.

    Ruby 2.x has long used vfork, so there is no performance advantage of using posix-spawn. Additionally, Ruby 3.x has switched to non-blocking pipes, which should resolve deadlocks people experienced with Open3. See #558 for more details.

  • Removed obsolete Image#run_command.

  • Removed deprecated Image#mime_type, as it wasn't accurate.

    MIME type from file content should be determined either using Marcel or MimeMagic, or mime-types or MiniMime using Image#type.

  • The MiniMagick::Tool::* classes have been deprecated in favor of the class-level interface.

  • The MiniMagick.timeout configuration now uses the native ImageMagick timeout environment variable $MAGICK_TIME_LIMIT. This variable doesn't support timeouts lower than 1 second.

  • The MiniMagick.whiny configuration has been renamed to MiniMagick.errors.

  • Images are no longer automatically validated on Image.open, Image.read or Image.create.

  • The deprecated Image#details method has been removed in favor of the more reliable Image#data.

  • The Image#respond_to_missing? method has been removed, meaning that Image#respond_to? will return false for ImageMagick option methods.

    As a result, the undocumented MiniMagick::Tool.option_methods method has been removed as well, along with the no-op MiniMagick.reload_tools.

  • Removed the obsolete MiniMagick.processor_path configuration, which as mostly an alias for MiniMagick.cli_path.

  • Removed the deprecated MiniMagick.debug configuration in favor of MiniMagick.logger.level = Logger::DEBUG.

  • Removed the unused MiniMagick.validate_on_write configuration.

  • Additional Pathname#open or URI#open options for Image.open need to be passed in as keyword arguments instead of a hash.

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu bot added the depfu label Aug 5, 2024
@hennevogel hennevogel merged commit ad6e0e4 into master Aug 5, 2024
7 checks passed
@depfu depfu bot deleted the depfu/update/mini_magick-5.0.1 branch August 5, 2024 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant