[Imported from Trac: page Packaging, version 8]

zooko 2007-08-20 18:10:10 +00:00
parent a140c00689
commit 3ec6e090c3

@ -31,28 +31,16 @@ Advantages (note that each of these are options provided by setuptools, not requ
* replace "build/configure/package/distribute/test/develop" code written in the Make language with code written in Python; One specific instance of this is `./setup.py test` which runs the unit tests
Disadvantages:
* We haven't figured out exactly how to take advantage of setuptools's dependency management while also integrating smoothly with platform-specific package managers such as Debian apt. I (Zooko) think that this is possible, but it isn't yet standard practice among setuptools users. One important detail is the special option to setuptools called `--single-version-externally-managed`.
We already have [a patch](http://allmydata.org/darcs.cgi/tahoe-setuptools/?c=annotate&p=20070522155758-eb44e-15f8219675d4b35b2488bc742f46714526d61cb3.gz) which changes Tahoe to use setuptools, but it doesn't solve the "How to integrate smoothly with platform-specific package managers." part yet.
## discussion
I came across this page: <http://wiki.debian.org/DebianPythonFAQ> , which suggests that --single-version-externally-managed is the Right Way to build debian packages out of setuptool-using python projects, and that the process is actually fairly easy.
So one way to do this is to have each of our built-in subprojects (allmydata, foolscap, zfec, and now simplejson) produce separate eggs, and have some debian glue that produces separate .debs for each. Given that both foolscap and simplejson have native ways of producing .debs, it would be good for the tahoe .deb to not include them (to allow both tahoe and the native .debs of foolscap or simplejson be installed at the same time).
So we could have a 'build' target (perhaps in the makefile) which produces a handful of eggs, or a handful of .debs, and you need to install whichever ones you don't already have. Or you can just run from source.
-Brian
## related tickets
#15 -- consider using setuptools for tahoe
#10 -- clean up after yourself when told to "make clean"
The primary ticket for tracking our progress on this issue:
#82 -- remove the "build" step in the "edit, build, run" cycle
Other related tickets:
#10 -- clean up after yourself when told to "make clean"
#47 -- use pyutil as a separate package and contribute src/allmydata/util/* into pyutil