-
Notifications
You must be signed in to change notification settings - Fork 198
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
[WIP] Consolidate metadata in pyproject.toml
#1220
base: branch-23.04
Are you sure you want to change the base?
Conversation
78ec6ff
to
6dabf95
Compare
c5286a7
to
5eb2c29
Compare
@vyasr would be interested in hearing your thoughts on this. Also hopefully this clarifies what I was referring to about templating the Conda recipe further with |
conda/recipes/rmm/meta.yaml
Outdated
- setuptools >=61.0.0 | ||
- tomli # [py<311] | ||
{% for r in data.get("build-system", {}).get("requires", []) %} | ||
{% if r.split()[0] not in ["cmake", "ninja"] %} |
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.
Was going to try to ignore cmake
and ninja
here, but scikit-build
pulls them in anyways
Raised issue ( conda-forge/scikit-build-feedstock#69 ) about this
Also use this metadata to fill out the `rmm` Conda recipe.
5eb2c29
to
0fec140
Compare
Thanks @jakirkham! Definitely interested to see how much we can leverage this. There is some tension between this approach and #1175, so we should discuss the tradeoffs between the two approaches.
The end goal for me with dfg has always been to try and single-source our dependencies. It may be that meta.yaml is where we hit the limits of that approach, and if so that's fine, but I'm approach this PR (and #1175) with the hope of not throwing in the towel quite yet. Would love to get your thoughts there. Also CC @ajschmidt8 @bdice who I've discussed this with before. |
Interesting was seeing this as complementary to PR ( #1219 ) in that we could generate Certainly some things like shared libraries need to be handled separately. Though am guessing this is true for wheels too. How are shared library dependencies being handled in that case? Requirements is certainly one important piece. Though another is metadata. The Conda recipe's Maybe there is something more to thinking about with CMake and Conda sharing metadata somewhere for C++ libraries, but that may be a separate discussion |
Sorry my initial comment wasn't super clear. I am 100% on board reusing pyproject.toml's metadata in meta.yaml. That is definitely the right approach to reduce duplication here. My previous comment was solely around what to do about dependencies, everything else can be pulled from pyproject.toml. I wonder if we should also consider pulling the
Yup, this is the main area where I see the two approaches (dependencies.yaml+rapids-dependency-file-generator vs. pyproject.toml) as somewhat divergent and was trying to think about ways to reconcile. There are a few different cases that I can think of (and this list probably isn't exhaustive):
|
Description
Consolidates metadata in
pyproject.toml
. Templates the Conda recipe to pull this metadata frompyproject.toml
. This should consolidate most of the metadata in one place and minimize duplication and effort updating.Checklist