-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
MAINT: No longer bundle packages #10199
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
Conversation
|
Okay we're all green, so this is ready for review/merge from my end. The only thing I realized that I missed in #10198 (comment) is that we now implicitly also have a hard dependency on I think my vote is to try the hard dependency on |
|
+1 for including Did you decide what is a base dependency by what we previously vendored? |
That plus adding |
Yes we do not currently have a |
|
my only big concerns is about h5io and pymatreader. For me it's not a core requirement of the package and I have terribly painful experience with hdf5 dependencies in the past. It's not a core package from the scipy stack and the risk of technical dept is for me very real. I would vote to keep h5io and pymatreader optional dependencies. my 2c |
|
Also, we never vendored these packages before, so this seems like a different issue than just replacing the vendored packages. What was the situation before this PR? They were optional dependencies, right? |
|
Before, we vendored the code and nested the import of the libraries that need h5py. We could continue to nest them to keep them as soft rather than hard dependencies. I'll make that change |
|
Before, we vendored the code and nested the import of the libraries that need h5py. We could continue to nest them to keep them as soft rather than hard dependencies. I'll make that change
👍
|
I like this idea. |
|
Okay I ended up adding an optional |
Co-authored-by: Richard Höchenberger <richard.hoechenberger@gmail.com>
hoechenberger
left a comment
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.
There's actually two subdirs in html_templates, albeit with very similar names 🙈
|
Oh you already fixed it while I was typing my comment! 🚀 |
cbrnr
left a comment
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, just a few comments/questions.
drammock
left a comment
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.
LGTM. A couple non-blocker subjective comments
- the pip
requirements_*files seem to be multiplying... is there need/value in specifying them in separate text files rather than directly insetup.py? - for the install shorthands, to me it seems the fewer options the better; something like:
- pip install mne # base
- pip install mne[hdf5] # + hdf5 / export deps; other shortands could be "io" or "export"
- pip install mne[dev] # everything above + doc and testing deps; could also be "all"
so if we find ourselves wanting to add more and more install shorthands as our dependencies evolve, I'd rather think about how to shoe-horn new deps into one of those 3 levels.
| with warnings.catch_warnings(record=True): | ||
| warnings.simplefilter('ignore') | ||
| return eval(f'parse("{version_a}") {operator} parse("{version_b}")') |
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.
can you explain why this change was needed?
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.
parse emitted a warning because some package had a non-PEP440-compliant version. We should hide these from the user, they shouldn't hear about this issue. (It didn't break the comparison in this case anyway -- I think it was a .develop or something at the end.)
The need/value arises because our CIs make use of them in different ways depending on the different run type (conda, pip, minimal, old, doc-build, notebook, ultraslow, etc.). I'll open a separate issue for this since I think this problem exists to some extent in
In If we keep
Agreed this would be cleaner if we can do it. I'll open a separate issue for this. |
+1, I have no objection keeping legacy shorthands as synonyms for ones that we consider "current" and advise people to use. |
agramfort
left a comment
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.
merge if happy !
thx heaps @larsoner 👏 🙏
|
Thanks @larsoner! |
Implements the plan from #10198 (comment).
Will iterate until green, then do a
[circle full]build.Close #10198
Todo:
README.rstwithjinja2and the other hard deps hereh5ioandpymatreaderso that h5py is not a hard dependency.setup.pydata list