Notes for TWiki Developers
There have been a number of changes since
DakarRelease that TWiki Contrib authors need to be aware of.
Source Control
All the plugins have been checked into subversion.
CVS is now frozen. This considerably simplifies maintainance and testing against the Dakar codebase. However if you are unfamiliar with subversion, it may present some problems. The code of some plugins has had to be changed, in most cases to make them observe the previously published standards for TWiki plugins (the Func interface). Several plugins that had to violate the interface are now able to use it, as the interface has been extended. In these cases the plugins have been recoded to conditionally select the new interface functions when they are available. You are
strongly advised to work within Subversion on any code changes.
HowDoesTheDEVELOPBranchWork has details on setting up a subversion checkout area. Once you have a checkout, you can develop and test plugins in context of all the other plugins currently checked in.
Once your code changes are complete, you can post a patch in the
Bugs web to get it checked in, or you can request checkin access in the Codev web. All commits to Subversion require comments in the correct format - begining with a
Bugs Item.
Building
TWiki releases are now built using the
BuildContrib, which supports the recursive building of plugins and bundling them into the TWiki package.
As such, you are strongly recommended to adopt the
BuildContrib for building your code/addon/skin. *Note: only
BuildContrib built packages are likely to work correctly when using the 4.1
ExtensionInstaller? in
configure
The
BuildContrib also write an installer script, so you can get install/uninstall support for free, as well as configuration variable management. Here's how it is used:
The standard for configuration variables is:
$TWiki::cfg{Plugins}{MathModePlugin}{latex2html} = '...';
Where
MathModePlugin represents the name of your module, and
latex2html the name of your variable.
BuildContrib provides an installer interface that lets you interactively prompt for configuration values at install time.
Here's how you use the
BuildContrib:
First we need to prepare the environment. We need to set the environment variable TWIKI_LIBS so it points to the lib directory of your development TWiki directory tree. If the path is
/var/www/twiki/libs the command is
export TWIKI_LIBS=/var/www/twiki/lib
The pseudo-installation must have been run so that
BuildContrib is linked. If you installed with
perl pseudo-install -link all it is already linked. But if you ran
perl pseudo-install -link default you need to also run
perl pseudo-install.pl BuildContrib
create your TWiki Plugin / Contrib / Skin
cd ..../twikiplugins/
./create_new_extension.pl MathModePlugin
svn add MathModePlugin
You can now run builds as follows:
cd MathModePlugin/lib/TWiki/Plugins/MathModePlugin
perl build.pl release # to build a zip and tgz
perl build.pl upload # to build a release and upload it to TWiki.org
You can also build a POSTINSTALL script for inclusion in the installer. This can be
used for prompting for program locations, such as the path to latex2html. See
BuildContrib
documentation and
PublishContrib/POSTINSTALL for an example.
When you add files to the Contrib, add them to the MANIFEST, and use
svn add & then svn commit to add them to the TWiki svn repository.
For further information see -
BuildContrib and
more
--
Contributors: CrawfordCurrie,
KennethLavrsen,
SvenDowideit
Discussion