references-proposal

by Whit Morriss last modified Jan 29, 2006 12:54 PM

Reference Engine Proposal

Goal:

python package of components providing reference behavior

base implementation usable for all content types (z3, cmf, etc)

Antecedents

Starting with general pattern of Archetypes Reference Engine.

Implementation Layout

Goal:

Define concrete set of interface to describe the requirement for content to make references and to be referenced.

Interface

(put pieces here)

Implementation Aggenda

steps for evolving from current tool implementation to general python component.

Actions

  1. Create separate package for reference engine and uuid
  • Deprecate AT UUID implementation and Referenceable

0) Initial implementation of those interface that creates an interchangeable system with current Archetypes Reference Engine.

XXX agree on methods these interfaces will provide
  1. Refactor implementation to be able to refer to any annotable object
  • abstraction for plugging in uuid implementation
  • Create abstraction for reference storage for annotation and bbb.
  • Create abstractions for get and setting references
  1. Deprecate all old implementation refactored
  1. Migration from bbb.storage to annotation storage
  • remove Referenceable as a mixin
  • migrate: move object from .at_references to 'archetypes.reference.storage' annotation namespace
  1. Refactor reference types
  • use zope content classes instead of current zope2 simpleitem derived classes.
  • deprecate old reference types
  • provide a migration