Ruby Plugins Hack Session Notes 6/23/2011
You know that the night is going to be productive whenever @kohsukekawa shows up, and last night was no exception. We talked about problems on the horizon, potential solutions, and then I spent the last half hour ripping a bit of code.
The truth of the matter is that most of the changes that have to be done to Jenkins core have already been made, so now the bulk of the heavy lifting falls to the Ruby side of things (right now, me).
Anyhow, on to the notes!
Attendees
@kohsukekawa, @cowboyd
extract more stuff into the jenkins-plugins.rb support library (@cowboyd)
We’re in the process of extracting, normalizing, documenting all the goop that’s currently residing in the ruby plugins playground into a formal plugin support gem called jenkins-plugins https://github.com/cowboyd/jenkins-plugins.rb
recruit Rubyists to implement non-Jenkins specific code (@kohsukekawa)
If you know Ruby and would like to be able to write Jenkins plugins with it, but don’t know the first thing about Jenkins and/or JRuby, that’s OK. You can help by implementing some of the cucumber features found in that repo
@kohsukekawa is going to be knocking on your door to ask if you’re ready to step up, so I hope you’ve been nice this year!
testing strategy (@cowboyd, @kohsukekawa)
Ruby folk love their tests, and a plugin development solution won’t be complete unless testing is a breeze. That means that as we extract the plugin support library, we take make sure you can test plugin classes in isolation.
On the Jenkins side, KK will think about how to run tests that require a full Jenkins environment. A system like this exists currently for testing java plugins, but some thought might be required on how to do this for Ruby.
packaging reloaded (@kohsukekawa)
KK is going to jump in and write some rake tasks to take a ruby plugin structure and package it into a valid .hpi file, and with no maven involved. According to him, Ruby plugins aren’t the only system that wants to run maven-free. There is desire to be able to do plugin development with Gradle (another Java build system), so this could be a double win.