Automagic Python Build System
One of Python's native and very popular build systems is "distutils" which comes shipped with Python itself. It is fairly limited, though, and requires the user to learn a lot about build systems. python-
In this blueprint we propose extending python-
We also discuss Debian package generation.
Blueprint information
- Status:
- Complete
- Approver:
- Rick Spencer
- Priority:
- High
- Drafter:
- Martin Pitt
- Direction:
- Needs approval
- Assignee:
- Martin Pitt
- Definition:
- Approved
- Series goal:
- Accepted for karmic
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Martin Pitt
- Completed by
- Martin Pitt
Whiteboard
Status:
implementation complete, just upstream proposition left (not bound by Ubuntu release cycle)
Work items:
add support for pykdeuic4 to p-distutils-extra: DONE
auto core code, collect files which are source: DONE
auto cmdclass: DONE
auto "packages": DONE
auto D-Bus configuration/
auto PolicyKit: DONE
auto .notifyrc: DONE
auto supplementary data: DONE
auto cmdclass: DONE
auto scripts: DONE
auto POTFILES.in: DONE
automatic test cases for everything above (1): DONE
auto modules: DONE
auto manpages: DONE
auto requires: DONE
auto provides: DONE
auto MANIFEST.in: DONE
automatic test cases for everything above (2): DONE
evaluate van.pydeb: DONE
creation of debian/: DONE
upload to Debian/Ubuntu: DONE
send description and proposal to Python devel ML:
if above gets positive feedback from upstream, write PEP for distutils-extra file types to upstream distutils:
write release note and test plan: DONE
pitti, 2009-06-03: incorporated UDS session notes into wiki spec, ready for review now
doko, 2009-06-03: the spec doesn't address any of the concerns raised by foundation team members and barryw during the session
pitti, 2009-06-03: the main two concerns were: (1) get support for new file types upstream (spec mentions that), and (2) automatic values are incompatible with the python mantra; I appreciate that, but that's what we want for this "quickly" use case; I'm not going to urge upstream to take the automatic part. Were there any others?
rickspencer3 2009-06-04: I didn't see the use case of automagically creating a ppa called out in the spec, was that implicit, did I miss it? Also, is the only convention to create an appropriate setup.py file, or will certain directory structures, file names, etc... need to be assumed in order to make this work?
pitti 2009-06-04: PPA creation is outside of the scope of this blueprint (I just added a "Scope" section); first, it doesn't fit into the idea of an upstream build system, and second PPA management for Debian source package is not limited to packages created by Python distutils. Since these are orthogonal jobs, they should be handled by different tools. As for the conventions, the spec points out that most files are identified by extension/content, with the only exception being executable scripts (where the convention is to put them into ./bin/).
doko, 2009-06-04: (1) requires a pep, which should be part of the spec. it doesn't have to be approved but should be submitted.
pitti, 2009-06-04: added ".. as a PEP" to spec.
pitti, 2009-06-25: python-
pitti, 2009-07-01: python-
Work Items
Dependency tree
* Blueprints in grey have been implemented.