create new tag
, view all tags

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.


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


Edit | Attach | Watch | Print version | History: r11 < r10 < r9 < r8 < r7 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r11 - 2007-07-19 - SvenDowideit
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2018 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.