Merge lp:~wgrant/lazr.restful/cross-module-contribution into lp:lazr.restful
Status: | Merged |
---|---|
Merged at revision: | 205 |
Proposed branch: | lp:~wgrant/lazr.restful/cross-module-contribution |
Merge into: | lp:lazr.restful |
Diff against target: |
295 lines (+81/-78) 4 files modified
src/lazr/restful/NEWS.txt (+8/-0) src/lazr/restful/metazcml.py (+67/-65) src/lazr/restful/testing/helpers.py (+0/-5) src/lazr/restful/tests/test_declarations.py (+6/-8) |
To merge this branch: | bzr merge lp:~wgrant/lazr.restful/cross-module-contribution |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Celso Providelo (community) | Approve | ||
Review via email: mp+211682@code.launchpad.net |
Commit message
Rework contributes_to handling to not require that an interface and its extensions all live in one webservice:register module.
Description of the change
The implementation of extension interfaces with contributes_to explodes with zope.configuration conflicts when an interface and its contributors span multiple webservice:register directives. find_interfaces
zope.configurat
For: ('webservice entry interface', <InterfaceClass lp.registry.
File "/home/
File "/home/
For: ('webservice versioned operations', <InterfaceClass lp.registry.
File "/home/
File "/home/
This is a fatal flaw for the situation that contributes_to was meant to solve: it's not possible to have entry extensions pluggable by optional bits of ZCML.
This branch fixes extension interfaces to be calculated globally. I use a global dict in metazcml.py, cleared in zope.testing.
Thanks for landing this change, it will help a lot the tasks we have in mind for LP and hopefully other large products using lazr.restful.