[tahoe-lafs-trac-stream] [tahoe-lafs] #2077: pip packaging plan

tahoe-lafs trac at tahoe-lafs.org
Wed Sep 4 15:33:19 UTC 2013


#2077: pip packaging plan
--------------------------------------+---------------------------
 Reporter:  daira                     |          Owner:
     Type:  defect                    |         Status:  new
 Priority:  normal                    |      Milestone:  undecided
Component:  packaging                 |        Version:  1.10.0
 Keywords:  pip packaging setuptools  |  Launchpad Bug:
--------------------------------------+---------------------------
 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.

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2077>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list