-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Don't ignore setup.py even if a setup.cfg file exists #66
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