Closed Bug 289039 (bz-plugin) Opened 19 years ago Closed 16 years ago

Bugzilla should allow plugins that extend its functionality

Categories

(Bugzilla :: Bugzilla-General, enhancement, P3)

2.19.2
enhancement

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: mkanat, Unassigned)

References

(Blocks 1 open bug)

Details

We've been talking about this for a while, but there hasn't been a tracking bug
for it (until now).

Basically, the idea is that we (the upstream Bugzilla developers) don't want to
put *every* single feature that *anybody* might *ever* need into Bugzilla.
Instead, we'd like to provide a simple API and some other details that allow any
developer to write a "plugin" for Bugzilla that extends its functionality.

When we think about the level of complexity that a plugin should allow, think of
being able to have implemented our time-tracking as a plugin. (Time tracking
will stay as a part of Bugzilla, but it's basically the most complex thing that
I can currently think of that somebody might have wanted to implement as a
plugin in the past.)

Another thing that somebody might want to implement as a plugin is some sort of
custom reporting interface.

Before we head in any particular direction on this bug, it does definitely
require some analysis to figure out exactly how plugins would be implemented,
and what changes Bugzilla requires in order to support those plugins.

I think that as we do this analysis, our focus should be on making it as easy as
possible for developers to write plugins.
Alias: bz-plugin
Priority: -- → P3
Target Milestone: --- → Bugzilla 2.22
Depends on: 254400
No longer depends on: 254400
Target Milestone: Bugzilla 2.22 → ---
Blocks: extensions
I think we should let ->create and ->update accept additional checks (those provided by plugins). So assuming all pages, especially administrative ones, use objects and their methods, all we have to do is to hack Object.pm to look at extensions::<plugin_name>::Bugzilla::<object_package_name>->${<method_name>}.
Another suggestion. Couldn't extensions be a list of patches to apply to the main code? checksetup.pl or setup.cgi could apply/back out patches when you install/uninstall a plugin, and we wouldn't have to add code and template hooks everywhere. The only problem I see with this suggestion is: how to handle conflicts between plugins (e.g. if 2 plugins behave the opposite way)?
... or if they want to modify the same original code piece...
Yes, patches is a bad idea. Hooks are the right way to go.
(In reply to comment #4)
> Hooks are the right way to go.

Only if not put everywhere.
Depends on: 412466
This is pretty much fixed now. We just have to document it better.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.