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

available filter and packaging for multiple platforms #26818

Open
ManasJayanth opened this issue Oct 31, 2024 · 0 comments
Open

available filter and packaging for multiple platforms #26818

ManasJayanth opened this issue Oct 31, 2024 · 0 comments

Comments

@ManasJayanth
Copy link

ManasJayanth commented Oct 31, 2024

I noticed libwasmtime encodes the platform information in the
version string

libwasmtime.0.21.0+linux-x86_64
libwasmtime.0.21.0+macos-x86_64
libwasmtime.0.22.0+linux-x86_64
libwasmtime.0.22.0+macos-x86_64

As per the manual section on version ordering, the macos variant is a
package version greater than the linux one - so solvers are expected
to pick libwasmtime.0.22.0+macos-x86_64.

But I guess, authors of packages like this expect the solver to filter
out unavailable packages before it is even considered for solving. So,
on say macos, the solver is supposed to see,

libwasmtime.0.21.0+macos-x86_64
libwasmtime.0.22.0+macos-x86_64

This is a problem for package managers that dont wish solvers to do
this kind of filtering. esy, for instance, wants the solution to
contain all platform variants of the package, so that during the
fetch/installation phase of the package, the package manager that
decide which subset of the transitive closure is relevant for the
user.

For this reason, I like how eio_main is packaged instead.

    "eio_linux"
      {= version & os = "linux" &
       (os-distribution != "centos" | os-version > "7")}
    "eio_posix" {= version & os != "win32"}
    "eio_windows" {= version & os = "win32"}

Here, the package manager has the option to ignore the filter during
solver phase and apply them in the installation phase.

Can the eio approach be enforced on the repository?

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

No branches or pull requests

1 participant