﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
2077	pip packaging plan	daira		"I have a plan for improving Tahoe-LAFS packaging:

1. Replace [source:src/allmydata/_auto_deps.py] with a pip-compatible requirements.txt file, and change [source:setup.py] to parse that to get install_requires, instead of doing execfile on `_auto_deps.py`.

2. Add documentation for how to install Tahoe-LAFS using pip (still using zetuptoolz), assuming pip is already installed.

3. Add a bundled egg of pip 1.5 (or maybe virtualenv).

4. Change `setup.py` to add a `getpip` command: if `import pip` yields a version >= 1.5 already, this command does nothing, otherwise it performs a pip bootstrap using the bundled egg.

zooko-unauth: I guess, I would be worried about that, unless we had good automated tests of packaging, which we sort of have a little of already and nejucomo sounds serious about improving it.

5. At this point it's possible to do `[sudo] python setup.py getpip`, so change the docs to recommend doing that.

zooko-unauth: Whoa, what docs?

daira: The docs that we added about pip-installing

zooko-unauth: My main concern about all of this is that `quickstart.rst` does not get more manual steps added.

daira: `quickstart.rst` doesn't get updated until the last step, except perhaps to add ""if you like pip, here's the doc to install it that way"".

6. Write buildsteps to test a pip build and a (prefixed) pip installation.

7. When we're confident that there are no important regressions, make `python setup.py build/install` use pip automatically (without installing it).

8. Fix any remaining obstacles to ditching zetuptoolz (preferably by fixing those upstream)

zooko-unauth: This is where regression tests would be extremely useful.

9. Replace the bundled zetuptoolz with a copy of upstream setuptools
(unfortunately we can't just delete it and rely on an installed setuptools and still get the required security, I think).

10. At some point in the far future where good versions of pip and setuptools (if that's still a dependency) are widely deployed, delete the bundled versions and make it a hard error if acceptable versions are not installed."	defect	closed	normal	1.11.0	packaging	1.10.0	fixed	pip packaging setuptools		
