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

Investigate automation of libvips upgrades #58

Open
lopcode opened this issue Sep 21, 2024 · 4 comments
Open

Investigate automation of libvips upgrades #58

lopcode opened this issue Sep 21, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@lopcode
Copy link
Owner

lopcode commented Sep 21, 2024

  • GitHub Action to check for releases over at https://github.com/libvips/libvips?
  • Would need to build for a particular platform (probably Linux), and then run the generation scripts
  • Produce an automated PR?
@lopcode lopcode added the enhancement New feature or request label Sep 21, 2024
@JohannesBeranek
Copy link

If you do this, make sure to state the needed libvips version in the release. As long as the ABI version doesn't change, upgrading shouldn't be an issue.

With an ABI change though, this could become a nightmare for production updates.

Also note that you could write a bash/sh script and have it run on all three major systems.
Github windows runner comes with git, including git bash, which is able to run simple bash scripts, and macos/OSX and *nix aren't an issue anyway.

@lopcode
Copy link
Owner Author

lopcode commented Sep 21, 2024

I've been thinking about this - there's the version of the bindings, and the version of libvips to consider. I wonder if a combined version might make sense, like 0.5.1-vips-8.15.3? Need to check how other bindings approach the problem.

@JohannesBeranek
Copy link

Note that I just had to build libvips manually for latest Alma Linux, as it's not available as package there. The REMI repo has it, but not in the most recent version, and I couldn't find out which ABI version corresponds to which libvips version. What I found out though is that JVips for 8.12.2 also works for libvips 8.15.3, so at least there it seems that ABI compatibility is all that matters.

It's most probably the same with FFM, because, as far as I get it, that's one of the big points of FFM: using the standard c call convention/ABI. If that's the case you could name your version according to ABI version (currently 42) and have it being compatible with a couple of libvips versions. Also, at least for macos and *nix it should easily be possible to create an sh script to check for the installed ABI version.

@lopcode
Copy link
Owner Author

lopcode commented Sep 24, 2024

I added some description to the README but a specific difference with vips-ffm is it uses the bindings/operations API from libvips - I'm expecting that any VImage (or V(Prefix)) operation will work fine across minor version differences.

Maybe some stuff in VipsRaw would break, but vips-ffm intentionally only exposes what it needs to call the operations API. So I think the binary compatibility story for vips-ffm will be better 🤞

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: No status
Development

No branches or pull requests

2 participants