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
Add pyproject.toml #471
Add pyproject.toml #471
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #471 +/- ##
=======================================
Coverage 81.02% 81.02%
=======================================
Files 5 5
Lines 1254 1254
=======================================
Hits 1016 1016
Misses 238 238 ☔ View full report in Codecov by Sentry. |
The next major step is to figure out how best to workaround the deprecation of This feels like a lot of extra code to have to add for this feature... ideally the |
4717c8b
to
3c17beb
Compare
Shoot... I just saw the other merge push and assumed it was just merge stuff so I rebased on main and force-pushed over it. Then it occurred to me that there may have been other, non-merge-conflict changes in there, in which case I just bulldozed them. Apologies if that was the case! I'm stepping AFK soon so feel free to push to this as necessary and sorry again if I overwrote changes! |
Okay I've rebased on main and this is now working on all platforms with the updated One of the most important things to double-check during review is that I ported over all the desired metadata from the |
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. I will make a release candidate and double check that we didn't break anything or leave out any metadata.
@rossbar I will let you merge.
I took inspiration here from networkx/networkx#6774. I was particularly interested in testing out setuptools.build_meta as a build backend for binary extensions. In pygraphviz's case, this seems to have been entirely straightforward (on Linux at least). I think one of the main reasons why is that the build actually doesn't directly depend on SWIG - the SWIG-generated source files are actually tracked in the source repository, so SWIG is not actually required as a build dependency.
This means that updating SWIG doesn't actually have an effect on the package unless swig is actually run to re-generate the sources. This is something we can/probably should fix, but is a separate issue.
Aside from that, there are still plenty of other little TODO's (i.e. optional dependencies/templating pyproject.toml as was done in networkx/networkx#6774, etc.) but hopefully this is a decent starting point!