-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Improved ''setuptools.finalize_distribution_options'' hook. #2031
Improved ''setuptools.finalize_distribution_options'' hook. #2031
Conversation
352334a
to
7ea3f28
Compare
…tadata appended to a ''name'' after ''@'' character. It is a backward-incompatible change, but the breakage will unlikely happen.
… stuff. When an entry point now fails to be loaded, it doesn't disrupt building process.
…setuptools.finalize_distribution_options hook
7ea3f28
to
033d886
Compare
… disrupting the whole process.
033d886
to
8d3e79a
Compare
…ze_distribution_options_improvements
8d3e79a
to
59c68c2
Compare
Thank you for putting this together. You've obviously put a lot of thought and work into addressing the issue. My initial reaction is that this PR suggests a substantial change to the codebase to address what looks like a fairly simple concern. That is, if #2030 is the motivation for this issue, this PR is doing a lot more than just addressing that concern. Moreover, the changelog entries seem to address multiple different issues. Was it your intention to include all of those changes in this PR? |
Looking at the subsequent PRs, I see that they all are attempting to improve the finalize_distribution_options hook, but I worry that these attempts are adding quite a bit of behavior (complication) and maintenance burden to the code. At a high level, here are some concerns I would want to address before accepting changes like these:
The setuptools code is used across a very wide variety of systems and use-cases, so it's important for this project to be extremely deliberate about changes, including new features. I don't want to discourage you - there may be some useful ideas here, but they're all entangled. Let's start by breaking the problem down into smaller chunks. I'm going to close this and the other PRs, but please do be encouraged to take another stab with a more modest change, and as we work together, perhaps we'll end up at a similar implementation. |
Haven't I already broken the problem into small chunks - the other PRs (#2037, #2032, #2033, #2034, #2035, #2036, #2038)? I mean some of them are small and straightforward. For example #2037 is useful even if all other PRs are rejected. Could you, please, review them all and find out which ones can and should be merged right now, and if not, name the issues preventing them from being merged and proposed ways to improve?
I guess the best place to discuss the features are in the PRs, not in the issues. Because in the PRs there is code, so we can discuss specific pieces.
Yes, every feature is complication and maintaince burden.
I know - it impacts my projects, using the same metadata mechanism (but it is very easy to support both old and new versions, just to check for presence of So, despite these 2 drawbacks, the alternative to them is much more worse - to make all the developers of the projects using the hook to have a non-standard, probably own ones, impls, that can conflict each other. In fact I can move most of the code into a separate lib, that can be just used by setuptools plugins authors, but it has a drawback that it would be not a standard way to provide metadata, so it won't solve the problem of conflicts. So IMHO this really has to be addressed in setuptools itself. As I see, there is already a mechanism (ordering) depending on metadata, though metadata is not yet implemented, so the mechanism doesn't work, so it seems that it is already decided that entry points should have metadata. Also I feel like the addressing relative to |
@jaraco , I have added some discussion on their purpose and design (except the one already told in #2031 (comment)) to the PRs. |
Summary of changes
Closes #2030
Pull Request Checklist