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
-~----------~----~----~----~------~----~------~--~---

Reply via email to