Action for periodic refresh of pixi.lock file? #910
Replies: 18 comments 2 replies
-
try using SSH deploy keys in combination with |
Beta Was this translation helpful? Give feedback.
-
Cool, thanks! |
Beta Was this translation helpful? Give feedback.
-
I think to do this properly, we would need a "lockfile diff tool" or Ideally, imo, this behavior could be implemented in dependabot or renovate. I have heard there are some things happening on the renovate front with conda. I am still a bit unsure what use cases such a tool should cover. I think there are two main use cases: LibraryYou develop a library and want to test against multiple versions (for example https://github.com/Quantco/polarify). There, the updater should come around occasionally and only update the upper bound if necessary. (you as maintainer should create necessary environments to properly test against all relevant versions). ApplicationYou develop an application and don't really care about supporting all versions of your dependency. There, the updater tool should come around occasionally and update both the upper bound and lower bound like dependabot for npm for example. WDYT @0xbe7a @ruben-arts @wolfv @baszalmstra? I'm also wondering how this is handled in languages with proper tooling such as rust. I think #639 is also relevant for this issue. |
Beta Was this translation helpful? Give feedback.
-
@Hofer-Julian created a similar workflow in https://github.com/Deltares/iMOD-Documentation/blob/dd1c791944e1f513a8bd71a149b99e4a98e33a49/.github/workflows/pixi_auto_update.yml |
Beta Was this translation helpful? Give feedback.
-
Why you think that is the case? If
It kind of covers the case in which you develop a library (so the first option), but you do not put upper bounds in the
That is exactly what I was looking for, thanks! |
Beta Was this translation helpful? Give feedback.
-
Most Rust projects that I know that have something like that use dependabot. |
Beta Was this translation helpful? Give feedback.
-
At least the lockfile diff tool would be nice to be able to generate proper changelogs. Internally in our company, we have a tool to update lockfiles for conda which results in PR descriptions like this (see Quantco/multiregex#50): It's not super pretty and maybe needs some formatting updates but if we decide to create something like this, I would like to have such changelogs in the PR descriptions. |
Beta Was this translation helpful? Give feedback.
-
I see, thanks for the explanation. |
Beta Was this translation helpful? Give feedback.
-
For Rust we often use |
Beta Was this translation helpful? Give feedback.
-
The lockfile diff tool is also a good idea! |
Beta Was this translation helpful? Give feedback.
-
As linked by @pavelzw, the issue #73 is kind of related to that. |
Beta Was this translation helpful? Give feedback.
-
Just to have all aligned, at the moment by specific problem is solved by this. I think this may be a useful discussion, but anyhow I do not have need any specific change in |
Beta Was this translation helpful? Give feedback.
-
IMO as of now, until pixi supports But I don't think that this should be happening in |
Beta Was this translation helpful? Give feedback.
-
I didn't know about reusable workflows. Will see if I can find time to set that up. |
Beta Was this translation helpful? Give feedback.
-
@ruben-arts can you transfer this issue into a |
Beta Was this translation helpful? Give feedback.
-
Just an update on my side on this: after a bit of time, I started having doubts that continuously updating the |
Beta Was this translation helpful? Give feedback.
-
I added an example on how to do this with prettier diffs, see #1456 |
Beta Was this translation helpful? Give feedback.
-
Should be solved with https://pixi.sh/dev/advanced/updates_github_actions/ |
Beta Was this translation helpful? Give feedback.
-
Thanks a lot to all the contributors of
setup-pixi
action, is quite useful. I am interested in a action to complement its behavior. The logic of the action is not too complex so probably I could implement it independently, but I wanted to collect early feedback if anyone was interested.In particular, I am super happy that now the CI works with a lock file, minimizing the possibility of environment regressions that make PRs fail for unrelated package upgrades. However, on the other hand as I typically maintain packages that are not always the leaf of a dependency tree, I do want to be aware if at some point a new version of a dependency make my package fail.
To solve this problem, I was thinking of creating an action that run periodically, and that does
rm pixi.lock
&&pixi shell
, to regenerate a fresh pixi.lock . Then it would open a PR to refresh the pixi.lock. On that PR, regular CI will run (I am not sure how to make CI run automatically on a PR create by an action, but that's another story) and if the CI is green, the PR with the new lock file will be merged. In this way, I would be notified if a new dependency broke my package, without loosing the advantages of lockfiles.Anyone has any comment on this, for example an alternative workflow to achieve the same objective? I thought about adapting dependabot or similar tools, but that seems complex and their scope seems a bit different. What they do is to update the pinned version of dependencies in the
pixi.toml
, while in my case I would like to have as many dependencies in thepixi.toml
set to= "*"
(unless necessary, and I could discover this thanks to this action that periodically refresh the lockfile).Beta Was this translation helpful? Give feedback.
All reactions