add notes about setuptools
[Imported from Trac: page Packaging, version 2]
parent
6b75386b99
commit
17ee174ac3
18
Packaging.md
18
Packaging.md
|
@ -13,3 +13,21 @@ For libraries that Tahoe uses, we have these desiderata:
|
||||||
* The user doesn't have to manually resolve any conflicts (this means that we either have to automatically use a 3rd-party library if it is already installed or else we have to automatically force Tahoe to use the copy that it came bundled with).
|
* The user doesn't have to manually resolve any conflicts (this means that we either have to automatically use a 3rd-party library if it is already installed or else we have to automatically force Tahoe to use the copy that it came bundled with).
|
||||||
|
|
||||||
* Make it convenient for someone to use other versions of the packages that we use e.g. system-wide packages or newer or alternate versions, etc..
|
* Make it convenient for someone to use other versions of the packages that we use e.g. system-wide packages or newer or alternate versions, etc..
|
||||||
|
|
||||||
|
## setuptools
|
||||||
|
|
||||||
|
One option is to use a Python packaging tool named [setuptools](http://cheeseshop.python.org/pypi/setuptools).
|
||||||
|
|
||||||
|
Advantages (note that each of these are options provided by setuptools, not requirements imposed by the use of setuptools):
|
||||||
|
|
||||||
|
* management of dependencies (even on platforms that don't have a native package manager); This is the important feature.
|
||||||
|
|
||||||
|
* integration with <http://cheeseshop.python.org/> -- with setuptools we can update the [allmydata-tahoe metadata at the cheeseshop](http://cheeseshop.python.org/pypi/allmydata-tahoe) automatically, and also upload packages to be distributed from cheeseshop
|
||||||
|
|
||||||
|
* for hackers who want to use Tahoe, and who like setuptools, this makes using Tahoe convenient and pleasant for them
|
||||||
|
|
||||||
|
* 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`.
|
||||||
|
|
Loading…
Reference in a new issue