[Chandler-dev] Keeping Feed and other parcels out of the end users' binaries

Phillip J. Eby pje at telecommunity.com
Fri Sep 1 14:47:29 PDT 2006


At 01:44 PM 9/1/2006 -0700, Philippe Bossut wrote:
>We could in the meantime provide the eggs for download off a Wiki looking 
>pages as we do for snapshot builds so, for those who want them, they're 
>not impossible to find in a user digestible form.

Just as an FYI, running "setup.py register bdist_egg upload" in a project 
directory will register the project with the Python Cheeseshop and upload 
an egg.  There is a "long_description" field that can be set in the setup 
script, and this is uploaded to the project's cheeseshop page.  For 
example, see setuptools' Cheeseshop page:

     http://cheeseshop.python.org/pypi/setuptools

Text that's put in the long description field can be formatted using rST 
format ("reStructured Text"), and thus makes a nice page.  Registering a 
new version of a package like this also results in it being announced to 
the Python community via various RSS feeds and aggregators.

So, from the perspective of promoting plugin projects to at least the 
Python community, this is a very low-effort way to get the distribution 
done, and we don't even have to serve the eggs ourselves.  The Cheeseshop 
site even displays download statistics for the eggs, so we can get an idea 
of their popularity.

The "easy_install" tool automatically scans the Cheeseshop site as well, so 
if we include it (or a simple wrapper for it in the UI), users can use it 
to download and install plugins.  The amount of effort would be determined 
by how much user experience quality we want to provide, since the basic 
functionality already exists to just run "easy_install 
Chandler-FeedsPlugin" from the command-line, causing the plugin to be 
recognized the next time Chandler starts up again.  We could do anything 
from leaving it a command-line operation, all the way up to providing menu 
options and dialogs and an automatic restart, perhaps with the ability to 
roll back or uninstall a plugin.

On a related note, the Enthought folks have been building a GUI wrapper for 
easy_install called "Enstaller", to go with their Envisage IDE product.  It 
is open source Python code, but unfortunately it looks as if may be 
Windows-only at the moment.  However, it might offer some inspiration for 
plugin management.  I have not used or even *seen* it, though, so this 
shouldn't be taken to mean that I endorse its UI.  :)  I'm just noting that 
it exists as a possible source for stealing good ideas.  (Also, it may not 
actually be limited to Windows; I recently received an emailed question 
from one of its developers that had to do with LD_LIBRARY_PATH issues on 
Linux, so they may be working on versions for other platforms.)




More information about the chandler-dev mailing list