Best time to get involved in ruby-core

Apart from enjoying the summer, I've spent time hacking on MRI, especially since I've been accepted as a committer. The feature freeze for Ruby 1.9.2 was planned for yesterday and this has been pushed back a couple of days before. Rejoice!

Why? The reason stated was that the next version of Ruby will, for the first time ever, pass the RubySpec. This makes RubySpec the official meeting point for all Ruby implementations, not just Rubinius (the originator of RubySpec), JRuby and others. This should also give a bit more time to decide on a couple of new features that might make it in 1.9.2.

Much work has been done to have the specs meet MRI 1.9.x and the language and core sections only have a couple of failures1. Most are due to cases for which the best decisions still have to be figured out. I'll remind you that it's easy to gain commit access to RubySpec: any accepted patch grants you your commit bit.

There is still quite a bit of work to be done spec'ing the libraries. Actually there's a lot of work to be done in the libraries themselves. Some are quite badly maintained, others don't even have an official maintainer. And that's all about to change, hopefully!

It was announced yesterday that being a maintainer is no longer for life. Not doing anything about opened issues? Sorry, we'll get someone else to take care of it. Many libraries currently have no maintainer and there should be many others that won't be claimed in the confirmation process.

Feeling competent to maintain a library? You talk using only sockets? You dream in yaml? Might as well apply to maintain your favorite lib...

I sincerely hope 1.9.2 kicks some serious ass. It's bound to be the version Ruby 1.9 that most people will use and target for the first time. More reason to get it right!



1Actually, the bulk of the work was spec'ing Ruby 1.8.6 under the supervision of Brian Ford. I helped finish the specs for 1.8.7 and the mysterious and tireless Run Paint Run Run did most of the 1.9 specific specs. Spec'ing Ruby usually leads to finding bugs or asking clarifications. Indeed, Run Paint opened more issues on redmine than any other user!

4 comments:

Louis-Mathieu Houle said...

I'm really proud of you and your implication in ruby. You're getting famous!

There is something I have to ask, on an almost unrelated topic : what's up with "ruby enterprise" ? Is there anything in their implementation of ruby that is worth integrating in core?

I thought that since you're involved in ruby core you might know these things and have an opinion.

Marc-André Lafortune said...

REE is interesting, and there's definitely a lot that would be worth integrating if not all of it. The fact that only some of these patches made it in MRI is probably a sign that there might be a lack of hands to review bugs and patches, especially highly technical ones, and also a lack of test suites, although that has changed with RubySpec and Rails.

Note that the REE that was released a few days ago is version 1.8.7; as far as I know most patches have not been ported nor tested to 1.9, and that's really where the focus is right now I think.

I hope to get some time to check some of those patches out, although they'll probably be way too technical for me.

Ben Lavender said...

I may be a year late, but this is still an inspiring post. I would like to try and get my promise library/gem added to the ruby core libraries, since I believe any language ought to offer lazy evaluation. I'd be willing to be a maintainer for both it and the RubySpec for it.

The github is at http://github.com/bhuga/promising-future, where one finds an implementation, specs, and yardocs.

What would be the best way to approach this? Just make a feature request on the ruby core redmine, explain it, point to the implementation, and ask for consideration?

Marc-André said...

Hi Ben,

I fear it is difficult to get a new feature accepted, especially if it general, and even more so if it is to be a separate library. Gems are a great way to handle dependencies and the only libraries that stand a chance of being bundled are those that are thought to be useful for other library and gem authors, i.e. libraries for libraries.

If you believe you can show that many rubyists would benefit from it, especially ones writing libraries, gems and other "low-level" stuff, and you believe you have the rights specs, names and documentation, the ruby-core mailing list (or redmine) is the place to send your plea. You probably should check the archives to get an idea of how things are discussed.

Keep in mind that it took years for Kernel#singleton_class to be accepted! :-) Check the discussion on the potential inclusion of rb-tree in the list of standard libraries... http://redmine.ruby-lang.org/issues/show/2348

I think the focus is still on documentation fixes, specs and bug fixes and these stand a much better chance of being merged in.

Post a Comment