Skip to content

feat(registry): Add imagemagick github backend entry for Windows binary releases#8476

Closed
iki wants to merge 5 commits into
jdx:mainfrom
iki:fix/fix-imagemagick-on-windows
Closed

feat(registry): Add imagemagick github backend entry for Windows binary releases#8476
iki wants to merge 5 commits into
jdx:mainfrom
iki:fix/fix-imagemagick-on-windows

Conversation

@iki

@iki iki commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #8386 discussion on imagemagick, where #8388 fixed the message and this PR aims to add a github binary releases backend to imagemagick registry entry to allow installing on Windows.

Currently, I'm able to install imagemagick on Windows from its binary releases on https://github.com/ImageMagick/ImageMagick/releases using the following entry in ~/.config/mise/config.toml:

"github:ImageMagick/ImageMagick" = { version = "latest", os = ["windows"], platforms = { windows-x64 = { asset_pattern = "ImageMagick-*-portable-Q16-HDRI-x64.7z" }, windows-x86 = { asset_pattern = "ImageMagick-*-portable-Q16-HDRI-x86.7z" }, windows-arm64 = { asset_pattern = "ImageMagick-*-portable-Q16-HDRI-arm64.7z" } } }

Here's an attempt to define that backend in registry/imagemagick.toml:

description = "ImageMagick is a free, open-source software suite for creating, editing, converting, and displaying images. It supports 200+ formats and offers powerful command-line tools and APIs for automation, scripting, and integration across platforms"
test = { cmd = "magick --version 2>&1", expected = "ImageMagick" }

[[backends]]
full = "conda:imagemagick"

[[backends]]
full = "asdf:mise-plugins/mise-imagemagick"

[[backends]]
full = "github:ImageMagick/ImageMagick"
os = ["windows"]
platforms = ["windows-x64", "windows-x86", "windows-arm64"]

[backends.options.platforms.windows-x64]
asset_pattern = "ImageMagick-*-portable-Q16-HDRI-x64.7z"

[backends.options.platforms.windows-x86]
asset_pattern = "ImageMagick-*-portable-Q16-HDRI-x86.7z"

[backends.options.platforms.windows-arm64]
asset_pattern = "ImageMagick-*-portable-Q16-HDRI-arm64.7z"

Is there any way how to test it locally @jdx?

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the mise registry by introducing support for installing ImageMagick on Windows operating systems. It configures a new GitHub backend that points to ImageMagick's official binary releases, allowing users to seamlessly install the tool with platform-specific asset patterns for various Windows architectures.

Highlights

  • ImageMagick Windows Support: Added a new GitHub backend entry to the imagemagick registry, specifically enabling installation of ImageMagick on Windows via its official GitHub binary releases.
  • Configuration Structure Update: Refactored the backends definition in registry/imagemagick.toml from a single array to an array of tables ([[backends]]) to accommodate detailed platform-specific asset patterns for the new GitHub backend.
Changelog
  • registry/imagemagick.toml
    • Added a new github:ImageMagick/ImageMagick backend entry.
    • Specified os = ["windows"] and platforms = ["windows-x64", "windows-x86", "windows-arm64"] for the GitHub backend.
    • Defined asset_pattern for windows-x64, windows-x86, and windows-arm64 platforms to correctly identify the portable 7z archives.
    • Converted the backends definition from a simple array to an array of tables to support the new detailed backend configuration.
Activity
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request successfully adds a GitHub backend entry for ImageMagick, enabling installation on Windows by specifying platform-specific asset patterns. The changes correctly refactor the backends definition from a simple array to an array of tables, which is necessary to support the detailed platform options. The TOML syntax is correct and aligns with the intended functionality for handling GitHub binary releases.

Note: Security Review has been skipped due to the limited scope of the PR.

@greptile-apps

greptile-apps Bot commented Mar 5, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a github:ImageMagick/ImageMagick backend entry to the imagemagick registry so that mise can install ImageMagick on Windows directly from GitHub binary releases, while also converting the file to the modern [[backends]] table format.

Key points:

  • The platforms = ["windows"] filter on the new backend is correct — it matches against std::env::consts::OS ("windows") in registry.rs.
  • The [backends.options.platforms] block with inline tables is functionally equivalent to the per-heading style ([backends.options.platforms.windows-x64]) used everywhere else in the registry, but is inconsistent with convention.
  • The windows-x86 (32-bit) platform entry that appeared in the original PR description was dropped without explanation — on a 32-bit Windows host the backend will fall through to auto-detection and likely fail to select the correct asset.
  • No windows-x86 entry in the TOML means 32-bit Windows users will not benefit from this change.

