Adaptive Software Artifacts plugin for Trac. Alpha-status code.
JavaScript Python Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

ASA plugin for Trac


Consider this an alpha release. I will appreciate all the feedback on the plugin, but please note that it's an early prototype. It may be vulnerable to attacks (e.g., XSS), and therefore is not advisable to make available outside firewalls.

Only tested with sqlite, but it's likely to work with other database engines, namely postgresql.


The ASA plugin makes use of the Adaptive Object-Model architectural pattern and is supported by the Language Piggybacking pattern.

Setting-up the Development Environment

1st. Setup a development environment for trac

2nd. Create a test trac environment.

3rd. Checkout the plugin sources from the repository

4th. Install the plugin:

python develop -md /var/local/trac/anadaptiveproject/plugins

5th. Start tracd and check if you can open the newly created environment in the browser

tracd -r --port 8000 /var/local/trac/anadaptiveproject

Refer to Using tracd for further options.

6th. Enable the plugin on your trac environment's administration page (Admin > Plugins)

7th. Include the adaptiveartifacts item to the project's trac.ini, to add the plugin to the main navigation bar:

mainnav = wiki,adaptiveartifacts,timeline,roadmap,browser,tickets,newticket,search

8th. Hack, hack, hack, hack.

9th. Tracd should restart automatically.

Extra recommendations:

  • I strongly advise the use of virtualenv;
  • Remember, contributions are more likely to be accepted quickly if accompanied by the respective unit tests.

Using The Tests

Running them:

python -m AdaptiveArtifacts.tests.model

Running test coverage:

coverage run -m AdaptiveArtifacts.tests.model
coverage report -m --include=*AdaptiveArtifacts*

To get an HTML report:

coverage html --include=*AdaptiveArtifacts*


  • In case you don't have, you can install it via easy_install or pip
  • The root dir of the python modules must be findable by python (e.g., included on PYTHONPATH)