RT supports a common extension format for adding functionality to extensions, and it is obviously useful to package some of them in Debian.

Most RT extensions use Module::Install:RTx upstream. Because this needs modifications to be useful for Debian, and because embedded in the extensions themselves (in inc/) things can be a bit messy. In addition there is not really a good infrastructure for managing database schema/content modifications during extension module installation at the moment.

This wiki page is an attempt to collect together common/best practices for extension maintenance, and coordinate activity on common tools/patches.

There is a packaged version of the normally-embedded Module::Install::RTx maintained by KURASHIKI Satoru (libmodule-install-rtx-perl).

First, an audit of existing modules in sid:

(Link to all team git repos: http://anonscm.debian.org/cgit/pkg-request-tracker)

Source name

Description

Team maintained?

Primary maintainer

Notes

rt-authen-externalauth

External authentication

No

Tom Jampen

A separate packaging effort http://anonscm.debian.org/cgit/pkg-request-tracker/rt-extension-authen-externalauth.git/ should probably be tidied up

rt-extension-assets

Asset tracking

Yes

Dominic Hargreaves

Not yet uploaded

rt-extension-assettracker

Asset tracking

Yes

Bradley Bell

Abandoned upstream, should be removed

rt-extension-calendar

Calendar view for Request Tracker 4

No

KURASHIKI Satoru

-

rt-extension-customfieldsonupdate

edit ticket's custom fields on reply/comment

No

KURASHIKI Satoru

-

rt-extension-jsgantt

Gantt charts

No

KURASHIKI Satoru

-

rt-extension-repeatticket

Repeat tickets based on schedule

No

Joost van Baal-Ilić

-

rt-extension-spawnlinkedticketinqueue

quickly spawn linked tickets in different queues

No

KURASHIKI Satoru

-

A note on package naming: RT extension source packages are generally named 'rt-extension-foo' but the binary packages are named 'rt4-extension-foo'. This is to allow for the possibility of a major new RT version which we want to allow to be co-installed.

The ultimate aim should be that the three-line dh style rules file or something close will work for all RT extensions. At the moment there are several customisations:

Testing

Out of the box, RT extension packages' test suites can't be run in an isolated fashion since they need an installed version of RT with a writable database in place. Packages probably shouldn't even attempt it, in case the user happens to build the package in an environment where they have write access to a production database.

I wrote a mailing list post about this a few weeks ago with some possible solutions, but am still hoping for feedback:

Database manipulation

TODO: document current status (example: rt-extension-assettracker and rtfm); need for reusable tools