===================================== Extensible and pluggable applications ===================================== As written in `Envisage documentation `_, the applications we write need to change over time. We fix bugs, and we add, modify, and remove features. In other words, we spend most of our time either fixing or extending applications. Sometimes we extend our applications by changing the actual code, sometimes we have other ad hoc extension mechanisms in place – a text file here, a directory of scripts there. As applications grow, they often end up with numerous places where they can be extended, but with a different extension mechanism at each one. This makes it hard for developers who want to extend the application to know : - where they can add extensions - how to add them Useful links ============ Some implementations -------------------- * `Trac component architecture `_ * `Yapsy (yet another plugin system) `_ (example of plugin framework. Several links inside) * `Envisage `_ * `PyUtilib `_, `Architecture Doc (PDF) `_ * `Another simple framework `_ Other documentation ------------------- * `Fundamental concept of plugin infrastucture `_ * `Python plugin framework `_ PkgResources / entry points =========================== * `pkg_resources official website `_ ETS Envisage / extension points =============================== * `Envisage official website `_, OpenAlea components =================== See `How to declare OpenAlea components `_.