From: "maillist@..." Date: 2003-07-17T06:40:56+09:00 Subject: Re: Complete list of Ruby devs, periods of activity (RE: Ruby Developers) Thanks, I was just wondering. On Thu, 2003-07-17 at 05:01, why the lucky stiff wrote: > On Tuesday 15 July 2003 10:01 pm, maillist@bestworldweb.homelinux.com wrote: > > Does ruby have active developers or does matz do basically everything? I > > am just wondering. > > The ChangeLog shows that 126 developers have contributed to Ruby's source > since 1997. Processing the current CVS ChangeLog reveals that Matz far leads > the pack of developers, but there are easily 20 developers working on the > source code these days. > > Here's a complete summary from the ChangeLog, which counts the number of > changes for a developer and shows their date range of activity. > > [Yukihiro Matsumoto]: 1526 checkins, 1997-08-13 to 2003-07-16 > [Nobuyoshi Nakada]: 424 checkins, 1999-04-16 to 2003-07-15 > [WATANABE Hirofumi]: 334 checkins, 1997-08-15 to 2003-07-11 > [Minero Aoki]: 153 checkins, 1999-05-14 to 2003-07-02 > [Akinori MUSHA]: 140 checkins, 2001-01-24 to 2003-04-19 > [Tanaka Akira]: 59 checkins, 2000-12-21 to 2003-07-03 > [Katsuyuki Komatsu]: 56 checkins, 1999-04-14 to 2000-10-17 > [Koji Arai]: 56 checkins, 1998-08-29 to 2003-07-13 > [NAKAMURA Usaku]: 54 checkins, 2002-04-01 to 2003-07-12 > [Usaku Nakamura]: 49 checkins, 2001-01-14 to 2002-03-29 > [K.Kosako]: 36 checkins, 2000-12-19 to 2002-12-25 > [EGUCHI Osamu]: 31 checkins, 1997-09-23 to 2000-02-26 > [Wakou Aoyama]: 31 checkins, 1999-06-29 to 2002-12-28 > [Tadayoshi Funaba]: 30 checkins, 1998-03-03 to 2003-05-19 > [Shugo Maeda]: 29 checkins, 1999-02-12 to 2003-06-13 > [why the lucky stiff]: 25 checkins, 2003-05-09 to 2003-07-15 > [Guy Decoux]: 19 checkins, 2000-10-08 to 2003-06-18 > [Takaaki Tateishi]: 18 checkins, 1998-11-29 to 2003-03-24 > [WATANABE Tetsuya]: 16 checkins, 1998-05-10 to 2001-11-13 > [KONISHI Hiromasa]: 16 checkins, 2002-05-29 to 2002-10-27 > [MAEDA shugo]: 15 checkins, 1997-09-21 to 1999-01-18 > [Dave Thomas]: 12 checkins, 2000-02-02 to 2003-04-24 > [Michal Rokos]: 12 checkins, 2002-01-04 to 2003-01-29 > [Takaaki Uematsu]: 12 checkins, 2002-12-14 to 2003-06-21 > [Keiju ISHITSUKA]: 10 checkins, 1998-07-01 to 2002-07-09 > [Yasuhiro Fukuma]: 8 checkins, 1999-02-05 to 2000-06-16 > [akira yamada]: 8 checkins, 1999-12-30 to 2003-02-14 > [SHIROYAMA Takayuki]: 7 checkins, 1999-04-14 to 2001-05-03 > [Yoshida Masato]: 7 checkins, 1999-01-16 to 1999-06-24 > [Masaki Fukushima]: 6 checkins, 1998-11-21 to 2000-05-16 > [NAKAMURA Hiroshi]: 5 checkins, 1999-07-15 to 2003-06-19 > [Kazuhiro NISHIYAMA]: 5 checkins, 2000-10-16 to 2002-06-17 > [Kaneko Naoshi]: 5 checkins, 1998-04-07 to 2001-02-05 > [Masahiro Tomita]: 5 checkins, 1999-09-22 to 2002-04-11 > [GOTO Kentaro]: 5 checkins, 1999-01-26 to 2000-07-24 > [Amos Gouaux]: 4 checkins, 2001-07-30 to 2002-03-01 > [Sean Chittenden]: 4 checkins, 2002-05-21 to 2002-07-03 > [Tachino Nobuhiro]: 4 checkins, 2000-12-08 to 2002-08-01 > [Masahiro Tanaka]: 4 checkins, 2000-11-16 to 2003-05-07 > [Motoyuki Kasahara]: 4 checkins, 1998-10-19 to 1998-11-17 > [Ryo HAYASAKA]: 4 checkins, 1999-03-16 to 2001-05-11 > [Ueno Katsuhiro]: 4 checkins, 2000-12-22 to 2003-04-06 > [NAKAMURA, Hiroshi]: 4 checkins, 1999-04-02 to 2003-06-20 > [takuma ozawa]: 3 checkins, 2001-12-20 to 2002-06-13 > [Hiroshi Igarashi]: 3 checkins, 1998-08-28 to 2000-06-08 > [TOYOFUKU Chikanobu]: 3 checkins, 2001-01-29 to 2001-08-14 > [GOTOU YUUZOU]: 3 checkins, 2000-02-25 to 2001-04-13 > [Kenji Nagasawa]: 3 checkins, 1999-05-30 to 1999-08-20 > [Tietew]: 3 checkins, 2001-07-05 to 2002-12-24 > [Koji Oda]: 3 checkins, 1999-06-25 to 1999-12-24 > [Ville Mattila]: 2 checkins, 2001-11-21 to 2001-11-28 > [MoonWolf]: 2 checkins, 2003-02-06 to 2003-05-26 > [Inaba Hiroto]: 2 checkins, 1998-10-31 to 1999-06-23 > [TAMURA Takashi]: 2 checkins, 2001-11-11 to 2001-11-22 > [Triet H. Lai]: 2 checkins, 2001-02-09 to 2001-02-19 > [Kazuhiro HIWADA]: 2 checkins, 1999-01-27 to 1999-08-03 > [Warren Brown]: 2 checkins, 2003-04-05 to 2003-05-02 > [IKARASHI Akira]: 2 checkins, 1999-01-30 to 1999-03-07 > [Masaki Suketa]: 2 checkins, 2002-06-01 to 2002-06-03 > [Brian F. Feldman]: 2 checkins, 2001-05-18 to 2001-09-01 > [Takao KAWAMURA]: 2 checkins, 1998-11-06 to 1999-01-03 > [okabe katsuyuki]: 2 checkins, 1999-02-17 to 2002-03-26 > [Kazunori NISHI]: 2 checkins, 1998-04-12 to 1999-12-01 > [Matt Armstrong]: 2 checkins, 2002-02-11 to 2003-01-20 > [Florian Frank]: 2 checkins, 2001-12-05 to 2003-06-23 > [Masatoshi SEKI]: 2 checkins, 2003-06-19 to 2003-06-29 > [KIMURA Koichi]: 2 checkins, 1998-11-13 to 1999-06-28 > [Jun-ichiro itojun Hagino]: 2 checkins, 1999-05-20 to 1999-10-12 > [Ryunosuke Ohshima]: 2 checkins, 2000-05-11 to 2000-05-11 > [Aleksi Niemela]: 2 checkins, 2000-06-30 to 2000-09-23 > [Tetsuya Watanabe]: 1 checkin on 2002-02-17 > [Clemens Hintze]: 1 checkin on 2000-03-28 > [Shigeo Kobayashi]: 1 checkin on 2000-01-26 > [Wayne Scott]: 1 checkin on 2000-09-21 > [Hirotaka Ichikawa]: 1 checkin on 1999-02-17 > [MOROHOSHI Akihiko]: 1 checkin on 2000-05-05 > [Mathieu Bouchard]: 1 checkin on 2003-01-02 > [Mitsuhiro Kondo]: 1 checkin on 2001-07-05 > [Shin'ya Adzumi]: 1 checkin on 2001-09-05 > [TAMITO]: 1 checkin on 1998-10-28 > [YOSHIDA Kazuhiro]: 1 checkin on 2002-12-26 > [NAGAI Hidetoshi]: 1 checkin on 1998-04-17 > [Yoshinori Toki]: 1 checkin on 1999-01-28 > [Kazuya 'Sharl' Masuda]: 1 checkin on 1998-04-15 > [Ferris McCormick]: 1 checkin on 2001-12-31 > [Kuroda Jun]: 1 checkin on 1999-01-18 > [Booker C. Bense]: 1 checkin on 2002-07-27 > [Kenichi Komiya]: 1 checkin on 2000-09-06 > [TAKAHASHI Masayoshi]: 1 checkin on 1998-04-13 > [Aristarkh A Zagorodnikov]: 1 checkin on 2002-03-20 > [Okada Jun]: 1 checkin on 2001-05-13 > [Marc Cartright]: 1 checkin on 2003-06-18 > [Akira Endo]: 1 checkin on 1999-05-14 > [Katsuyuki Okabe]: 1 checkin on 1997-09-24 > [Kazuhiro Yoshida]: 1 checkin on 2001-03-06 > [Nakada.Nobuyoshi]: 1 checkin on 2000-03-05 > [Pit Capitain]: 1 checkin on 2001-10-15 > [IWAMURO Motonori]: 1 checkin on 1999-12-17 > [Matthew Dempsky]: 1 checkin on 2003-06-25 > [Fukuda Masaki]: 1 checkin on 1998-12-25 > [Ariff Abdullah]: 1 checkin on 2003-06-17 > [Satoshi Nojo]: 1 checkin on 2000-06-16 > [Toshihiko SHIMOKAWA]: 1 checkin on 1998-01-29 > [Pascal Rigaux]: 1 checkin on 2001-05-25 > [Yasushi Shoji]: 1 checkin on 2001-02-18 > [Le Wang]: 1 checkin on 2001-12-24 > [Ulf Betlehem]: 1 checkin on 2003-03-22 > [Kentaro Inagaki]: 1 checkin on 2000-02-04 > [NABEYA Kenichi]: 1 checkin on 2003-02-08 > [ABE Shigeru]: 1 checkin on 2002-12-27 > [Katsuhiro Ueno]: 1 checkin on 1999-12-05 > [Chris Thomas]: 1 checkin on 2002-05-02 > [Wolfgang Jahrling]: 1 checkin on 2002-02-18 > [Johan Holmberg]: 1 checkin on 2003-05-03 > [moumar]: 1 checkin on 2003-01-15 > [Noriaki Harada]: 1 checkin on 2000-09-03 > [Ed Sinjiashvili]: 1 checkin on 2002-02-19 > [Koga Youichirou]: 1 checkin on 2000-06-28 > [Mitsuteru S Nakao]: 1 checkin on 2000-11-21 > [Kazuhiko Izawa]: 1 checkin on 1999-10-04 > [Wes Nakamura]: 1 checkin on 2000-10-17 > [Tadahiro Maebashi]: 1 checkin on 1998-04-27 > [Uechi Yasumasa]: 1 checkin on 2000-06-22 > [TADA Tadashi]: 1 checkin on 2002-12-24 > [Tsukada Takuya]: 1 checkin on 1999-08-23 > [Jamie Herre]: 1 checkin on 2002-07-06 > > > Below is the script to parse the ChangeLog. > > _why > > --- > require 'parsedate' > > class Time > > # > # Parse ChangeLog > # > devs = {} > dev_names = {} > File.open( 'ChangeLog' ).each do |line| > if line =~ /^(\w{3} \w{3} +\d+ +\d{2}:\d{2}:\d{2} \d{4}) +(.+) +<([^>]+)>/ > dev_name = $2.strip.upcase > dev_names[dev_name] = $2.strip > devs[dev_name] ||= [] > devs[dev_name] << Time::mktime( *ParseDate::parsedate( $1 )[ 0, 7 ] ) > end > end > > # > # Organize authors and display > # > puts "Total devs: #{ devs.length }" > puts( devs. > sort do |a,b| > b[1].length <=> a[1].length > end. > collect do |dev,log| > dev = dev_names[dev] > if log.length > 1 > log.sort! > "[#{ dev }]: #{ log.length } checkins, "+ > "#{ log.first.simple_time } to #{ log.last.simple_time }" > else > "[#{ dev }]: 1 checkin on #{ log.first.simple_time }" > end > end. > join( "\n" ) ) > >