On Mon, Feb 23, 2009 at 12:11 PM, Noah Kantrowitz <[email protected]> wrote: >> >> I would like to learn more about how Trac works and it seems that >> knowing what the system looks like might help. This is why I would >> like to see come type of architectural diagram. Does one exist? > > Not sure what you are asking for. Trac is a webapp, not some kind of > large server install. It touches a DB for storage (though in the case > of sqlite you wouldn't notice) and the svn repo to display data about > it (read-only access is fine for FSFS-based repos). The only other > "architecture" concern I can think of is needing an SMTP server to > send emails.
It might be helpful to see diagram what describes Trac working principles for people who do not know about web applications. To illustrate possible installation scenarios and show necessary application parts (Trac itself, Database), optional parts (Apache, nginx etc.), plugin placement. Clarify the role of web-server and DB server, Python linking to these, environment as configuration and its scope within Trac, web-server and Python instance, advantages/disadvantages of various setups. For a person with web-application development background, the existing Trac component architecture diagrams may be enhanced to show low level implications, such as that extension point provides environment for its plugins and plugins are always instantiated in the environment of their extension point. That extension point should be careful to give its plugins access to environment in case they need logging or other Trac API. That Trac API calls are tied to environment and there may be multiple environments within the same Trac/Python process, that's why we can't have environment singletone and should pass its reference around. It would be interesting to see circular dependencies between extension points and plugins in this architecture to study its possible weakness. The architecture description right now is not suitable for study or presentation and hence is not that open to explore new ways for enhancements. At first I wanted to propose this idea of making presentation of low-level details of Trac for PyCon, but thought it might be a bad idea to propose something that I can not create myself. =) -- --anatoly t. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Trac Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/trac-dev?hl=en -~----------~----~----~----~------~----~------~--~---
