Hi Chris, I think you got the the basics right.
An interface is just a class which is included in the plugin actually calling implementors. And yes, you can not "implement" an interface without importing the actual interface class. I'd like to throw in a plugin of mine [1]. As per Trac convention the interface is declared in api.py [2]. In my case, there some part which is general infrastructure as well as one specific captcha implementation. The latter can be provided with a separate plugin as well. So my recaptcha implementation [3] implements the interface. > It seems to me that existing EPs are defined in the core. Are there > non-core EPs? That's not entirely correct. All extension points documented on trac.edgewall.org are the ones included in core trac but there are plenty extension points for other plugins. fs [1] http://www.schwarz.eu/opensource/projects/trac_captcha [2] http://www.schwarz.eu/opensource/projects/trac_captcha/browser/trac_captcha/api.py [3] http://www.schwarz.eu/opensource/projects/trac_captcha/browser/trac_recaptcha/integration.py#L56 -- You received this message because you are subscribed to the Google Groups "Trac Development" group. To post to this group, send email to trac-dev@googlegroups.com. To unsubscribe from this group, send email to trac-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/trac-dev?hl=en.