I’m from Asakusa.rb Asakusa.rb is one of the most active meet-ups in Tokyo, Japan. @a_matsuda (Ruby/Rails committer, RubyKaigi organizer) @kakutani (RubyKaigi organizer) @ko1 (Ruby committer) @takkanm (Ruby/Rails programmer) @gunjisatoshi (Rubyist Magazine editor) @hsbt (Me!) …
Basis of MRI and YARV “ Throughout most of this book we’ll learn about the original, standard implementation of Ruby, known as Matz’s Ruby Interpreter (MRI) after Yukihiro Matsumoto, who invented Ruby in 1993.” Ruby Under a Microscope, p.4 Ruby 1.8 “ With Ruby 1.9, Koichi Sasada and the Ruby core team introduced Yet Another Ruby Virtual Machine (YARV), which actually executes your Ruby code.” Ruby Under a Microscope, p.33 Ruby 1.9
Platform maintainer Linux BSD • akr • nurse • normal person • n0kada Solaris and others • ngoto Windows OS X • unak • n0kada • n0kada • mrkn
Q&A Q. What’s “Ruby Core Team”? A. I don’t know. It’s only called foreign Rubyists :) Q. Is there territory of maintainer in Ruby? A. Yes and No, Ruby committer can commit all of code in Ruby.
“With great power comes great responsibility.” Uncle Ben, Spider-Man
Ruby’s development resources • Personal development environments Windows, OS X, Linux, Solaris, AIX, BSD… • Sponsored environments • NaCl: Virtual server and operations • Heroku: unlimited dyno and Addons • IIJ: Virtual server • Ruby association: budgets of build servers • GMO globalsign: SSL certificates
Tips of Feature request see http://www.slideshare.net/hsbt/20140918-ruby-kaigi2014 1. We need to focus “Use case” than “function”. 2. We need to attach patch to feature request. 3. We need Matz approval. (It’s most important) I think above requirements same as our working style like XP and scrum named agile development process.
Test You can easily run tests for official Ruby test suite. $ git clone https://github.com/ruby/ruby $ autoconf && ./configure && make $ make test $ make test-all $ make check TESTS="-j4" RubySpec is alternative test suite focused to support other ruby implementation. $ make update-rubyspec $ make test-rubyspec
Windows & OS X We offered special customized environment at Travis CI for OS X Microsoft supports our build environments for Windows.
Ruby CI Ruby CI goal is entirely supports all of Ruby platform. We can detect a lot of build fails using Ruby CI. It has 2 or 3 versions every linux distribution and BSD, Windows, OS X, Solaris Environments. http://rubyci.org
Version number and release cycle We plan to release every christmas. • 2.1.0: 2013/12/25 • 2.2.0: 2014/12/25 • 2.3.0: 2015/12/25(TBD) We was using patchlevel before Ruby 2.1 like 2.0.0-p645. But We could not plan to 2.0.1 and It confused to a lot of developers. I proposed to change version model and It’s accepted by Matz.
Our Branch model We backport fixes to stable We do not merge fixes to trunk branch from trunk. from stable branch
Release management We will release new version of Ruby at “Release Day” by @narse There is no exception to this rule. • If we have incompletion issue or feature, we will revert it. • If we don’t have enough discussion for some issue, we don’t merge or implement it into new version of ruby. • If we found some regression, we need to fix it or revert to related code or issue.
Security release We have “email@example.com” for security report. We received buffer overflow, memory leak, escape string etc etc… We hard to fix and release these security issue. so all of release maintainer are volunteer work. Our release delayed by preparing new releases of stable and old stable version.
We should learn from OSS I think “OSS is same as our working style than differences.” We can lean following things(example): • Write code • Take care of development resources • Focus Use-case • Release management