http://www.perlmonks.org?node_id=513189

Ace128 has asked for the wisdom of the Perl Monks concerning the following question:

Hey,

I've been doing this rather big "system" that supports "plugins". That is, the core loads other Perl scripts and call surtain functions that I've defined. This way, one can extend into the infinity, since the core is supposed to do the main, basic, and common things, so the users just have to do what they want!

Now, this is ofcource quite nice and cool, but I was thinking further... Now, these plugins are ofcource open for anyone to modify. So, the question I have here is if anyone here has any bright ideas on how to create a way to make it easy on everybody, when some plugin has been updated!
I know there is subversion/cvs and those, but that seems abit too much. I was even thinking of maybe even do something in Perl that patches the plugins, but I thought maybe you bright folks here have done something like this before and can give me some hints. Natrually, the plugins are gonna have some kind of version set in them, so its easier to keep track of them. Also, I can mention that the updates to the pluginscripts is mostly gonna be new subs... so, doing something that compares 2 scripts and adds the diff in the other shouldnt be too hard in lovely Perl. Also, I would want some kind of server to have them in aswell. So, its easy to update. Both when you have done something in the plugin and if you wanna update yours.

Also, not to brag ;) but I could ofcource do all this without any feedback from here, but I wanted this to be good for everybody, so I thought, why not get feedback from people that could be potential users! :) That is, do it good from the beginning, and as the users wants it!

So, what do you people say? How would you do this? One could have a server that has all plugins and all the versions of it... This way its easy to update. And ofcource go back if something is screwed up. Its a little more trickier when users add thier own stuff. Should just the new content be there, or the full new plugin? Use something like mysql? Or just save in directories in the server (mysql and alike could be overkill)?

Update: I was also thinking that one wanna have, in pure text, information on whats new in the update. This needs to be represented somehow. I suppose its gonna be just a comment above the sub... Also, I just realized... Maybe one just want some new sub, not all.. maybe its better to save just the sub into the "repository"... Maybe a module exists for this already? (although I couldn't find anything) I could go on forever ;)

Thanks,
Ace