-
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
ENH: pcds-5.9.0 #341
ENH: pcds-5.9.0 #341
Conversation
@@ -1,4 +1,7 @@ | |||
# pypi as new as possible | |||
bluesky-queueserver>=0.0.18 | |||
bloptools>=0.7.0 | |||
grpcio-tools>=1.62.2 |
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.
I know this wasn't specifically for BEAMS, but maybe we also install py_trees? Or is that putting the cart before the horse?
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.
you're totally right, let's do it
I will re-run this build once conda-forge has updated some more packages, possibly in the afternoon today |
I'm going to do the matplotlib pinning thing to temporarily force a working build, with the expectation that I might be able to remove it once everything churns through conda-forge |
Despite forcing us away from the most recent matplotlib builds and no longer picking up pyside6, I'm still getting a qt6-main dependency. I'm investigating by replicating the build offline. |
I'm not sure how we got here yet, but qt6-main doesn't seem to interfere with the test suite (though pyside6 did, previously) |
pip check's output is less than helpful right now because:
I'm going to keep the check in but stop making it fail the build so I can more easily track which things are passing and which are not |
I think this is getting pretty close! |
py3.12 readiness cites prettytable as a failure, but it actually installs just fine in a py3.12 environment. p4p is still working through some kinks, but has fixed the distutils problem that currently prevents installation (it just needs a tag) |
Yeah I've got a sequencing bug in the CI build I think, where if the environment fails to build we still do some additional steps that also fail. This ends up manifesting as "no prettytable to build the release notes table" because the env doesn't exist, and then this gets reported as the "final" failure in the actions tab. |
I also need to extend the readiness check to try a pip install on each package, it currently only runs through conda |
At first glance it seems like the sequencing issue is better now- the py3.12 errors on the mamba/conda part and then doesn't attempt to build the table 🎉 |
current env and next incr will be broken because of strict repo priority wrt moving nabs to conda-forge, but we should ignore these I will need to make a follow-up PR for the py311 update which will also switch us from mamba to conda+libmamba, cut the py39 and py310 builds, and update some things like ipython to new frozen versions |
My intention is to take the output of this next build (if it passes) and use it as the new env |
Another reason why py312 is failing now is that I suspect this will be resolved upstream at some point so I'm not going to keep tabs on it, I'll let the package maintainers keep track of which versions their packages do or do not work with. |
Another good thing: the py312 readiness build now properly reports on the untagged p4p incompatibility:
|
…ll us which top-level req fails subdependnecy security conflicts
I'll give it another try with a matplotlib<3.9 pin back in, somehow with this configuration (perhaps due to the opencv build spec?) we can get a random early matplotlib 3.9.1 build without the pyside6 dependency, but this feels fragile. At least one other dependency still requires matplotlib directly and I'll track this down later (but before the py3.11 release) |
There's also a minor error in the CI's generation of yaml files |
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.
I think I mostly have side comments, and I think most of this looks good 🎉
- Appreciate you bringing the hype first with the new packages
- what's the deal with importlib_metadata, importlib-metadata, and python's built in importlib.metadata. I don't think we (ECS) use all of these, but I see deps do. annoyingly (or maybe ingeniously?) the third party
_
and-
versions are the same package, made from the same feedstock - Removed packages revealed some crazy things we had installed (dataclasses? backports.functools_lru_cache???!)
- Annoying how many conda feedstocks are just too old
- The script / workflow changes all look great
source_extra = None | ||
name_with_extra = req.name | ||
else: | ||
source_extra = str(req.marker).split(" ")[-1].strip('"').strip("'") |
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.
I spent some time trying to condense the strip calls but it's maybe less readable.
source_extra = str(req.marker).split(" ")[-1].strip('"\'')
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.
I forgot that strip removes instances of each character in the string, rather than the full strings
Maybe a nitpick on top of a nitpick, but if we're going to combine it we should have the outer quotes be double to match the others
source_extra = str(req.marker).split(" ")[-1].strip("\"'")
I don't feel strongly about any of these variants
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.
This IPython output briefly broke my brain (testing syntax):
In [1]: text = "\"'"
In [2]: text
Out[2]: '"\''
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.
Ok I'm brain broken enough that I'll let the original stand as is, I like how much easier it is to read
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.
Yep same, I really just meant to record my little code-golf diversion. It's definitely more readable as is
I think printing text
in your example shows what you expect
In [6]: text = "\"'"
In [7]: print(text)
"'
coverage=7.4.1 | ||
# avoids pre-releases of v2 | ||
databroker<2.0.0 | ||
bluesky-base=1.10.0 |
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.
This also pins bluesky (non-base), which has a strict bluesky-base pin. So the comment here makes sense 👍
I'm going to learn about this and figure out what's going on
We've been carrying a lot of stuff forward with the incremental update script, which by its nature doesn't clean up orphaned subdependencies. Running the env from scratch again allowed us to shed a lot of baggage, which is great! (We've also picked up some new baggage, but you can't win them all) I'll do the two edits in one commit as to only incur one rerun of the suite, then I'll learn about the weird metadata packages |
Co-authored-by: Robert Tang-Kong <[email protected]>
I also was meaning to generate a new giant dependency tree graph, so I'll see about getting that made |
The |
I just want to learn what they do in case we find them useful too |
|
I did make a pipdeptree rendering of the environment but it is hilariously unreadable while also being incomplete because of the blending of conda and pypi |
Ok I think this is more or less good to go- I'm just going to check all the link destinations and fix any broken ones, and add inbetween tag links as appropriate |
closes #314
closes #331
closes #335
closes #337
Things I changed, in diff order:
Release notes generated (TODO fix any broken links, add links to new packages):
Added the Following Packages
PCDS Package Updates
SLAC Package Updates
https://github.com/slaclab/pydm/releases/tag/v1.24.0
https://github.com/slaclab/pydm/releases/tag/v1.24.1
Lab Community Package Updates
Python Community Core Package Updates
Other Python Community Major Updates
Packages With Degraded Versions
Added the Following Dependencies
Removed the Following Packages