Proposal for Pixi workflow#1212
Conversation
734ad59 to
13deb69
Compare
This comment was marked as resolved.
This comment was marked as resolved.
ff75180 to
dfa6dfd
Compare
|
can you try https://github.com/DiamonDinoia/xsimd/tree/pixi-workflow-fix it is not infinite recursion because of SFINAE. All of this can be greatly simplified with c++17 once available :) |
|
@DiamonDinoia yes runs smoothly for me: I tried clang-18, clang-21 and gcc-15 🙏 |
|
@serge-sans-paille what do you think of this? |
| @@ -0,0 +1,6391 @@ | |||
| version: 6 | |||
There was a problem hiding this comment.
I assume (and hope) this file should not be checked in?
There was a problem hiding this comment.
Well it depends. Nowadays it is not uncommon to check in lockfiles in the repository to use them in CI.
This one is rather large because we create all these different compilers environments.
To use pixi in CI, I would say we should keep it because it avoids solving end make caching easier. However we can still do without I believe (need to try out other options). Your call.
There was a problem hiding this comment.
Note that this can also be hidden by default in github PRs (and stats I believe).
https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github
|
Requesting your feedback again @serge-sans-paille. I personally don't think the lock file is an issue, it's pretty common nowadays. However if we take it out, I would also disable the CI. |
|
I see the Github action is failing due to missing docker image, perhaps this could be the opportunity to use pixi for running clang-format and other static analyzers ;) |
|
@serge-sans-paille if you don't have strong objections, I would like to get this one in, along with the lockfile which should not change unless we modify things and is hidden from diff. |
|
I'm honestly not a fan of tool-specific configuration in the main repo (now pixi, then what? Dockerfiles ?). Sorry for not being thrilled by this PR, we already have a lot of commit noise due to CI, I'd like to not too increase that :-/ |
I think we owe to contributors to have one way of getting started quickly. It could have been Dockerfiles, or perhaps Nix, or anything. I find this one to be low friction (it's declarative, has the same usage on all platforms, and does not take
It's not pretty, but it speed things up, and time is important too.
I agree with this, and I did not mean to replace all CI at all. For diversity, we should in fact include some conda-forge builds. But I was mostly thinking of streamlining things like
I'd add a grain of salt though. Diversity is good, and we want to check many settings, but the goal is also not to check that cmake or gcc-15 are properly working across all distributions. We're testing xsimd, not the tools.
I'm not sure what you mean. I did not mean to impose this workflow. In fact it is very much optional in this PR.
I understand, I also don't like working on CI. That's why I like approaches where I can reproduce as much as possible locally without many steps, or without making system-level changes (additionally without CI provider lock-ins). |
|
I wanted to get deeper knowledge of pixi, and started with not a good start /o\ |
|
First thank you for giving it a try ! As for the error, you must be running an outdated version of pixi. |
This is the proposed Pixi workflow
Tasks:
Some notes and possible improvements:
CMakePresets.jsonis a bit verbose but I prefered to keep it modular so that we can derive all useful presets. It would be nice to make it converge with the options in CI so that it can be use there too. This is low risk since it is simply a different way to configure the same options.setup-pixiGH action that caches dependencies, this is a very powerful way to run a lot of configurations. If the first job works well, it could also be used to run some simple gcc/clang configurations.Close #1209