Software Development Kit
Editors
Random ideas
Whilst trying to get my latest Wiki working I was confronted with how long it was taking.
This is due to:
- Patches for practically everything (though mostly for plugins), meaning that patches take yonks to get back into the code base.
- This is in part due to plugin authors not knowing that a patch has been submitted
- and in part not wanting to have to respond to every patch request.
- No standard directory in which to keep them
- In no standard format (should be specified by PatchGuidelines)
And I thought to myself:
no way would I choose to upgrade this once it is working!
Because I think this happens for a lot of developers, I think it would be useful if TWiki came with a Software Development Kit.
At a minimum this SDK would:
- have a single executable perl script in bin, called 'sdk', this would have subcommands
- invocable as e.g. 'sdk patch'
- have commands to create patches for TWiki in a standard format. This would ensure
- patches have input filenames that are the right way around
- are in the right format
- have the right names, and
- are posted to the right topic
- consolidate into a perl program the facilities offered by PluginCvsToolsAddOn (see transcript at PluginCvsToolsAddOnDev)
- commands to checkout a twikiplugin from CVS (1124)
- to commit them back to the repository (1130, 1131)
- to create a zip and tar file for uploading (1134, 1135, 1136, 1137, 1179)
- and either copy them to a the pub dir for a topic name (in the transcript just copied as in 1152, 1185)
- add parallel features for the main twiki tree
Eventually we could aim at:
-
- upload via post to a topic name, or
- have the results of 1136, 1137/1179 available as a CGI script that takes the plugin name + a CVS tag (such as latest or CairoRelease) to dynamically the zip/tgz from CVS, or
- post the zip/tgz to CPAN as a module called TWiki::Plugins::_PluginName_ * Code already available see: http://search.cpan.org/author/PETDANCE/release-0.22/
| SDK invocation syntax |
What it would do |
| sdk mkpatch |
make a patch |
| sdk uploadpatch |
upload the patch |
| sdk patch URL |
download and install a patch |
| sdk reapply-patches |
|
| sdk plugin co PluginName |
Check out named TWikiExtension |
| sdk plugin install PluginName |
Get and install named TWikiExtension |
| sdk plugin getpatches PluginName |
Get patches attached to Dev topic of named TWikiExtension |
| sdk plugin installpatches PluginName |
Install patches attached to Dev topic of named TWikiExtension |
| ... add yours or change mine |
|
Obviously this is a broad goal and not everything would be implemented on a first release.
- We need to identify modules in CPAN that we can leverage to solve this problem
- We need to collect together any other bits of code that people are currently using to implement this
- We need to define priorities, see what's easy and therefore scope what would could go into a first release
- We need someone/a couple of people to volunteer to implement a simple first release
- I would but I am supposed to be studying, (just can't kick this TWikiAddiction)
Thoughts?
--
MartinCleaver - 16 Apr 2003
TWikiSDKAddOn is an implementation of the ideas presented here. It's based on the
TWikiShellContrib code so it's easy to extend it with the needed commands.
--
RafaelAlvarez - 08 Nov 2004