0
The story of language development
Inside of CRuby core team
self.introduce
=>
{
name: “SHIBATA Hiroshi”,
nickname: “hsbt”,
title: “Chief engineer at GMO Pepabo, Inc.”,
commit_bits: [...
Me
https://github.com/ruby/ruby
I’m from Asakusa.rb
Asakusa.rb is one of the most active meet-ups in Tokyo, Japan.
@a_matsuda (Ruby/Rails committer, RubyK...
もっと
おもしろく
できる
Warning!!!
This presentation
is no code
To be continued
Ruby
What’s ruby
“Ruby is… A dynamic, open source programming language with a
focus on simplicity and productivity. It has an e...
Basis of MRI and YARV
“ Throughout most of this book we’ll learn about the original,
standard implementation of Ruby, know...
Variation of Ruby Interpreter
Implementation:
• Ruby(MRI, CRuby)
• JRuby
• Rubinius
• Opal
ISO/IEC 30170:2012:
• CRuby
• m...
Differences between CRuby and Others
It’s CRuby's
world
It’s other
Ruby’s world
How to make
Ruby in 2015
Requirements of Software development
• People
• Dev Resources
• Issue tracking(feature, defects, etc)
• Release management
People
Ruby Committer
Team Heroku
• Matz(Director)
• ko1(YARV author)
• n0kada(Patch monster)
and others(total 87 people + 1 bot)...
Branch maintainer
trunk
nurse: Release manager
2.2
nagachika: Stable branch maintainer
2.1, 2.0.0
unak: Old stable branch ...
Platform maintainer
Linux
• akr
• normal person
• n0kada
and others
Windows
• unak
• n0kada
BSD
• nurse
Solaris
• ngoto
OS...
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 ...
“With great power comes great responsibility.”
Uncle Ben, Spider-Man
Dev Resources
Ruby’s development resources
• Personal development environments
Windows, OS X, Linux, Solaris, AIX, BSD…
• Sponsored envi...
*.ruby-lang.org
www.ruby-lang.org
Official Website of Ruby language. It’s hosted by Heroku.
svn.ruby-lang.org
Main reposit...
*.ruby-lang.org
ftp.ruby-lang.org
Site of distribute official package
docs.ruby-lang.org
Hosted document generated from RD...
CDN
Our package distribution was supported by fastly.
cache.ruby-lang.org (It supports https)
Statistics of our CDN:
• USA...
What does mean “official”?
“official” means “Matz controllable”, I think.
Example of un-controllable things
• rubygems.org...
Feature request
Issue tracker
Our official tracker is “bugs.ruby-lang.org”
Mailing list integration
• https://github.com/ruby/redmine_*
• ...
github
github.com/ruby/ruby is ok for some ruby commuters.
But matz is not available github. If you hope to ask new featur...
Tips of Feature request
see http://www.slideshare.net/hsbt/20140918-ruby-kaigi2014
1. We need to focus “Use case” than “fu...
Test
Test
You can easily run tests for official Ruby test suite.
RubySpec is alternative test suite focused to support other ru...
Windows & OS X
We offered special customized environment at Travis CI for OS X
Microsoft supports our build environments f...
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...
Do submit your patch
1. Write code :)
2. Run tests
3. Open bugs.ruby-lang.org and create new account
4. Open https://bugs....
Release
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...
Our Branch model
We backport fixes to stable
branch from trunk.
We do not merge fixes to trunk
from stable branch
Ruby 2.3.0 status
We are working on the next version of Ruby, 2.3.0, now. However,
the main feature is under “TBD” status....
Developer Meeting
We hope to increase to transparency for Ruby development
process.
One of our challenges is “Developer Me...
Release management
We will release new version of Ruby at “Release Day” by @narse
There is no exception to this rule.
• If...
Security release
We have “security@ruby-lang.org” for security report. We
received buffer overflow, memory leak, escape st...
We should learn from OSS
I think “OSS is same as our working style than differences.”
We can lean following things(example...
The story of language development
The story of language development
Upcoming SlideShare
Loading in...5
×

The story of language development

0

Published on

Inside of CRuby core team

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
0
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "The story of language development"

  1. 1. The story of language development Inside of CRuby core team
  2. 2. self.introduce => { name: “SHIBATA Hiroshi”, nickname: “hsbt”, title: “Chief engineer at GMO Pepabo, Inc.”, commit_bits: [“ruby”, “rake”, “rubygems”, “rdoc”, “tdiary”, “hiki”, “railsgirls”, “railsgirls-jp”, “jenkins”], sites: [“ruby-lang.org”, “rubyci.com”, “railsgirls.com”, “railsgirls.jp”], }
  3. 3. Me https://github.com/ruby/ruby
  4. 4. 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!) …
  5. 5. もっと おもしろく できる
  6. 6. Warning!!! This presentation is no code
  7. 7. To be continued
  8. 8. Ruby
  9. 9. What’s ruby “Ruby is… A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.” https://www.ruby-lang.org/en/ “簡単にいえばPerlのような手軽さで「楽しく」オブジェ クト指向しようという言語” https://www.ruby-lang.org/ja/about/
  10. 10. 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 “ 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.8 Ruby 1.9
  11. 11. Variation of Ruby Interpreter Implementation: • Ruby(MRI, CRuby) • JRuby • Rubinius • Opal ISO/IEC 30170:2012: • CRuby • mruby
  12. 12. Differences between CRuby and Others It’s CRuby's world It’s other Ruby’s world
  13. 13. How to make Ruby in 2015
  14. 14. Requirements of Software development • People • Dev Resources • Issue tracking(feature, defects, etc) • Release management
  15. 15. People
  16. 16. Ruby Committer Team Heroku • Matz(Director) • ko1(YARV author) • n0kada(Patch monster) and others(total 87 people + 1 bot) $ cat ~svn/.ssh/authorized_keys | awk '{print $5}' | sort | uniq | wc -l 88
  17. 17. Branch maintainer trunk nurse: Release manager 2.2 nagachika: Stable branch maintainer 2.1, 2.0.0 unak: Old stable branch maintainer
  18. 18. Platform maintainer Linux • akr • normal person • n0kada and others Windows • unak • n0kada BSD • nurse Solaris • ngoto OS X • n0kada • mrkn
  19. 19. 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.
  20. 20. “With great power comes great responsibility.” Uncle Ben, Spider-Man
  21. 21. Dev Resources
  22. 22. 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
  23. 23. *.ruby-lang.org www.ruby-lang.org Official Website of Ruby language. It’s hosted by Heroku. svn.ruby-lang.org Main repository of Ruby source. It’s hosted by NaCl bugs.ruby-lang.org Official issue tracker of Ruby. It’s hosted by Heroku
  24. 24. *.ruby-lang.org ftp.ruby-lang.org Site of distribute official package docs.ruby-lang.org Hosted document generated from RDoc and rubima project.
  25. 25. CDN Our package distribution was supported by fastly. cache.ruby-lang.org (It supports https) Statistics of our CDN: • USA: 52%, EU: 26%, Asia: 19%, Pacific: 3% • Bandwidth: 2210.0 GB/month • Requests: 682,616 req/month
  26. 26. What does mean “official”? “official” means “Matz controllable”, I think. Example of un-controllable things • rubygems.org • ruby-doc.org • bundler.io • rvm/rbenv/chruby • Rubyists :)
  27. 27. Feature request
  28. 28. Issue tracker Our official tracker is “bugs.ruby-lang.org” Mailing list integration • https://github.com/ruby/redmine_* • This behavior is same as github Continuous Upgrade Ruby and Rails to latest version.
  29. 29. github github.com/ruby/ruby is ok for some ruby commuters. But matz is not available github. If you hope to ask new feature to Matz, You need to submit bugs.ruby-lang.org :bow: Why Ruby does not use github??? • github is proprietary service • ruby committers do not have problem with redmine
  30. 30. 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.
  31. 31. Test
  32. 32. Test You can easily run tests for official Ruby test suite. RubySpec is alternative test suite focused to support other ruby implementation. $ git clone https://github.com/ruby/ruby $ autoconf && ./configure && make $ make test $ make test-all $ make check TESTS="-j4" $ make update-rubyspec $ make test-rubyspec
  33. 33. Windows & OS X We offered special customized environment at Travis CI for OS X Microsoft supports our build environments for Windows.
  34. 34. 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
  35. 35. Do submit your patch 1. Write code :) 2. Run tests 3. Open bugs.ruby-lang.org and create new account 4. Open https://bugs.ruby-lang.org/projects/ruby-trunk/issues/ new 5. Attach your code and write description of your proposal 6. Press “submit”
  36. 36. Release
  37. 37. 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.
  38. 38. Our Branch model We backport fixes to stable branch from trunk. We do not merge fixes to trunk from stable branch
  39. 39. Ruby 2.3.0 status We are working on the next version of Ruby, 2.3.0, now. However, the main feature is under “TBD” status. Some libraries will be omitted from stdlib such as rake, net-telnet, etc.. If you have any issue, please submit it to our issue tracker at http://bugs.ruby-lang.org We hold the core developer meeting every months, and discuss various issues and ideas on Ruby. See https://bugs.ruby-lang.org/ projects/ruby/wiki/#Developer-Meetings for details.
  40. 40. Developer Meeting We hope to increase to transparency for Ruby development process. One of our challenges is “Developer Meeting”. It’s open discussion time for feature and issue of Ruby every months. [ruby-core:69550]: https://bugs.ruby-lang.org/projects/ruby/wiki/ DevelopersMeeting20150728Japan
  41. 41. 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.
  42. 42. Security release We have “security@ruby-lang.org” 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.
  43. 43. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×
×
SlideShare is now LinkedIn SlideShare
Learn More