[dokuwiki] Core Features vs Plugins

  • From: "Jay Dickon Glanville" <dickon.glanville@xxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Wed, 18 Jul 2007 12:16:50 -0400

Core Features vs Plugins

The discussion started by Jason ("comments from a newbie") has raised
an interesting question: what functionality should be core to
DokuWiki, (ie: a feature)?  What functionality should be provided by
plugins?

(Definition: a feature is functionality that is found in the core
distribution of DokuWiki, while a plugin is functionality that gets
added after installation.)

There are definitely pros and cons to both...

Pros of Features/Core Functionality:
-> Interoperability: all core features will work together before a
milestone release.  This means that installation admins don't need to
worry about an upgrade breaking existing feature functionality.
-> Compatibility: a plugin can't claim that it's compatible with
DokuWiki version X unless it works well with all the implemented
features.  (I'm thinking of the situation where plugin X causes
problems with plugin Y, whereas, if Feature X were core, then plugin Y
is considered incompatible with DokuWiki until it works well with X.)
-> Reduced Administration: the more functionality that is delivered
through the core, the easier it is for installation admins to do
upgrades.

Pros of Plugins:
-> Size: plugins keeps the code base small, which allows for much
lower maintenance costs (in a volunteer community, all costs need to
be kept low) and a faster release cycle.
-> Installation Specific: plugins can provide functionality that is
only required by some, and not all, installations
-> Expansion: plugins can expand on existing core functionality.

Cons of Plugins:
-> the one major con of plugins is that administrators need to be
careful when upgrading the core DokuWiki.  The new version of DW could
break an installed plugin.



In Jason's email, he suggested that an optional sidebar be provided as
core functionality.  I'm not going to get into that here as it's being
discussed elsewhere, but it is a good example of functionality vs
plugin.  (I consider it a "would be nice", but not core as you can
function without it.)

My first thought on this subject is to be able to rename and move
articles.  This is the one piece of functionality that I need to make
DW full-featured.  It just feels, well, 'broken', that to move an
article, I need to go through a multi-step procedure (make a new one,
copy the contents over, delete the old contents, search for an
articles that referenced the old article and update to the new
article).


This is one of those academic questions that there is no easy answer
for.  I also believe that the DW owners have done a good task of
keeping the DW code base small.  I just wish that there was a better
tracking mechanism for the compatibility of the plugins -- but that's
a different conversation.  ;-)


So, the question: what functionality do you view as a core feature,
and what functionality do you view as a plugin?


JDG
--
Jay Dickon Glanville
--
DokuWiki mailing list - more info at
http://wiki.splitbrain.org/wiki:mailinglist

Other related posts: