-
Notifications
You must be signed in to change notification settings - Fork 27
Don't ignore setup.py even if a setup.cfg file exists #66
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
Even if using a setup.cfg, you need a setup.py to pull in its data, and that setup.py may have additional data in it which we were previously ignoring
|
Rebased on latest |
|
@dirk-thomas Any input on this? It seems like the code I removed is part of some unfinished feature ( |
|
@dirk-thomas, @cottsay, @nuclearsandwich |
|
Newer versions of |
|
Cool! I didn't realize that, but it seems such PEP 517 projects are broken under colcon anyway: A package without Do you still feel a change is necessary to this PR? |
|
@dirk-thomas Do you feel a change is necessary to this PR to support packages without a setup.py file, or is it okay as is, since such packages are not supported by the build system? Please give me some direction here --- I'm willing to put in the leg-work. I can understand needing time to vet big or risky PRs, but this is neither and it's been stagnant for 2 months. |
|
@dirk-thomas, @cottsay, @nuclearsandwich |
|
The colcon_core.package_identification.python.PythonPackageIdentification extension is responsible to identify Python packages with a The colcon_python_setup_py.package_identification.python_setup_py.PythonPackageIdentification extension is responsible to identify Python packages with a Atm the identification logic for ROS Python packages chooses between these two approaches based on what files are present - if there is no So changing the logic as in this PR - to always use the second approach - would a) break packages using the first approach as well as b) wouldn't make the information from the The question is how can we distinguish these different package types better? |
|
The assumption of the project is wrong - project information is not "either in a For instance, demo_nodes_py has a setup.cfg file but also has a nontrivial amount of metadata in its setup.py. There is an easy rule to distinguish the two types of packages - the presence of a With non-PEP-517 projects, a setup.cfg file is always accompanied by a setup.py file (and the build can also be affected by . With PEP-517 projects, you must parse the |
I wasn't describing how it should be or what would be correct - I was only describing the currently implemented logic.
And atm only the arguments to the
That is simply incorrect. Please check any
That is technically correct - PEP 517 support can maybe be added in the future - but that is not the point here. A |
|
Ooooooooooooooohhhhhhhhhhhh. I figured this totally wrapped the call to setup.py and got the resulting egg info. I didn't realize that we don't capture the actual egg info emitted by setup.py - just the arguments to the |
|
Closing in preference to colcon/colcon-core#215 |
Even if using a setup.cfg, you need a setup.py to pull in its data, and that setup.py may have additional data in it which colcon was previously ignoring.
fixes #65