-
Notifications
You must be signed in to change notification settings - Fork 9
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
BLD: line profiler no longer requires ipython, unpin needed for py3.12 #353
Conversation
It seems the ipython - line-profiler pin is defined in the conda recipe, but pip allows you to install line-profiler without it. I tried moving to the pip installation to avoid this entirely |
If this ends up being a blocker it's probably ok to update ipython to a more recent version |
The scientists scare me 😨 Looking at line profiler it's really just ipython magics that we don't use (but probably should). I was wondering if we'd end up wanting to scream loudly into the abyss to try and get scientists to try the new ipython version. Maybe that's a fool's errand and we'll get yelled at anyway |
Ok I think this is what's happening, but zach the env master should correct me if I'm wrong. error libmamba Could not solve for environment specs
The following package could not be installed
└─ line-profiler =* * does not exist (perhaps a typo or a missing channel). Running We first create a base environment with the packages listed in conda-packages.txt and security packages.txt (src) After this, we "get extra dependencies", and install those via conda/mamba (src)
I think one solution could be changing happi to use the underscore version of |
I think the underscore solution is reasonable and your analysis is correct |
|
It's running! I do find it confusing that we gather extras based on the pip specifications, which we then use to pick packages to install in conda. We should probably check conda's list of extra dependencies, but maybe that's easier said than done |
… for real this time
It looks like the |
Failures are pyca (expected failures), and typhos. With a bit of poking over lunch, I hacked together a py312 environment and tried to replicate the package versions from the CI. I could not replicate the segfault unfortunately. The last test before the segfault is the cli-profiler test, which is indeed the subject of this PR, but I still can't seem to replicate the failure. This feels close though, despite the flagrant disregard for |
Do you want to claim forward progress and merge then? |
I'm not entirely sure I'm happy with this, unless we're pushing for an env I'd rather try to sort out the line-profiler issues all together. I think there's a world where this style of unpinning isn't correct, though I don't exactly have an alternative idea about it. |
Without falling off the deep end tracing line_profiler's dependencies, I can't exactly pinpoint why line_profiler has such strict ipython requirements. With ipython 8.4.0 and line_profiler 4.2.0, I can still run the ipython %lprun magics and get reasonable output. 🤷 I think I'll declare this good enough for now, with an additional comment describing what went on |
Also maybe kicking this pulls new pyca and changes some of the ci? |
pcdswidgets will probably need a tag for the extra deps fix to go through. I'll claim forward progress here and ask for a review |
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.
Forward progress acknowledged!
Apparently line-profiler hasn't strictly required ipython for a while, and at least locally it seems like I can install 4.1.2 while pinning ipython at 8.4.0.
Curiosity getting me here since I don't want to do other more "productive" things