Skip to content

CI: add a pixi job - conda-forge python/deps, linux aarch64 - #884

Merged
dnicolodi merged 3 commits into
mesonbuild:mainfrom
rgommers:ci-job-pixi
Aug 25, 2026
Merged

CI: add a pixi job - conda-forge python/deps, linux aarch64#884
dnicolodi merged 3 commits into
mesonbuild:mainfrom
rgommers:ci-job-pixi

Conversation

@rgommers

@rgommers rgommers commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

I decided to run this job on a Linux aarch64 runner, so we get some more variety for free here - we weren't testing on that platform at all, other jobs all use ubuntu-latest.

One minor annoyance: this requires adding a REUSE.toml, because by design https://codeberg.org/fsfe/reuse-tool doesn't support ignoring files in a simple way: https://reuse.software/faq/#exclude-file

Closes gh-847

@rgommers rgommers added the CI Continuous Integration label Aug 25, 2026
@rgommers
rgommers force-pushed the ci-job-pixi branch 3 times, most recently from 2005a6f to 99f05bf Compare August 25, 2026 06:05

@dnicolodi dnicolodi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks @rgommers. I have a few comments.

Comment thread .github/workflows/pixi.toml Outdated
Comment thread .github/workflows/pixi.toml Outdated
Comment thread .github/workflows/pixi.toml Outdated
platforms = ["linux-aarch64"]

[dependencies]
meson = ">=1.12.0,<2"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is there any reason to pin meson to this versions range?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not really, we can replace it with *, we'll get the latest version in the lock file either way, unless the resolver does something very strange. This is more documentation than anything.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I also thought that this is more documentation than anything, thus it would need to be more nuanced that this. Maybe simply * is best.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The <2 is even more interesting than requiring a minimum of the just-released version. :)

Meson currently has no plans for a semver major 2 release, in the sense that we will undoubtedly want to make one someday but it is quite unlikely to be any time soon. It will surely drop deprecated functionality leading to breakage, but only for projects that don't deal with deprecation warnings for years...

In general this kind of rolling "you get a few years to handle deprecations" approach to compatibility is something I think is nicer than pinning to major versions (even if I also like SemVer :P). It would be slightly disappointing to to see <2 locking start happening in general -- is this something the tooling automatically defaulted to, or ...?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is this something the tooling automatically defaulted to, or ...?

I don't know for this specific case, but pixi defaults to this kind of version ceiling when adding a package to a workspace. I don't like it either, but it is a very popular thing to do.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, it's the default behavior you get from pixi. It pins minor versions for 0.x version numbers, and major versions for >=1 numbers. This kind of choice is always controversial no matter what one chooses exactly. Given that pixi is language-independent and handles compilers, C libraries, etc. it seems like a reasonable choice to me to not blindly go over major version boundaries when a user runs pixi update.

For Python packages I agree, not a fan. But there we don't typically worry about ABIs etc., nor is SemVer all that common.

In general this kind of rolling "you get a few years to handle deprecations" approach to compatibility is something I think is nicer than pinning to major versions

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This could be

meson = ">= 1.2.3"

to match a simplified version of what is in pyproject.toml but I am fine with the * too.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah I thought about it, but then it might goes out of sync again, so I'm happy with *.

Comment thread .github/workflows/pixi.toml Outdated
Comment thread REUSE.toml
@dnicolodi
dnicolodi merged commit 43fff4a into mesonbuild:main Aug 25, 2026
39 checks passed
@rgommers
rgommers deleted the ci-job-pixi branch August 25, 2026 09:35
@rgommers rgommers added this to the v0.21.0 milestone Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Continuous Integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cirrus CI shuts down on June 1st 2026

3 participants