Versioning of Components
In https://bugs.launchpad.net/zope.component/+bug/97916, @srichter reported:
I found the following comment from djay in the Wikis, which we should really consider:
One thing I'd like to see is support for version numbering of components. This is to support the evolution of components. Content components for instance may have more attibutes added at some point. It would be nice if all instances did not just up and change themselves but you had control over the migration. esp if you could have special code that did the specific transformations for you (eg the recent Catalog data structure change).
The same need for control of change applies to interfaces. Interfaces will change and unless your components are tied to specific versions of those interfaces you will not be able to guarentee anything thus defeating their purpose. You can argue that you should change the name of an interface everytime it changes but I think this could be very ugly very quickly.
Hi,
Is there a way with the current API to version a component or is this case still to be investigated?
One can use convention in the naming of registrations and interfaces, or even entirely separate registries. Other than that, there is no explicit API support I'm aware of.