I think it would be nice to integrate a small utility
into RT distribution which would help to install and
(probably) maintain the contribution add-ons.
You need to be more precise, as there are a number of types of add-ons,
all of which are somewhat different.
First thing that this utility would do is variable substitution:
so that the main RT installation and the installed add-ons would
reference the same version of Perl, the same RT lib, etc, and bin
paths, and (possibly) the same database access mechanisms.
Theres really four generic types of contributions.
Firstly, the ScripActions, ScripConditions and extra pages within the
WebRT directory. These wouldn’t require any assistance from such a tool,
as they all (should be) within the RT library scope and called using the
RT API methods by RT itself. ( ie, ‘use lib’ shouldn’t occur within a
RT::Action, RT::Condition or any file under WebRT/html ).
Secondly, standalone scripts that use the RT libraries. These do need
substitutions of RT library paths, but thats it. The rest of the RT
infrastructure takes care of the mundane tasks such as talking to the
database etc.
Thirdly, scripts which manipulate the database directly. You probably
don’t want to attempt to change those script’s ideas about where libraries
are.
The second nice-to-have task is much more complicated:
a kind of package management. The most complexity would be in
the sources version control, because most of the add-ins
need to modify some files in the installation.
And Fourthly, localised changes to the RT libraries or existing webpages.
For the latter, RT currently defines a separate directory (see
$MasonLocalComponentRoot), where localised overrides to the page can be
placed, with (I assume) your own version control. for the former, the
next version of RT has a similar ‘Overlay’ concept, which allows localised
changes to libraries to be in separate files, again with your own version
control.
However, to address the ‘package management’ issue, you could always use
CPAN, which
Perhaps it requires a kind of integrity control with
checksums, in order to ensure that the patches are applied correctly.
does keep checksums and etc.
P.S. I wish you nice Holidays, by the way
I’m on-call at the moment. What is this strange ‘holiday’ word people
keep referencing?
Bruce Campbell RIPE
Systems/Network Engineer NCC
www.ripe.net - PGP562C8B1B Operations/Security