On 30/07/2010 15:37, Tarek Ziadé wrote:
On Fri, Jul 30, 2010 at 4:04 PM, Barry Warsaw<ba...@python.org>  wrote:
..
* Registration - How do third party plugins declare themselves to exist, and
  be enabled?  Part of this seems to me to include interface declarations
  too.  Is installation of the plugin enough to register it?  How do end users
  enable and disable plugins that me be registered on their system?  How do
  plugins describe themselves (provide short and log descriptions, declare
  options, hook into command line interfaces, etc.)?

* Installation - How are plugins installed on the system?  Do they have to
  appear in a special directory on the file system?  Do they need special
  setup.py magic to write extra files?  Do they need to live in a pre-defined
  namespace?
FWIW We are thinking about adding in distutils2 a system quite similar
to the entry points
setuptools has, but with extra abilities for the end user :

- activate / deactivate plugins without having to remove the project
that added them
- configure globally if plugins are implicitely activated or not --
and maybe allow the distutils2 installer to ask the user
   when a plugin is detected if he wants it activate or not
- provide a tool to browse them

This will be done through files added in the dist-info/ dirs, with the
new PEP 376 api we are
adding to pkgutil

The idea is that the end user should be able to have a full control on
what's activated in his system,
without relying on the developer choices

This system sounds great. unittest could certainly use it for discovering plugins provided by other packages.

The question then is still how to decide which ones should be active for any individual project (just because a plugin is available doesn't mean you want it used for every project). A configuration system is still good for this, but that kind of negates the advantage of discovery if the user still has to configure the plugin *anyway*.

For framework authors not using the default test runner ("python -m unittest" or "unit2") this would be very useful.

Michael

Cheers
Tarek


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog

READ CAREFULLY. By accepting and reading this email you agree, on behalf of 
your employer, to release me from all obligations and waivers arising from any 
and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, 
clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and 
acceptable use policies (”BOGUS AGREEMENTS”) that I have entered into with your 
employer, its partners, licensors, agents and assigns, in perpetuity, without 
prejudice to my ongoing rights and privileges. You further represent that you 
have the authority to release me from any BOGUS AGREEMENTS on behalf of your 
employer.


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to