-
Notifications
You must be signed in to change notification settings - Fork 32
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
Change workflow to mamba #693
Conversation
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.
As with zppy and zstash, this looks good to me.
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.
@chengzhuzhang I tried to port the same changes from zppy
's E3SM-Project/zppy#429 & E3SM-Project/zppy#428, as I did for zstash
's E3SM-Project/zstash#271.
However, the docs and build files for zppy
and zstash
match up more closely with each other than e3sm_diags
. So, hopefully these changes work.
@xylar @tomvothecoder Let me know if you see any issues, thanks.
Remaining instance of
|
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 for doing this Ryan. I had this on my backlog for quite sometime (#642).
I linked that issue to this PR. LGTM.
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.
Looks good!
Thank you for the PR @forsyth2 !
The checks won't run, any insights? @forsyth2 @tomvothecoder @forsyth2 |
@chengzhuzhang I'm running into issues with the checks on all the mamba PRs. For this, it looks like the commit status needs to meet some requirement? Am I missing a new requirement on E3SM Diags? For reference:
And I thought
|
Ah, I just made E3SM-Project/zppy#434, and now |
@forsyth2 and @chengzhuzhang, I think the Besides that one flag, I think E3SM_Diags is in better shape than |
There's at least 1 other problem: someone's editor is putting tab characters into the workflow yaml files, which is making CI not run. |
Tests seem to be failing for reasons that may not have to do with this PR:
Update: Hmm, that doesn't seem to be a new error -- it also shows up in recent CI that passed. There are 3 failing tests but I don't understand them well enough to know why this PR might have caused them. |
@xylar thank you so much for troubleshooting and made the CI/CD tests running again...I will take over to look at the failed tests. |
The trackback include errors with
|
So in general the difficulty with a workflow where you pin ever package version like it: @tomvothecoder and @mahf708, what are your thoughts here? |
@chengzhuzhang, what is the general procedure for updating package versions in https://github.com/E3SM-Project/e3sm_diags/blob/main/conda-env/dev.yml? Because they seem generally pretty out of date. |
Agree; from a quick look, the linked yaml is definitely stricter than needed and would generally lead to headaches like the one here (the detective work would be quite unwieldy). An alternative (and much more robust approach) is using conda-lock lockfiles with a more relaxed env yaml files, which would be refreshed often (either manually or automatically). I can link to some robust examples of this can be automated and we could consider here in the future (e.g., Pangea notebook docker images) |
At the very least, python, numpy and spicy shouldn't be that strictly pinned to the patch ( |
We can target the exact build number while we wait for answers (see below) though I think something like this is a recipe for more problems (if not now, then down the road). diff --git a/conda-env/dev.yml b/conda-env/dev.yml
--- conda-env/dev.yml
+++ conda-env/dev.yml
@@ -11,9 +11,9 @@
- beautifulsoup4=4.11.1
- cartopy=0.21.1
- cartopy_offlinedata=0.21.1
- cdp=1.7.0
- - cdms2=3.1.5
+ - cdms2>=3.1.5==*_15
- cdutil=8.2.1
- dask=2022.12.0
- genutil=8.2.1
- lxml=4.9.2
|
@xylar and @mahf708 thank you for chiming in ( in wired weekend time from your time zones). |
Ah, I had missed how many different yaml files there are. By the way, this should be fixed: |
I think, in contrast to |
I believe you need the latest versions of most cdat packages and earlier version are too old to work. So those need to be constrained much like they are in E3SM-Unified: It's quite important to have a sense for which packages need to be constrained (i.e. e3sm_diags won't work with earlier or later versions) and which are being over-constrained (e3sm_diags works with a broad range of versions). This is a tedious part of the package management process but it is also a giant headache when it isn't done right and things like failing tests result from it. |
I will try increasing constraints on packages in ci.yml tomorrow (and then relaxing others in dev.yml) to get to a better match between these two. |
@xylar All PRs for the 2.9.0rc are in, except for this one. But it seems like it is worthwhile to spend some time on sorting out the yaml files, before a release? |
@chengzhuzhang, the problem is that I missed a bunch of You are noticing that here because you were previously testing with numpy <= 1.20 but you now are getting the latest version where these are no longer available. So there's nothing wrong with the testing, it's a problem with |
I successfully fixed |
Once I finished fixing |
@mahf708, Fortunately, it doesn't seem like the problem was with picking up the desired build after all, but rather that a lot less had been fixed than I thought. I agree that pinning a particular build is a crutch we could use if we need to but fortunately it doesn't seem to have been needed in this case. |
@forsyth2 and @chengzhuzhang, this seems to work but please merge #694 first and then this one only after a rebase to remove the redundant commit. Please also see the new issue #695 |
This is not necessary despite the comment and causes problems with getting the latest versions of conda packages.
Originally the GH Actions build for this repo was using However, we recently switched to Also the e3sm_diags integration tests take like 10-20 minutes anyways so I don't think build time is big deal if we can handle that wait 🤣 |
Change workflow to mamba. Equivalent of
zppy
's E3SM-Project/zppy#429 & E3SM-Project/zppy#428, orzstash
's E3SM-Project/zstash#271