-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
PR: Use conda-lock files to incrementally update conda-based installers #22059
Conversation
Hello @mrclary! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:
Comment last updated at 2024-05-09 20:58:08 UTC |
1feb092
to
c9a7406
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @mrclary for this great improvement! I only left some small questions for you.
45dd879
to
ea1b00b
Compare
Additional question: how are we going to update the conda-lock file from one of our releases to the next? My idea would be to do it like this:
However, with the current approach I think the lock file is auto-generated every time on CIs, which wouldn't allow us to do that. @mrclary, do you think that workflow is a good idea? If so, how easy do you think it'd be to support it? |
I think these are good ideas.
I would prefer the previous option, probably because if we update a little more often then fewer things would change and we'd have an easier time identifying any offending packages.
That is correct.
I don't think it would be too difficult. |
Ok, that's really good.
I think it'll be easier to retrieve the file from the latest release and update it on CIs, like this:
My rationale is that if we automate this process it'd be one less thing to worry about during the release process. And it'd also be less prone to error. Could you take care of implementing that (if you agree, of course) in this PR, so we can check the process in beta2? |
👍🏼
Absolutely. |
Note that "local" channel does not work for conda/conda-lock/mamba solver. The local channel path must be explicit. I'm sure that this is an old bug.
This is required by the installer tests. Fix issue where installer test did not exit if installer failed.
Include scientific packages in lock file. Ensure PY_VER and SPYVER are updated from spec.
Installer path is either installer or lock file and download worker is used for all updates for conda-based installers. Shell scripts now "mamba update -p <prefix> -y --file conda-<platform>.lock".
Array options for script and cat-ing to script are incompatible: ("-i" "''" "-e") works for cat-ing but not for script; ("-i" '' "-e") works for script but not cat-ing. For situations that require both script and cat-ing that must work for both GNU and BSD, the only solution is to use "-i.bak -e" and "rm *.bak"
For non-release and non-pre-release, this will be spyder, spyder-kernels, qtconsole, python-lsp-server. For release and pre-release, this will only be spyder.
@mrclary reviewed the feasibility of my comment above and found out it's not possible to implement it using environment yaml files alone, which will prevent using conda/mamba to perform the update (we'll have to use conda-lock instead). So, this one is ready. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work, thanks @mrclary!
Thank you @ccordoba12. 😁
Which does not actually work, at least not the way that I think it does. Furthermore, the documentation shows the example
which I could not get to work at all. All of my attempts to use the I conclude that either I'm doing something wrong, or there is a bug with |
Description of Changes
The update manager plugin now uses an explicitly rendered conda-lock file in order to perform an incremental (minor/micro) update to Spyder in a conda-based installation environment. Previously the update manager simply performed a
conda install
.Since conda-forge packages for releases are not available at the time of installer workflow runs, the checksum is removed from the Spyder spec in the conda-lock file. The checksum will be different for the Spyder conda package built on our CI vs. conda-forge, resulting in a
ChecksumMismatchError
. Removing the checksum in the conda-lock file avoids this error.