Brainstorm, What constitutes a public API? (was Re: [Zope3-dev] Re: APIs breakage)

Jim Fulton jim at zope.com
Tue Jul 13 09:56:15 EDT 2004


Jim Fulton wrote:
> Casey Duncan wrote:
> 
...

>> In a general sense in Zope 3, what does it mean for an API to be
>> private? Who should or shouldn't use it? The current module, package,
>> the framework, zope.app?
> 
> 
> I think we need to decide this.

OK, let's brainstorm.

I suggest:

- There be public interfaces and private interfaces.

   Here, bublic or private doesn;t say anything about
   security, but about the stability of and long-term
   commitment to an API.

- Public interfaces should be stable and hard to change.
   They *can* be changed, but only through a gradual change process
   involving deprecation warnings and a long period of backward
   compatability.

- Package 'interfaces' modules should *only* contain public
   interfaces. This means that, when developing new sofware,
   you should avoid ceating interfaces modules until you are willing
   to carve an interface in stone.

Thoughts?

Jim

-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org


More information about the Zope3-dev mailing list