Changes between Initial Version and Version 1 of Ticket #1146, comment 3


Ignore:
Timestamp:
2012-04-17T19:19:44Z (12 years ago)
Author:
zooko
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1146, comment 3

    initial v1  
    1 Hm, there are four overlapping namespaces here.
    2 
    3 One is the "appname" which is defined by us (the Tahoe-LAFS project) to distinguish different variants or forks of Tahoe-LAFS or independent implementations of the LAFS protocol. We agreed on how to do this versioning in [http://tahoe-lafs.org/pipermail/tahoe-dev/2008-November/000879.html this message to tahoe-dev]. The appname is used in [source:src/allmydata/__init__.py@4597#L61 in allmydata/__init__.py] to construct a variable named {{{__full_version__}}}, which is used in a few places such as [source:src/allmydata/storage/server.py@4595#L270 storage/server.py]. The appname for Tahoe-LAFS has been "allmydata-tahoe" for the last couple of years, and we would like to change the appname to "tahoe-lafs" someday.
    4 
    5 Another namespace is the Python "distribution" namespace. (A "distribution" is what the Python world calls a package.) This is a global namespace where everyone on the planet is supposed to avoid choosing colliding names. An important central locus of this namespace is the Python Package Index (which I suppose ought to be called the "Python Distribution Index")—installers such as {{{easy_install}}} and {{{pip}}}, when asked to install a distribution named {{{$DIST}}}, will by default look for it at {{{http://pypi.python.org/pypi/$DIST}}}. The distribution name for Tahoe-LAFS has been "allmydata-tahoe" and we would like to change it to "tahoe-lafs".
    6 
    7 The third namespace is the Python "package" namespace. (A "package" is what the Python world calls a directory containing an {{{__init__.py}}} file.) This namespace is global and is populated by all of the Python distributions that you install on your system. Collisions are silently resolved by a complicated algorithm involving your {{{PYTHONPATH}}} and a certain widely disliked hack due originally to setuptools ([http://bugs.python.org/setuptools/issue53 setuptool #53]). The {{{tahoe-client.tac}}} file loads a package named {{{allmydata}}}. We would probably like to change that in the future to {{{tahoe}}}.
    8 
    9 Now currently [source:trunk/setup.py@4616#L329 our build scripts] ensure that the Python distribution name is always equal to the appname, and the [source:src/allmydata/scripts/create_node.py@4641#L31 create-node command] adds {{{pkg_resources.require(APPNAME)}}} to the {{{tahoe-client.tac}}} file.
    10 
    11 The fourth namespace is the scripts and executables in your system, where we currently create a file named {{{tahoe}}}.
    12 
    13 One thing that we can do right away to ease this is change create-node to stop putting the call to {{{pkg_resources.require()}}} in the tahoe-client.tac.