-
Notifications
You must be signed in to change notification settings - Fork 279
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: Split EWAH bool array code #2711
Conversation
Hi! Welcome, and thanks for opening this pull request. We have some guidelines for new pull requests, and soon you'll hear back about the results of our tests and continuous integration checks. Thank you for your contribution! |
This is still a priority, and I'm going to help get this moving forward. |
d0a96e5
to
49ddef3
Compare
Hey, I think that it will be a bit easier to move this forward with yt-project/ewah_bool_utils#1 + a new pypi publication :) |
hey @themousepotato, there are a couple conflicts here you'll need to fix. I assume that the reason they're popping is that the files you're removing were recently updated. You should be able to fix this by rebasing your branch and rerun your Also, it seems pretty likely to conflict with #3413 too. I assume you guys have a plan set up for this but I'll admit it's not obvious from the outside in what order, and which PRs should go in. |
67b81b0
to
bb7c4a3
Compare
@matthewturk I've created yt-project/ewah_bool_utils#3 🤞 |
Looks like everything that needed to happen first was completed, so do you guys want to revive this at any point ? |
Yup. I think it should be reviewed!
…On Thu, Nov 18, 2021, 6:48 AM Clément Robert ***@***.***> wrote:
Looks like everything that needed to happen first was completed, so do you
guys want to revive this at any point ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2711 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAVXO7LDUF4ISNPRYG4F43UMTY2PANCNFSM4ONP5QIA>
.
|
Then maybe start with fixing the conflicts and removing the draft status when CI goes green :) |
@matthewturk An issue I see with the current state of this (putting merge conflicts aside) is that no wheels are currently being distributed for the separated package, which means that if yt starts depending on it, it will add a noticeable compilation overhead at install time to everyone downstream. |
I just released ewah_bool_utils 1.0.0 https://pypi.org/project/ewah-bool-utils/#history |
bb7c4a3
to
2721018
Compare
compilation is currently broken, here are a sample of the errors we're getting:
Those seem to indicate some linking problem, so I assume the bug is on yt's side. |
Solving issues as I go, I will need to cut at least one bugfix release for ewah-bool-utils. The remaining issues are currently tracked in https://github.com/yt-project/ewah_bool_utils/milestone/1 |
Seems like I pushed the latest patch just a little too early and some jobs failed because they couldn't find the new release on PyPI, which hit the server only seconds before. Otherwise it looks like v1.0.1 is viable, so I'll just relaunch failed jobs manually: edit: actually there's an dependency conflict remaining
|
@yt-fido test this please |
Looking stable now, I'll simplify the history. Last thing to do before we can open this for review is packaging the stable version of ewah_bool_utils for conda-forge |
61c9634
to
ecab37d
Compare
@@ -6,12 +6,12 @@ | |||
from glob import glob | |||
|
|||
import numpy as np | |||
from ewah_bool_utils.ewah_bool_wrap import BoolArrayCollection |
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.
It seems worth noting that this is the one and only import that makes ewah_bool_array a runtime dependency. If we could somehow avoid it, it would only be a dependency at build time, which would be much more robust to potential ABI compat breakage.
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.
Hm, is that true? I think that even though we're building the cython files, when we do the cimport
it will be using dlopen
and make it a runtime dependency as well.
Trying to get ewah-bool-utils on conda-forge at conda-forge/staged-recipes#21592 |
@matthewturk FTR I'd be happy to have you as the reviewer but if you'd rather ask someone who hasn't had a hand in the project instead I'd be okay with it too. |
I will review this! |
So I think that this is good to go if the tests pass. I don't think we can make it optional without a considerable amount of refactoring, so having it mandatory seems like the correct move. Honestly, I'm not sure how to test this other than using it and relying on existing sets of tests. |
Agreed. I think it's sufficient. |
@matthewturk when do you think we can merge this ? |
Has anybody given a shot at a full-on installation yet? |
Not that I know of. The good news is that it's pretty easy to revert if anything too bad happens |
Is it a requirement ? I think we better be explicit about it. |
8394ea3
to
5fd6b72
Compare
rebased to resolve a conflict |
5fd6b72
to
ff117d9
Compare
Co-authored-by: Navaneeth Suresh <navaneeths1998@gmail.com>
ff117d9
to
2b13c2e
Compare
(resolved another conflict) |
@yt-fido test this please |
@matthewturk I'd really like to get this in for yt 4.2 |
Yes, that's reasonable. How should we support you? |
merging this ? AFAIC it's been ready for a couple month |
Oh, hm. Well, alright! I think we'll need to notify people -- almost every time we split out a dependency, there's a bit of a bumpy road as people don't have it installed and just pull from git etc. |
That's fair. Do you want to do it, or should I ? |
I'm OK with either. What do you think the relative credit/blame ratio is going to be? :) |
Depends how you weight it, but I'd say about 1. |
PR Summary
This PR removes the code of EWAH bool array from the yt repository. As suggested by @matthewturk, it is being split out as a new python package.
PR Checklist