Warning:
Can't synchronize with the repository (Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.
- Timestamp:
-
03/15/09 01:34:52 (18 months ago)
- Author:
-
msfrank
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
|
v8
|
v9
|
|
| 2 | 2 | = Developer Documentation = |
| 3 | 3 | |
| | 4 | === Getting Started === |
| | 5 | |
| 4 | 6 | The first thing a new developer will likely want to do is grab the latest version of Higgins and build it; for these instructions see the [wiki:BuildingFromSource] page. After getting it installed, try getting a feel for how Higgins works by reading some of the [wiki:Users user documentation]. |
| 5 | 7 | |
| | 8 | === Getting Deeper === |
| | 9 | |
| | 10 | The [wiki:ServerArchitecture server architecture] page gives a high level description of Higgins, including links to code documentation extracted using pydoc. For an overview of how plugins work in Higgins, read the [wiki:AnatomyOfAPlugin] page. |
| | 11 | |
| | 12 | === Getting Involved === |
| | 13 | |
| 6 | 14 | There is a google group for discussing higgins development: [http://groups.google.com/group/higgins-developers higgins-developers@googlegroups.com]. Note that user questions will not be answered on this list. |
| 7 | | |
| 8 | | == Architecture == |
| 9 | | |
| 10 | | At the highest level, Higgins is logically divided into ''core'' and ''plugins''. Core is mostly low-level infrastructure needed to support the plugins, which do all of the really interesting stuff. |
| 11 | | |
| 12 | | === Core === |
| 13 | | |
| 14 | | || '''Package''' || '''Description''' || |
| 15 | | || higgins || application startup, plugin loading, settings management, logging || |
| 16 | | || higgins.core || web interface, database management || |
| 17 | | || higgins.data || static data (CSS, django templates) || |
| 18 | | || higgins.netif || functions for getting information about network interfaces || |
| 19 | | || higgins.upnp || UPnP infrastructure, SOAP parsing || |
| 20 | | |
| 21 | | === Plugins === |
| 22 | | |
| 23 | | Higgins supports multiple types of plugins. In order to create a plugin, you subclass from the appropriate Higgins class. Currently the following classes can be subclassed to create a plugin: |
| 24 | | |
| 25 | | || '''Base class''' || '''Description''' |
| 26 | | || higgins.core.configurator.Configurator || Provides a declarative interface to manage settings || |
| 27 | | || higgins.service.Service || Provides a simple interface to do work asynchronously || |
| 28 | | || higgins.upnp.device.Device || Provides an interface to describe a UPnP device || |
| 29 | | |
| 30 | | For an overview of how plugins work in Higgins, read the [wiki:AnatomyOfAPlugin] page. |