2 This page describes the current branch, module, library, and extension maintainers of Ruby.
6 A branch maintainer is responsible for backporting commits into stable branches
7 and publishing Ruby patch releases.
9 [The list of current branch maintainers is available in the wiki](https://github.com/ruby/ruby/wiki/Release-Engineering).
12 A module maintainer is responsible for a certain part of Ruby.
14 * The maintainer fixes bugs of the part. Particularly, they should fix
15 security vulnerabilities as soon as possible.
16 * They handle issues related the module on the Redmine or ML.
17 * They may be discharged by the 3 months rule [[ruby-core:25764]](https://blade.ruby-lang.org/ruby-core/25764).
18 * They have commit right to Ruby's repository to modify their part in the
20 * They have "developer" role on the Redmine to modify issues.
21 * They have authority to decide the feature of their part. But they should
22 always respect discussions on ruby-core/ruby-dev.
24 A submaintainer of a module is like a maintainer. But the submaintainer does
25 not have authority to change/add a feature on his/her part. They need
26 consensus on ruby-core/ruby-dev before changing/adding. Some of submaintainers
27 have commit right, others don't.
29 ### Language core features including security
30 * Yukihiro Matsumoto (matz)
36 * Yukihiro Matsumoto (matz)
38 ## Standard Library Maintainers
43 #### lib/rubygems.rb, lib/rubygems/*
44 * Eric Hodel (drbrain)
45 * Hiroshi SHIBATA (hsbt)
46 * https://github.com/rubygems/rubygems
48 #### lib/unicode_normalize.rb, lib/unicode_normalize/*
75 * API change needs matz's approval
78 * NAKAMURA Usaku (usa)
80 ## Default gems Maintainers
85 * https://github.com/ruby/benchmark
86 * https://rubygems.org/gems/benchmark
88 #### lib/bundler.rb, lib/bundler/*
89 * Hiroshi SHIBATA (hsbt)
90 * https://github.com/rubygems/rubygems
91 * https://rubygems.org/gems/bundler
93 #### lib/cgi.rb, lib/cgi/*
95 * https://github.com/ruby/cgi
96 * https://rubygems.org/gems/cgi
100 * https://github.com/ruby/English
101 * https://rubygems.org/gems/English
105 * https://github.com/ruby/delegate
106 * https://rubygems.org/gems/delegate
108 #### lib/did_you_mean.rb
109 * Yuki Nishijima (yuki24)
110 * https://github.com/ruby/did_you_mean
111 * https://rubygems.org/gems/did_you_mean
113 #### ext/digest, ext/digest/*
114 * Akinori MUSHA (knu)
115 * https://github.com/ruby/digest
116 * https://rubygems.org/gems/digest
119 * Masatoshi SEKI (seki)
120 * Takashi Kokubun (k0kubun)
121 * https://github.com/ruby/erb
122 * https://rubygems.org/gems/erb
124 #### lib/error_highlight.rb, lib/error_highlight/*
125 * Yusuke Endoh (mame)
126 * https://github.com/ruby/error_highlight
127 * https://rubygems.org/gems/error_highlight
129 #### lib/fileutils.rb
131 * https://github.com/ruby/fileutils
132 * https://rubygems.org/gems/fileutils
135 * Kazuki Tsujimoto (ktsj)
136 * https://github.com/ruby/find
137 * https://rubygems.org/gems/find
139 #### lib/forwardable.rb
140 * Keiju ISHITSUKA (keiju)
141 * https://github.com/ruby/forwardable
142 * https://rubygems.org/gems/forwardable
145 * Akinori MUSHA (knu)
146 * https://github.com/ruby/ipaddr
147 * https://rubygems.org/gems/ipaddr
149 #### lib/irb.rb, lib/irb/*
151 * Tomoya Ishida (tompng)
152 * Mari Imaizumi (ima1zumi)
153 * Hitoshi Hasumi (hasumikin)
154 * https://github.com/ruby/irb
155 * https://rubygems.org/gems/irb
157 #### lib/optparse.rb, lib/optparse/*
158 * Nobuyuki Nakada (nobu)
159 * https://github.com/ruby/optparse
162 * Naotoshi Seo (sonots)
163 * https://github.com/ruby/logger
164 * https://rubygems.org/gems/logger
166 #### lib/net/http.rb, lib/net/https.rb
167 * NARUSE, Yui (naruse)
168 * https://github.com/ruby/net-http
169 * https://rubygems.org/gems/net-http
171 #### lib/net/protocol.rb
173 * https://github.com/ruby/net-protocol
174 * https://rubygems.org/gems/net-protocol
178 * https://github.com/ruby/open3
179 * https://rubygems.org/gems/open3
183 * https://github.com/ruby/open-uri
186 * Marc-André Lafortune (marcandre)
187 * https://github.com/ruby/ostruct
188 * https://rubygems.org/gems/ostruct
192 * https://github.com/ruby/pp
193 * https://rubygems.org/gems/pp
195 #### lib/prettyprint.rb
197 * https://github.com/ruby/prettyprint
198 * https://rubygems.org/gems/prettyprint
201 * Kevin Newton (kddnewton)
202 * Jemma Issroff (jemmaissroff)
203 * https://github.com/ruby/prism
204 * https://rubygems.org/gems/prism
208 * https://github.com/ruby/pstore
209 * https://rubygems.org/gems/pstore
213 * https://github.com/ruby/readline
214 * https://rubygems.org/gems/readline
218 * https://github.com/ruby/resolv
219 * https://rubygems.org/gems/resolv
221 #### lib/rdoc.rb, lib/rdoc/*
222 * Eric Hodel (drbrain)
223 * Hiroshi SHIBATA (hsbt)
224 * https://github.com/ruby/rdoc
225 * https://rubygems.org/gems/rdoc
227 #### lib/reline.rb, lib/reline/*
228 * Tomoya Ishida (tompng)
229 * Mari Imaizumi (ima1zumi)
231 * Hitoshi Hasumi (hasumikin)
232 * https://github.com/ruby/reline
233 * https://rubygems.org/gems/reline
235 #### lib/securerandom.rb
237 * https://github.com/ruby/securerandom
238 * https://rubygems.org/gems/securerandom
241 * Akinori MUSHA (knu)
242 * https://github.com/ruby/set
243 * https://rubygems.org/gems/set
245 #### lib/shellwords.rb
246 * Akinori MUSHA (knu)
247 * https://github.com/ruby/shellwords
248 * https://rubygems.org/gems/shellwords
250 #### lib/singleton.rb
251 * Yukihiro Matsumoto (matz)
252 * https://github.com/ruby/singleton
253 * https://rubygems.org/gems/singleton
257 * https://github.com/ruby/tempfile
258 * https://rubygems.org/gems/tempfile
262 * https://github.com/ruby/time
263 * https://rubygems.org/gems/time
266 * Yukihiro Matsumoto (matz)
267 * https://github.com/ruby/timeout
268 * https://rubygems.org/gems/timeout
271 * Keiju ISHITSUKA (keiju)
272 * https://github.com/ruby/thwait
273 * https://rubygems.org/gems/thwait
277 * https://github.com/ruby/tmpdir
278 * https://rubygems.org/gems/tmpdir
282 * https://github.com/ruby/tsort
283 * https://rubygems.org/gems/tsort
286 * WATANABE Hirofumi (eban)
287 * https://github.com/ruby/un
288 * https://rubygems.org/gems/un
290 #### lib/uri.rb, lib/uri/*
291 * NARUSE, Yui (naruse)
292 * https://github.com/ruby/uri
293 * https://rubygems.org/gems/uri
295 #### lib/yaml.rb, lib/yaml/*
296 * Aaron Patterson (tenderlove)
297 * Hiroshi SHIBATA (hsbt)
298 * https://github.com/ruby/yaml
299 * https://rubygems.org/gems/yaml
303 * https://github.com/ruby/weakref
304 * https://rubygems.org/gems/weakref
309 * Nobuyoshi Nakada (nobu)
310 * https://github.com/ruby/cgi
311 * https://rubygems.org/gems/cgi
315 * https://github.com/ruby/date
316 * https://rubygems.org/gems/date
320 * https://github.com/ruby/etc
321 * https://rubygems.org/gems/etc
325 * https://github.com/ruby/fcntl
326 * https://rubygems.org/gems/fcntl
329 * Aaron Patterson (tenderlove)
330 * https://github.com/ruby/fiddle
331 * https://rubygems.org/gems/fiddle
334 * Nobuyuki Nakada (nobu)
335 * https://github.com/ruby/io-console
336 * https://rubygems.org/gems/io-console
339 * Nobuyuki Nakada (nobu)
340 * https://github.com/ruby/io-nonblock
341 * https://rubygems.org/gems/io-nonblock
344 * Nobuyuki Nakada (nobu)
345 * https://github.com/ruby/io-wait
346 * https://rubygems.org/gems/io-wait
349 * NARUSE, Yui (naruse)
350 * Hiroshi SHIBATA (hsbt)
351 * https://github.com/flori/json
352 * https://rubygems.org/gems/json
355 * Kazuki Yamaguchi (rhe)
356 * https://github.com/ruby/openssl
357 * https://rubygems.org/gems/openssl
361 * https://github.com/ruby/pathname
362 * https://rubygems.org/gems/pathname
365 * Aaron Patterson (tenderlove)
366 * Hiroshi SHIBATA (hsbt)
367 * https://github.com/ruby/psych
368 * https://rubygems.org/gems/psych
371 * Nobuyuki Nakada (nobu)
372 * https://github.com/ruby/stringio
373 * https://rubygems.org/gems/stringio
377 * https://github.com/ruby/strscan
378 * https://rubygems.org/gems/strscan
381 * Masaki Suketa (suke)
382 * https://github.com/ruby/win32ole
383 * https://rubygems.org/gems/win32ole
386 * NARUSE, Yui (naruse)
387 * https://github.com/ruby/zlib
388 * https://rubygems.org/gems/zlib
390 ## Bundled gems upstream repositories
392 * https://github.com/minitest/minitest
395 * https://github.com/ruby/power_assert
398 * https://github.com/ruby/rake
401 * https://github.com/test-unit/test-unit
404 * https://github.com/ruby/rexml
407 * https://github.com/ruby/rss
410 * https://github.com/ruby/net-ftp
413 * https://github.com/ruby/net-imap
416 * https://github.com/ruby/net-pop
419 * https://github.com/ruby/net-smtp
422 * https://github.com/ruby/matrix
425 * https://github.com/ruby/prime
428 * https://github.com/ruby/rbs
431 * https://github.com/ruby/typeprof
434 * https://github.com/ruby/debug
437 * https://github.com/ruby/racc
440 * https://github.com/ruby/mutex_m
443 * https://github.com/ruby/getoptlong
446 * https://github.com/ruby/base64
449 * https://github.com/ruby/bigdecimal
452 * https://github.com/ruby/observer
455 * https://github.com/ruby/abbrev
458 * https://github.com/ruby/resolv-replace
461 * https://github.com/ruby/rinda
464 * https://github.com/ruby/drb
467 * https://github.com/ruby/nkf
470 * https://github.com/ruby/syslog
473 * https://github.com/ruby/csv
475 ## Platform Maintainers
476 ### mswin64 (Microsoft Windows)
477 * NAKAMURA Usaku (usa)
479 ### mingw32 (Minimalist GNU for Windows)
480 * Nobuyoshi Nakada (nobu)
483 * Yutaka Kanemoto (kanemoto)
486 * Akinori MUSHA (knu)
489 * Naohisa Goto (ngoto)
492 * KOSAKI Motohiro (kosaki)
495 * Kenta Murata (mrkn)
498 * Jeremy Evans (jeremyevans0)
501 * none. (Maintainer WANTED)