Confidence Score: 3/5

  • Safe to merge for most Windows users (x64 and arm64), but 32-bit Windows support is silently dropped compared to the original proposal.
  • The core logic is sound — the OS filter and asset-pattern lookup will work correctly on Windows x64 and arm64. The two remaining concerns are a style inconsistency (inline vs. per-heading table format) and the undocumented removal of the windows-x86 entry. Neither blocks the PR for the common case, but the x86 gap is a silent regression from the stated goals.
  • registry/imagemagick.toml — platform options format and missing windows-x86 entry.

Important Files Changed

Filename Overview
registry/imagemagick.toml Migrates backends from an inline array to the structured [[backends]] table format and adds a Windows-only github:ImageMagick/ImageMagick backend with platform-specific asset patterns; the filtering logic is correct but the options format differs from the registry convention and windows-x86 support from the original proposal is missing.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[mise install imagemagick] --> B{OS filter\nregistryTool.backends}
    B -->|non-Windows| C[conda:imagemagick]
    B -->|non-Windows| D[asdf:mise-plugins/mise-imagemagick]
    B -->|platforms contains 'windows'| E[github:ImageMagick/ImageMagick]
    E --> F{lookup_platform_key\nplatforms.OS-ARCH.asset_pattern}
    F -->|windows-x64| G["ImageMagick-*-portable-Q16-HDRI-x64.7z"]
    F -->|windows-arm64| H["ImageMagick-*-portable-Q16-HDRI-arm64.7z"]
    F -->|windows-x86 ❌ missing| I[Falls back to auto-detection\nmay fail]
    G --> J[Download & install .7z archive]
    H --> J
Loading

Last reviewed commit: 4bd1fb4

Comment thread registry/imagemagick.toml Outdated
Comment thread registry/imagemagick.toml Outdated
@iki

iki commented Mar 5, 2026

Copy link
Copy Markdown
Contributor Author

@gemini-code-assist review and summarize
@greptileai review and summarize

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a GitHub backend for ImageMagick to support Windows binary releases. The implementation is functionally correct, but I've suggested an improvement to the TOML configuration to make it more readable and maintainable by grouping related platform options.

Note: Security Review has been skipped due to the limited scope of the PR.

Comment thread registry/imagemagick.toml Outdated
…ments

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@iki

iki commented Mar 5, 2026

Copy link
Copy Markdown
Contributor Author

@gemini-code-assist review and summarize
@greptileai review and summarize

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a GitHub backend for imagemagick to support installation on Windows. The changes to registry/imagemagick.toml correctly refactor the backends definition to an array of tables and add the new GitHub backend. However, there is an issue with one of the platform keys used, which violates the registry schema as detailed in the comment.

Note: Security Review has been skipped due to the limited scope of the PR.

Comment thread registry/imagemagick.toml Outdated
@iki

iki commented Mar 5, 2026

Copy link
Copy Markdown
Contributor Author

@gemini-code-assist review and summarize
@greptileai review and summarize

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a GitHub backend for ImageMagick on Windows, allowing for direct installation of binary releases. The changes correctly restructure the imagemagick.toml file to accommodate the new backend. My review includes a suggestion to add support for the windows-x86 architecture, which appears to be available in the releases but was missed in the current implementation.

Note: Security Review has been skipped due to the limited scope of the PR.

Comment thread registry/imagemagick.toml Outdated
Comment thread registry/imagemagick.toml
Comment thread registry/imagemagick.toml
@jdx

jdx commented Mar 5, 2026

Copy link
Copy Markdown
Owner

I think it might be best to try to get this into aqua registry instead

@suchipi

suchipi commented Jun 5, 2026

Copy link
Copy Markdown

Could we get this in the meantime until it's added to aqua registry? My netlify builds are taking a long time because I need imagemagick and they don't give me access to the system package manager but they have mise so I install imagemagick with mise on Linux as part of my build but it takes a long time to install because it has to compile from source.

@iki

iki commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

@suchipi: It is already in aqua registry since aquaproj/aqua-registry#50281, you can use mise use aqua:ImageMagick/ImageMagick on Windows with current mise v2026.6.1 with aqua 7z support #10224

For updating mise registry see current #10118

@suchipi

suchipi commented Jun 11, 2026

Copy link
Copy Markdown

thank you!

@iki

iki commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@suchipi: Actually on Linux it doesn't work yet as mise does not support AppImage archives currently: #10118 (comment)

It may be unblocked by ImageMagick adding static Linux build archive: ImageMagick/ImageMagick#8792

In meantime, you may try to install aqua and use it to install ImageMagick, it works on Windows:

mise use -g aqua
aqua g -i ImageMagick/ImageMagick && aqua i

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants