-
Notifications
You must be signed in to change notification settings - Fork 18
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
Use package sync #222
Use package sync #222
Conversation
Thanks @shughes-uk! This, I think, will result in an enormous simplification to the CI setup here. Does |
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.
Yeah, it would be great if we could only have to worry about what's installed locally on the CI machine and let automatic package syncing take care of the rest 👍
In this CI build we're seeing the following environment-related error:
Though I'm confused why Python 3.7 is involved at all as this is supposed to be running on Python 3.9 |
Haven't tested this at all on windows, what I think is happening is it's trying to install a windows specific package (pywin32), but only an extremely stale python 3.7 based build exists for linux which mamba is trying to use. The fact it exists at all for linux is somewhat surprising (who is building pywin32 for linux??) |
Apart from the windows errors it looks like all the rest are related to not being robust for 502's in a couple of places, which I'll push a fix for. It seems like y'all would be very keen for this to work, are proper git dependencies a blocker for that? |
I believe so. We need to be able to install the current |
From my perspective, git dependencies will be very nice to have for local A/B testing, but |
Wait, actually we're using nightly |
Yes, as long as it's not a private conda channel It should work. Private one's may even work but I have not tested them at all. |
Okay, good to know. We're only installed from public channels |
Working on those macos/windows issues. I have a fix in a MR that should hopefully make it to prod tomorrow |
Windows/macos is passing! The cleanup steps fail because I commented out the senv creation step. |
Woo! Nothing gives me so much joy as deleting yaml! |
7166e1a
to
344837f
Compare
This has been a great test of package sync, now it's working on linux, macos and windows! Any thoughts? Should this be merged? |
I think @jrbourbeau and I can take it over, if you don't mind -- we'll probably want to update some of the pytest fixtures here that do some reasoning about the software environment version, in addition to deleting most of the setup/cleanup work. |
I just used this branch locally to run a test #212 (comment) because I absolutely could not be bothered to deal with software environments ever again and it worked fine. Some rather silly mismatches, but no problems AFAICT. The mismatches are concerning, because it's the sort of thing that'll work until it doesn't. Not being able to be confident that it's deterministic or reproducible will always make me hesitant. But it's not like the senvs currently built in this repo are either, and this is so so so much better to work with. |
(But yes, this should be merged) |
The mismatches that are "missing" packages are mostly cosmetic and due to a couple of bugs I smoothed out in staging (prod tomorrow hopefully). The actual version mismatches, are there any packages you'd consider 'critical' and should never mismatch? So far the list is I'm also going to add a strict mode which means it would only ever replicate an environment exactly (this would fail for everything except a linux machine creating a cluster) |
Happy to let you have at it! |
msgpack had a patch version mismatch in https://cloud.coiled.io/dask-engineering/clusters/46264/details. cloudpickle, pyarrow, etc. obviously belong on that list. But I also really don't want us to have to maintain a list of "critical packages". |
Ah nice catch, upgraded msgpack to critical on prod. I'm not sure there's any way around it sadly. |
@ian-r-rose @jrbourbeau could we merge this? I'm adding some more benchmarks and would love to not have to deal with software environments. |
I almost certainly need to update some of the benchmarking-related pytest fixtures before this can be merged, I haven't had the chance to do that yet |
Specifically, these functions (not fixtures themselves, but used in fixtures): https://github.com/coiled/coiled-runtime/blob/0a3eab5e476b9432b0b24d4317af2522bbcb0319/conftest.py#L66-L100 |
@gjoseph92, @ian-r-rose @shughes-uk and I spoke offline last Friday about this PR. We're all excited about the prospect of @shughes-uk we were planning to check back in on this topic this Friday after |
Though I understand that the |
Certainly understand your concern @gjoseph92
I'm totally fine with changing the spelling of FWIW it looks like @ian-r-rose is pushing forward over in #235 so we can see what impact switching to |
@gjoseph92 don't sweat it, getting there slowly. I know the current system is painful but hold on just a little longer |
@shughes-uk mind if we close this in favor of #235? |
all yours! |
Lets see if this works!
Note: I'm mostly seeing if this works for CI. Although it might be nice to use it?