-
-
Notifications
You must be signed in to change notification settings - Fork 748
Start building pre-releases with cythonized scheduler #5831
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
jrbourbeau
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.
Thanks @charlesbluca. There was some talk during the last monthly community meeting of dropping the cythonized version of the scheduler (also xref #5685). My guess is we should wait for a decision on that before adding extra builds here
|
James as part of that discussion we had decided that if some work was done here to setup nightlies and refactor out the Cythonized parts, we could keep it. This is one of those steps. However I think it is important for us to have the opportunity to progress here otherwise none of the actionables requested can complete. IOW it becomes a Catch 22 |
|
Ah, my mistake -- I thought we were just looking for progress on the refactor part. If nightlies were also requested, then let's carry on with the changes here 👍 |
|
Right this was one of the issues Florian had raised in the issue above and was discussed in the meeting. So this is our attempt to address that. Agree there is still refactoring work to do as well. |
jakirkham
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.
Thanks Charles! 😄
Had a few suggestions below. Generally this seems to be going in a good direction.
continuous_integration/recipes/distributed/conda_build_config.yaml
Outdated
Show resolved
Hide resolved
continuous_integration/recipes/distributed/conda_build_config.yaml
Outdated
Show resolved
Hide resolved
Co-authored-by: jakirkham <jakirkham@gmail.com>
charlesbluca
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.
Thanks for the thorough review @jakirkham 😄 a few responses:
continuous_integration/recipes/distributed/conda_build_config.yaml
Outdated
Show resolved
Hide resolved
continuous_integration/recipes/distributed/conda_build_config.yaml
Outdated
Show resolved
Hide resolved
jakirkham
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.
Added some suggestions above to make this noarch. We should be able to drop the conda convert lines with this
jakirkham
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.
Sorry for the 2nd review batch. Thinking this will resolve the CI issue
jakirkham
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.
This is looking pretty good. Thanks for all of the work here Charles 😄
Had a couple suggestions related to how selectors and Jinja work. IIUC this should also fix the CI issue
| {% set new_patch = major_minor_patch[2] | int + 1 %} | ||
| {% set version = (major_minor_patch[:2] + [new_patch]) | join('.') + environ.get('VERSION_SUFFIX', '') %} | ||
| {% set dask_version = environ.get('DASK_CORE_VERSION', '0.0.0.dev') %} | ||
| {% set cython_enabled = build_ext == "cython" %} |
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.
Jinja unfortunately doesn't affect selectors. So we would need to perform this comparison in selectors
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.
Ah thanks for the clarification here - good to know for the future 🙂
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.
Ofc. Showed another way we could do this in this review ( #5831 (review) ). Though ok with either approach 🙂
Co-authored-by: jakirkham <jakirkham@gmail.com>
Co-authored-by: jakirkham <jakirkham@gmail.com>
jakirkham
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.
Not that we need to do this, but this is another way we could handle the Jinja/selector Cython portion
continuous_integration/recipes/distributed/conda_build_config.yaml
Outdated
Show resolved
Hide resolved
charlesbluca
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.
Thanks for all the help here @jakirkham 😄 some questions w.r.t. shifting towards noarch, as I notice we are still building py38 / py39 packages:
Co-authored-by: jakirkham <jakirkham@gmail.com>
jakirkham
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.
The different versions are still needed for Cython (though not pure Python). That said, maybe there is a way to simplify things if we use a skip. Would also want to check what Python versions are built against by default with Conda-Build
This reverts commit bdbb88c.
Co-authored-by: jakirkham <jakirkham@gmail.com>
|
Looks like it is doing the right thing now Details |
jakirkham
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. Thanks Charles! 😄
|
@jrbourbeau @jsignell, do either of you have more thoughts here? 🙂 |
|
No thoughts from me. I'm happy if you are happy :) |
jrbourbeau
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.
Yep, same here, I'm happy if you're happy with the changes here.
(This is a non-blocking comment) I noticed the nightly CI build here takes ~10 minutes and is run on all pull requests and pushes to main. That seems like a significant amount of CI time to me. I'm wondering how much value there is in building that often vs. only on pushes to main or even a single nightly cron job. dask/dask and dask/distributed have been quite active recently and I've noticed longer wait times for CI builds to start. If we switched to only building on pushes to main or a nightly cron job, would folks using these builds miss out on much?
|
There is probably still some value in building these on PRs that change the Conda packages in particular (though maybe this can be skipped for other PRs) Otherwise building on |
Ah, that sounds like a nice balance. It looks like GitHub has support for only triggering builds when certain files are modified https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore. Again, I don't mean for this to block this PR. We can make further updates in future PRs |
|
Yeah was about to suggest the same method - I'm okay with pushing a quick commit doing this targetting the following files:
|
|
@jrbourbeau how do the changes above look? 🙂 (thanks Charles for adding those! 🙏) |
jrbourbeau
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.
Nice, LGTM -- thanks @charlesbluca
|
Thanks Charles for the PR and Julia & James for the reviews! 😄 |
)" This reverts commit 94ebd57.
This PR modifies the Distributed pre-release recipe to build Cython variants of Distributed using the steps outlined by @jakirkham in #4442 (comment).
Choosing which Distributed variant to install should be doable by specifying the
distributed-procbuild string during an install / env creation command, though withtrack_features="cythonized-scheduler"specified for Cython builds Conda should always prioritize non-Cython builds by default.pre-commit run --all-files