I spent a little while looking into the current state of JRuby in Fedora. It turns out it's not so good, the JRuby package itself has been orphaned and is no longer available starting in F12, as well as several of its Java dependencies, not to mention recent versions of JRuby have added several more dependencies which have yet to be packaged. All in all the following software needs to be packaged and accepted into Fedora before JRuby can be:
- bytelist (orphaned)
- constantine (orphaned)
- jcodings (orphaned)
- joni (orphaned)
- emma (already in Fedora, a dependency just needs to be added to the JRuby rpm spec)
- jvyamlb (is no longer a JRuby dependency and can be removed from the jRuby rpm spec)
Of course JRuby itself ships w/ these jar's included, but due to the Fedora Java Packaging Guidelines concerning this matter, jars cannot ship in any Fedora packages and must be standalone / included in the RPM dependencies
So it seems that a JRuby package in Fedora will be tricky for the time being until these dependencies are resolved, I would like to devote some cycles to this at some point, but given the current state of things, it'll take alot longer than I currently have. Its a great project for anyone thats interested, even those w/ no Fedora packaging experience as there is alot of work already done that you can leverage. At some point I might just package the latest jRuby release up (jars included) and push it to my yum.morsi.org yum repository for convenience sake, but obviously this would be suboptimal to getting JRuby in Fedora.
Just released RXSD (via github), a XSD <-> Ruby classes translator that makes use of Ruby's runtime introspection / reflection mechanisms to convert XML Schema Definitions to Ruby classes on the fly. Also supported is generating string Ruby class definitions (to be subsequently written to the filesystem) as well as a XSD metadata library / extendable builder interface to add output support for whatever language you need (python, c++, java, xml and other various formats, etc).
It's still pretty rough around the edges, I whipped it up in a little under a month (licensed under the LGPLv3+, so feel free to use it in proprietary apps, just make sure to publish the changes to RXSD itself back upstream), but most of whats there should be working. I'm going to keep hacking at it, mainly in part of a couple other things I'm doing, but also to improve features / support all around. This is my first project I'm hosting on github, so we'll see how that goes, from what I've seen it's pretty cool though (makes it very easy to share changes back / forth between projects).
As always, have at it!
Just got back from the Fedora Users and Developers Conference (FUDCon) in Toronto ON this past weekend. There I gave an introductory talk on the field of Cloud Computing and discussed the current project I'm hacking on @RH, deltacloud. The presentation went well and I got alot of great feedback / garnered some more interest in the project. I uploaded the slides here for anyone that's interested.
The weekend flew by, I drove up on Friday and back tonight (4hr each way). I attended alot of great talks and there were many that I wanted to go to but couldn't due to presentation overlaps. Regardless the ones I attended were all excellent and included
- J5's talk on AMQP. As it was an introduction to the topic and since I've done a bit of work using qpid in oVirt and Simrpc, I was familiar w/ a some of the material and but it still was very interesting and I picked alot of stuff up, such as the semantics of the different message transfer/event protocols, queue security / access control, and thoughts on the direction of AMQP/QPID and integrating it w/ community projects.
- An excellent talk on some of the new features in the GNU Debugger (GDB) including thread support, pretty printing (huzzah!), and C++ expression and namespace handling. When working on Romic and Manic and various other C++ projects I used the GDB debugger extensively and ran into many of the issues fixed with this versions. :-)
- Mairin Duffy's talk on UI mockups for developers using Inkscape. A great presentation on the Inkscape application, geared towards making a wireframe / simple UI mocks for review very quickly so that you can easily spot design problems before you write your first line of code, and so reviews are not as apprehensive about giving you honest feedback (as they would be if you invested a ton of time implementing the UI of your application before asking for a review)
- Luke Macken's presentation of his project, Moksha a real time webapp platform. Luke and I have discussed Moksha in the past, but usually from a high level "what does it do" point of view, and it was nice to see a detailed analysis of the framework and all the components, and see some live examples in action pertaining to using it. Its really powerful stuff, I recommend everyone check it out.
- A round table discussion about the future of Ruby in Fedora. Ruby's a great language but there are some problems in the current affairs of Ruby such as the incompatibilities between 1.8.6 / 1.8.7 point releases, which might to break alot of software if not handled properly (and thats just forgetting about Ruby 1.9 which is now the 'main' Ruby version). I understand major API changes between main versions (eg 1.8 -> 1.9) but a point release should _never_ have any major core API changes except in the most extreme / rare cases (eg security fixes, but those usually don't entail API changes). This is going to be somewhat problematic for Fedora/Ruby as we now need to support those different versions. Regardless the problem has come up before w/ other interpreted languages that have their own package management systems. Thanks go out to Jeroen van Meeuwen for maintaining the Ruby rpm and holding the discussion today / leading the effort to resolve this problem. I'm going to be joining the effort to assist that process in the near future.
- An introduction to Puppet the automated data center configuration tool. I have played around w/ puppet via thincrust (which oVirt depends on) in the past, but it was good to learn the various components of the puppet framework and how to setup an installation from scratch, using it to configure whatever systems to meet your needs
Overall the conference was great, and I am definitely looking forward to attending more FUDCons and other related events in the future.
Until next time, keep hacking!