[TransWarp] Naming plan for TW->PEAK migration

Phillip J. Eby pje at telecommunity.com
Mon Jun 10 16:25:14 EDT 2002

Here's the rough renaming plan that Ty and I hashed out today:

TW.API         peak.api
TW.CIS         peak.binding
TW.Database    ???? (pending refactoring)
TW.MOF         peak.metamodels.mof
TW.Naming      peak.naming
TW.SEF         peak.model (As in model-view-controller)
TW.UML         peak.metamodels.uml
TW.Utils       peak.util
TW.XMI         peak.metamodels.xmi

*.tests        *.tests

This will leave us with the following top-level subpackages:


Top-level modules such as TW.Caching and TW.Callbacks will probably move to
the peak.util package, if they come over at all.  In general, I won't be
porting a package from TW if I consider its interface or implementation
subject to significant changes before I'll be happy with it.  The
peak.metamodels package is a rather oddball exception, because the code
that's there is effectively a nice test suite for the peak.binding and
peak.model packages, even though I'm really unhappy with it for actual use.
 (There are also certain modules in TW.SEF that will probably move to
peak.metamodels: Queries, FeatureObjects, and SimpleModel.)

Module and package names will be moving to lowercase for the most part, to
emulate the emerging Python standard library conventions.  While it's
unlikely that TW/PEAK will ever become part of the Python standard library,
it will nonetheless be helpful if it "smells" more like standard Python.  I
may still use mixed-case names for less-visible modules, and certain
by-convention names such as ".Interfaces" modules.  It's not 100% clear to
me yet.

Open issues: it's not clear what should happen with the TWX package.  I
don't know if the single existing subpackage, Diagrams, deserves a
'peak.diagrams' space, or whether the 'util' space should be jammed full of
miscellaneous packages.  Creating a 'tools' package might make sense, but
it's all fairly premature at this point.  I think that TWX.Diagrams
probably just won't make it into PEAK 0.2.

The CVS for TW will remain as-is for now.  I will create a new top-level
package, PEAK, which will contain a src/peak directory for the main
package.  I'll look into the feasibility of including src/Interface (Zope 3
interfaces) and src/kjbuckets, allowing the setup utility to install both.
I'd also *really* like to be able to have options on the setup to specify
partial installs, so that people who want to install without the tests,
etc. can do so.

As always, I'm open to suggestions, ideas, etc., especially wrt formalizing
the naming policies better.  I want a set of rules that can last us at
least a year or two, maybe longer.

More information about the PEAK mailing list