-
-
Notifications
You must be signed in to change notification settings - Fork 16
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
v0.10.1 & turn into multi-output recipe to account for optional installs #14
Conversation
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
0bd97c2
to
98c11e5
Compare
@h-vetinari Your plan looks great. I agree that We can skip the spreadsheet and remote as those are very early releases and probably not ready for mass adoption. |
Happy to hear it! :)
I've changed my mind on this slightly, because
That's fine, they're currently skipped in the recipe. The only thing I'd like to catch early is if we can avoid the naming clash between |
I think that makes sense, we could also have |
@h-vetinari What do you need from me on this? |
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.
@devin-petersohn: What do you need from me on this?
I left a couple of comments where I could use some inputs. :)
recipe/meta.yaml
Outdated
test: | ||
commands: | ||
# cannot import modin because it needs an engine (dask or ray) | ||
# TODO: add core-specific tests! | ||
- exit 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.
Could use some advice for core-specific tests here
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.
For core specific, we could just import modin
. We could also add a pytest test file with a with pytest.raises
block in it to ensure it does raise an error.
Related question: do we need modin-core
on conda forge? We have it in pypi to be as lightweight as possible because often a user will have one of ray/dask installed already. Do you think it will help to have it here too (even just to mirror pypi)?
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.
The thing is, import modin
doesn't work for core, because there's no engine, and the import fails on that.
modin-core
makes a lot of sense IMO, even if it's not intended for general usage, because it allows us to have a common base for the people to either choose dask and/or ray as an engine.
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.
import modin
should work on the most recent releases.
import modin # doesn't touch engine code
import modin.pandas
This will fail:
import modin
from modin.config import Engine
Engine.get() # triggers check for engine
recipe/meta.yaml
Outdated
test: | ||
imports: | ||
# are there more specific imports?! | ||
- modin |
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.
Are there modin[dask]
-specific things to test?
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.
Testing the imports should be sufficient.
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
recipe/meta.yaml
Outdated
test: | ||
imports: | ||
# are there more specific imports?! | ||
- modin |
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.
Are there modin[ray]
-specific things to test?
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.
Same here, testing import should be sufficient
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
recipe/meta.yaml
Outdated
# TODO: resolve conflict modin[spreadsheet] vs. modin-spreadsheet | ||
- name: modin-spreadsheet |
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.
Based on your comment, my understanding now would be:
- leave this as
modin-spreadsheet
in this package - when bringing in the
modin-spreadsheet
from PyPI to conda-forge, name it something else, likemodin-spreadsheet-core
Does this match your view?
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.
Yes, this matches my view
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.
Alright, let's remember that whenever we create that staged-recipes PR.
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'm a little late to the party, but I don't think a separate package is needed - all modin-spreadsheet
would do would be add a dependency to modin-spreadsheet-core
, what's the point of having two separate packages? I think the other solution (make modin-spreadsheet
subpackage include modin-spreadsheet
from PyPI) makes more sense 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.
Come to think of it more, I think we definitely need a separate feedstock, because modin-spreadsheet
(separate package from PyPI) has its own separate versioning.
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, we just need to make sure that the separate feedstock is named modin-spreadsheet-core
...
@h-vetinari Sorry it's been a hectic couple of weeks
I missed them before :/. I will respond |
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.
Sorry it's been a hectic couple of weeks
No need to apologise. Here are my answers.
recipe/meta.yaml
Outdated
test: | ||
commands: | ||
# cannot import modin because it needs an engine (dask or ray) | ||
# TODO: add core-specific tests! | ||
- exit 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.
The thing is, import modin
doesn't work for core, because there's no engine, and the import fails on that.
modin-core
makes a lot of sense IMO, even if it's not intended for general usage, because it allows us to have a common base for the people to either choose dask and/or ray as an engine.
recipe/meta.yaml
Outdated
test: | ||
imports: | ||
# are there more specific imports?! | ||
- modin |
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
recipe/meta.yaml
Outdated
test: | ||
imports: | ||
# are there more specific imports?! | ||
- modin |
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
recipe/meta.yaml
Outdated
# TODO: resolve conflict modin[spreadsheet] vs. modin-spreadsheet | ||
- name: modin-spreadsheet |
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.
Alright, let's remember that whenever we create that staged-recipes PR.
recipe/meta.yaml
Outdated
|
||
- name: modin-remote | ||
build: | ||
# dependency rpyc is not in conda-forge yet |
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.
do note that we also require ray-autoscaler
for modin-remote
, and autoscaler is also not on conda-forge now anymore because a lot of its dependencies are way out of date...
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.
Could you open an issue on the ray-feedstock and maybe on the feedstocks of the missing dependencies?
…da-forge-pinning 2021.03.05.06.59.08
Signed-off-by: Vasily Litvinov <vasilij.n.litvinov@intel.com>
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( I do have some suggestions for making it better though... For recipe:
|
Signed-off-by: Vasily Litvinov <vasilij.n.litvinov@intel.com>
Also add placeholder for modin-sql Signed-off-by: Vasily Litvinov <vasilij.n.litvinov@intel.com>
Signed-off-by: Vasily Litvinov <vasilij.n.litvinov@intel.com>
Disabling python 3.9 should not be necessary. Something in the dependencies of pyomniscidbe depends on glibc 2.17, so we just need to follow suit there (potentially need to add |
I have only disabled |
Aha, I had looked at https://anaconda.org/conda-forge/pyomniscidb/files, and there are some py39 builds. What's the difference between having the "e" at the end or not? |
Nevermind, I can see there are different outputs in the recipe. In any case, that comment you linked is not current anymore, there are builds for tbb4py: https://anaconda.org/conda-forge/tbb4py/files If you want you can force-push your changes again, but I'd prefer building pyomniscidbe for py39 before merging this. |
Waiting for the builds from conda-forge/omniscidb-feedstock#46 (should be ~3 more hours), thanks @vnlitvinov! |
PS. Sorry for messing up your commits, I had forgotten to update before I force-pushed. I managed to recover them using https://objectpartners.com/2014/02/11/recovering-a-commit-from-githubs-reflog/ 🙃 |
@devin-petersohn |
All difference in the world, or really bad naming (IMHO). The version with "e" is "Python bindings for SQL being run as library" (somewhat similar to P.S. I've written that yesterday but for some reason didn't publish, so publishing now. |
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 (not that it counts now, but still)
version: {{ version }} | ||
|
||
source: | ||
url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz | ||
sha256: 88ce4def4a1145d31d207be55b9c3ba914e084ccfebace1d52b03507df258fd2 | ||
url: https://github.com/modin-project/modin/archive/refs/tags/{{ version }}.tar.gz |
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.
might be worth adding a comment explaining why we take github instead of pypi
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 can if you want. It might just be this release where the sources are different - for the feedstocks I maintain, I consider PyPI & GH sources to be completely equivalent (actually with a slight preference to GH), and not really worth commenting about. But YMMV.
recipe/meta.yaml
Outdated
# TODO: resolve conflict modin[spreadsheet] vs. modin-spreadsheet | ||
- name: modin-spreadsheet |
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.
Come to think of it more, I think we definitely need a separate feedstock, because modin-spreadsheet
(separate package from PyPI) has its own separate versioning.
# Also requires ray-autoscaler which is now absent because | ||
# its dependencies on conda-forge are too ancient. |
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.
@vnlitvinov, I don't see the dependency on ray[autoscaler]
in setup.py
for modin[remote]
. Where does this come from? Again a conda-only dependency?
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.
No, just knowledge of how things are implemented inside (as I was the one who implemented them 😄).
That said, ray does not have a ray[autoscale]
target yet, ref: ray-project/ray#15725
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
Last call (not that I think it's critical...) - will merge in about 24h unless there are objections. |
I think Devin is out this week. |
OK. Do you think we should wait or merge? |
IIRC he should be back on Monday or Tuesday, we could wait for him, no big deal. |
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 letting me take a look before merging. LGTM!
While updating the dependencies for #13, I noticed that there are new optional installs (and that this recipe hasn't done a good job in keeping in sync with the dependency changes...)
In order to make the core install less heavy, I propose the following mapping of installs
pip install
conda install
modin[all]
modin-all
modin[dask]
modin-dask
modin[ray]
modin-ray
modin[remote]
modin-remote
rpyc
not in conda-forge yetmodin[spreadsheet]
modin-spreadsheet
modin-spreadsheet
not in conda-forge yet; Note: this name would currently conflict between the modin-optional and the separate package!modin
modin
modin-core
, but could also point tomodin-all
Finally, there's a problem with the re-rendering, that conda-smithy reintroduces the 3.6 job, but that's unrelated to this discussion.
Builds on #13 (which should be merged first) and incorporates those commitsCloses #17
Closes #18
CC @devin-petersohn