diff --git a/Packaging.md b/Packaging.md index 05e10ea..dde7511 100644 --- a/Packaging.md +++ b/Packaging.md @@ -87,9 +87,18 @@ Advantages: * for hackers who like setuptools, this makes using Tahoe convenient and pleasant for them -Possible advantages: + * it allows "build/configure/package/distribute/test/develop" code written in the Make language to be replaced with code written in Python. One specific instance of this is `./setup.py test` which runs the unit tests. (We still have a makefile, but it is possible to build and develop Tahoe-LAFS without using it.) + +Disadvantages: + + * setuptools has many bugs and is poorly maintained. + + * these bugs affect Tahoe-LAFS disproportionately because it has more, and more complicated, dependencies than most Python packages. We currently have [count)](TicketQuery)(status!=closed&keywords~=setuptools, open setuptools-related bugs ([full list]query:status!=closed&keywords~=setuptools) and have closed [count)](TicketQuery)(status=closed&keywords~=setuptools, such bugs ([full list]query:status=closed&keywords~=setuptools). (These counts may be a bit high because of duplicates and non-bugs, but they're indicative of the problem.) + + * maintaining our fork (which is necessary to avoid some of the bugs) takes up developer time and mental bandwidth that would be more productively spent on Tahoe-LAFS itself. + + * even when working as designed, setuptools has some serious problems. For example, people who package Tahoe for OS distributions generally dislike very much its behaviour of automatically downloading dependencies from random websites (however convenient something like that would be if it were optional and designed properly). - * perhaps in the future we will 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 ## Build System Theory