There are a lot of useful plugins delivered with supybot. As the developers are calling it, supybot comes with “batteries included”. There however is always room for improvement and I currently see some areas where additional addons would be useful.
One of these missing plugins is for Subversion. SVN is a widely used version control system. Having a Bot which announces changes and let the user control SVN is one of the key features I would like to see in an office IRC. Every developer team could have its own channel where Supybot is reporting if any sources have been changed.
- They’re built from scratch. That mustn’t be bad, but building upon Supybots infrastructure let’s a developer focus on the functionality itself than on configuration, IRC-accessibility or testing. Supybot provides a lot of things to support the developer
- Most of the available solutions need so called Post-Commit-Hooks. This is a feature from SVN which let’s a user do certain actions after commiting code to it. The downside of this is that you always would have to manipulate your Repository in order for the Bot to work
- Usually the provided Bots are just supporting one Repository-URL being watched. In reality you usually have certain branches being worked on or different teams working on different projects. Of course it would be possible to deploy multiple bots for each url and each channel, but that gets confusing and unmaintainable.
- Limited output: It is mostly impossible to publish information to more than one channel. Like the above point this would be solvable by setting up more than one Bot, but who wants this?
- There are a lot more disadvantages like missing license details or untested code, but these are the main points I saw at first.
So having all these disadvantages in mind I decided to jump into supybot plugin development myself. There are a lot of sources helping you do the first steps (and some more advanced steps too):
- Official docs. These help a lot when it comes to get an overview. There are also more advanced tutorials showing how to use Supybots configuration framework or the testing infrastructure.
- Gribble Wiki. Gribble is a project based on Supybot which aims to provide more advanced features. Luckily they wrote down some documentation about Supybot itself during their project. The provided information mainly helps with a reference of different Supybot classes and advanced tasks like Event scheduling.
So after a 6 hour hacking-session I uploaded the project to Google Code. There are some features missing, but that’s just a matter of time. It works quite well in my testing environment and I’m looking forward to using it for my actual work. Take a look at the Wiki-pages there. I’m planning on creating some documentation on how to install and use the plugin.