Edgewall Software

Version 5 (modified by cmlenz, 19 years ago) (diff)

Update status on custom database tables

Required Trac Refactorings

Some of the Bitten features require extensions and refactorings of Trac itself to allow seamless integration. This page describes the required work and tracks the progress made.

Custom Database Tables

Objectives

The Bitten plugin for Trac will require a set of custom tables in the Trac database. There needs to be a way to allow plugins to create their own tables when an environment is initialized, or in retrospect when the plugin is enabled for an existing environment.

Status

Keir Mierle checked an initial implementation into Argon that allows the trac.Environment to itself be a component with extension points, and defined an extension point that would get invoked when the environment is first created. This change was improved upon and ported to Trac in r1785.

Still need a way to allow components to add their tables after the environment has already been created, and to upgrade tables when the schema changes.

File Annotations

Objectives

To integrate the display of metrics such as code coverage or style problems into the Trac repository browser, the trac.mimeview framework needs to be extended to allow annotation of files in an extendible way.

Status

Preliminary support for custom file annotators has been checked in to Trac in r1764. The API will need further refinement to deal with additional annotations, for example:

  • The user should be able to select which annotations are shown. By default, only line numbers are displayed.
  • The current implementation assumes that every annotator provides one annotation type, and adds exactly one column to the rendered table. We might need to allow an annotator to contribute multiple columns (but probably still all belonging to a single annotation type?)
  • There needs to be a way to deterministically order the annotation columns. Line numbers first, some columns before the actual content lines, some columns after, etc.
  • In addition, annotators may not (only) want to add a column, but also do things like give a line a certain background color.

Notification on Repository Events

Objectives

The Bitten plugin needs to be notified when Trac detects new changesets in the repository.

Status

Work on this has not started yet.

Plugin-specific Permissions

Objectives

The current permission system in Trac needs to be revised so that it either becomes more generic, or allows plugins to define their own actions and meta-permissions.

Status

Some preliminary work has gone into the branch cmlenz-dev/perm. Also, there has been a proposal for a redesigned permission system on the mailing list.