Hey, Roger Ineichen wrote:
I think there is a little confusion about which package depends on each other.
Right now there is a zmi.core package this package should contain core parts without to much dependency. After that we need several zmi.* packages which are replacements for each zope.app.* package. right?
Right. Note that I'm against making too many zmi.* packages right now, keep it all in a few packages now. Concerning dependencies, let's first talk about zope.container: zmi should depend on zope.container zope.app.container.browser should have backwards compatibility imports from zmi, and zope.app.container should depend on zmi Now let's talk about a package that *hasn't* been factored away from zope.app.* yet, such as zope.app.file: in this case, zmi would depend on zope.app.file but zope.app.file.browser would depend on zmi. That's a circular dependency, which we should break as soon as possible by moving zope.app.file's content objects to zope.file or something like that.
I think it should be like:
1. zope.app.foo moves ZMI code to zmi.foo
2. zope.app.foo imports the zmi code from it's zmi.foo package
Agreed.
This allows us to move the zmi code from the zope.app packages to zmi packages. Custom projects can then depend on zmi.foo and skip the dependency to zope.app.foo. (at least for the zmi) probably some zope.app.* packages contain only zmi code probably some contain other code like Martijn told with zope.app.form. That's fine and is not a part of our refactoring.
Projects which depend on zope.app.foo and will use the latest code will get pulled in the zmi.foo package without any other dependecy and should just work without to change the project setup since the zope.app.foo package defines the zmi.foo dependency in thier setup.py file.
Agreed.
btw, I think we should refactor the old menu implementaiton too ar at least review it since this part is very, very slow. But that's another part and could probably done after finishing the zmi refactoring part.
Agreed; do it after the zmi refactoring. Thanks Roger for the coordination. I think we all agree on where we need to go, which is good. Regards, Martijn