Definition of "Support levels", 1.9.1 supported platforms and recruitment for platform maintainers

Hi, all.

Ruby committers had the Ruby developers camp 20080811
(http://redmine.ruby-lang.org/wiki/ruby/DevelopersCamp20080811 ). We
talked about platforms which Ruby will support, and decided 4 “support
levels” yesterday.

== support levels
The support levels are “supported”, “best effort”, “perhaps” and “not
supported”. Note that “Platform has a maintainer” includes “Some of core
developers always develop Ruby on it”, for example, Debian GNU/Linux.

Supported:
Officially, fully supported. Ruby will be never released while Ruby
has errors on “supported” platforms.

A platform is “supported” when

  • The platform has at least one maintainer. One or more maintainer(s)
    maintains Ruby on it.
  • We can build Ruby for it.
  • We can expect that “make test-all” almost succeed.
  • We have the nightly build&test environment for it.

Best effort:
We want Ruby to support the platform but some errors occur constantly
on it.
Ruby will be never released while Ruby has serious errors on
“best effort” platforms.

A platform is “best effort” when

  • The platform has at least one maintainer.
  • We can build Ruby for it.
  • We can expect that “make test-all” success except some known
    problems.
    OR
    We have no nightly build&test environemnt for it.

Perhaps:
We think Ruby can work on the platform but it is not officially
supported. Ruby can be released even if Ruby has errors on it.

A platform is “perhaps”

  • A similar platform is “supported” or “best effort”.

Not supported:
We don’t know whether Ruby works on it or not.

== Support plan of Ruby 1.9.1
Supported:

  • Debian GNU/Linux 4.0 on IA32
    Best effort:
  • mswin32, x64-mswin64, mingw32
  • Mac OS X (Intel)
  • FreeBSD (amd64, IA32)
    Perhaps:
  • Other Linux distributions
  • Mac OS X (PPC)
  • mingw64
  • cygwin
  • Other POSIX compatible systems.
  • BeOS (Haiku)
    Not supported:
    Anything other. But, I think the following platforms can be
    “best effort” or “supported” if someone become a maintainer.
  • OpenVMS
  • WinCE
  • OS/2
  • bcc32
  • Classic MacOS

== Maintainers are wanted
I want someone to become a maintainer and maintains Ruby 1.9 for one of
the following platforms.

These 7 platforms are now “perhaps”, they can be “best effort” if a
maintainer appears.

  • cygwin
  • Interix
  • Itanium platforms (Windows, GNU/Linux, …)
  • PPC platforms
  • x64 GNU/Linux
  • *BSD
  • BeOS (Haiku)

These 5 platforms are now “not supported”, they can be “best effort” if
a maintainer appears.

  • OpenVMS
  • WinCE
  • OS/2
  • bcc32
  • Classic MacOS

The tasks which a maintainer should do are:

  • Subscribe [email protected] list.
  • Port thread_{win32,pathread}.c to the platform if it has no
    implementation of pthread.
  • Resolve other build errors and platform specific problems.
  • Constantly build and test the trunk version of Ruby on it.
  • Effort to succeed in “make test-all” by 20 Dec.

Please send a mail to [email protected] list and run for a
maintainer if you can.

Regards,

HI! This answers the question that I asked a few days ago, thank you!

I do like the idea of support levels.

Yugui (Yuki S.) wrote:

These 5 platforms are now “not supported”, they can be “best effort” if
a maintainer appears.

  • OpenVMS
  • WinCE
  • OS/2
  • bcc32
  • Classic MacOS

maintainer if you can.
I am actually interested in seeing bcc32 stick around, at least from the
idea that applications built with bcc32 can use the static library or
the DLL built for Windows. That way, it can be used for embedding Ruby
into Borland C++ Builder/ Codegear Turbo C++/ Codegear Developer
Studio… I really think that for the first time in years, it looks like
Codegear has a plan for the tools :slight_smile:

That said, this is the first time that I would be involved in a project
of this size. I have worked on embedded operating systems (ITRON,
T-Kernel, MicroC/OS-II, etc.) - even in porting, etc. but this would be
the first time working on such a level within Windows XP/ Vista.
Therefore, I would like to propose that I stay more in the backup sense

  • to support an official maintainer or to run the builds, tests, etc.

I guess I could buy a machine to support this effort, that’s one thing…
but I may need a bit more help keeping things running.

I hope I’m able to be useful in the limited time that I have available
to invest in this effort… though I really do hope that someone else
(who understands these issues better will join in).

Best wishes,
Mohit.

On Wed, 2008-08-13 at 13:10 +0900, Yugui (Yuki S.) wrote:

== Support plan of Ruby 1.9.1
Supported:

  • Debian GNU/Linux 4.0 on IA32
  1. You might want to change that to “Lenny” – I believe it will be
    released/stable before Ruby 1.9.1 is.

  2. Most of the Linux distros have Ruby maintainers/herds already, so I
    don’t think you need to worry about supporting them. And Gentoo builds
    from source, so that one is more or less automatic once you release a
    source tarball. But I think it’s a serious mistake not to support
    Fedora. At the very least, you should seriously consider building RPMs
    as well as .debs.

These 7 platforms are now “perhaps”, they can be “best effort” if a
maintainer appears.

  • x64 GNU/Linux

I do builds from source on my Gentoo x86_64 all the time with no trouble
at all. And, as I mentioned above, chances are pretty good it will be in
Gentoo for all of the platforms where it compiles, or at least, it will
be in the Ruby overlay. They’ve got jRuby and a rather ancient Rubinius
too.

The tasks which a maintainer should do are:

  • Subscribe [email protected] list.
  • Port thread_{win32,pathread}.c to the platform if it has no
    implementation of pthread.

Is there a Linux distro that doesn’t have pthread?

  • Resolve other build errors and platform specific problems.

As noted above, I do this all the time on Gentoo x86_64. I don’t have
any plans to “downgrade” to a 32-bit box anytime soon, although if
you’re real nice, I might test it on my One Laptop Per Child XO. :slight_smile:

  • Constantly build and test the trunk version of Ruby on it.

Define “constantly” … is once a week enough?

  • Effort to succeed in “make test-all” by 20 Dec.

Please send a mail to [email protected] list and run for a
maintainer if you can.

Well … between me and the Gentoo Ruby herd, I think we can help out.
See 203706 – dev-lang/ruby:1.9 unmask for the status of
Ruby 1.9.x on Gentoo.

Regards,


M. Edward (Ed) Borasky
ruby-perspectives.blogspot.com

“A mathematician is a machine for turning coffee into theorems.” –
Alfréd Rényi via Paul Erdős

FWIW,

UBUNTU x64 GNU/LINUX

trans@logisys:ruby$ ./ruby -v
ruby 1.9.0 (2008-08-02 revision 18315) [x86_64-linux]

trans@logisys:ruby$ make test-all
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./
runruby.rb --extout=.ext – “./test/runner.rb” --basedir="./test" –
runner=console
gem cert tests are being skipped, module OpenSSL not found
Gem::Indexer tests are being skipped. Install builder gem.
Skipping permutation tests.
Loaded suite .
Started
…E…E…F…F…F…F…EF…F…sh:
/
usr/local/bin/ruby: not found
F…sh: /usr/local/bin/
ruby: not found
F…
Finished in 355.881158595 seconds.

  1. Error:
    test_flush(TestIONonblock):
    Errno::EBADF: Bad file descriptor
    /home/trans/Company/TigerOps/programs/ruby/test/io/nonblock/
    test_flush.rb:27:in flush' /home/trans/Company/TigerOps/programs/ruby/test/io/nonblock/ test_flush.rb:27:inblock in test_flush’
    /home/trans/Company/TigerOps/programs/ruby/lib/timeout.rb:52:in
    timeout' /home/trans/Company/TigerOps/programs/ruby/lib/timeout.rb:82:intimeout’
    /home/trans/Company/TigerOps/programs/ruby/test/io/nonblock/
    test_flush.rb:17:in `test_flush’

  2. Error:
    test_unexpected_eof(IMAPTest):
    NameError: uninitialized constant Net::IMAP::SSL
    /home/trans/Company/TigerOps/programs/ruby/lib/net/imap.rb:290:in
    disconnect' /home/trans/Company/TigerOps/programs/ruby/test/net/imap/ test_imap.rb:108:intest_unexpected_eof’

  3. Failure:
    test_core_03_notify(Rinda::TupleSpaceProxyTest) [/home/trans/Company/
    TigerOps/programs/ruby/test/rinda/test_rinda.rb:388]:
    <10> expected but was
    <8>.

  4. Failure:
    test_has_expires_eh(TestTupleBag) [/home/trans/Company/TigerOps/
    programs/ruby/test/rinda/test_tuplebag.rb:137]:
    expected but was
    .

  5. Failure:
    test_priority(TestThread) [/home/trans/Company/TigerOps/programs/ruby/
    test/ruby/test_thread.rb:129]:
    [ruby-dev:33124].
    is not true.

  6. Failure:
    test_strftime(TestTime) [/home/trans/Company/TigerOps/programs/ruby/
    test/ruby/test_time.rb:381]:
    <“Sat”> expected but was
    <“Fri”>.

  7. Error:
    test_class_build(TestGemExtExtConfBuilder):
    Gem::InstallError: extconf failed:

/usr/local/bin/ruby extconf.rb
sh: /usr/local/bin/ruby: not found

/home/trans/Company/TigerOps/programs/ruby/lib/rubygems/ext/

builder.rb:51:in run' /home/trans/Company/TigerOps/programs/ruby/lib/rubygems/ext/ ext_conf_builder.rb:15:inbuild’
/home/trans/Company/TigerOps/programs/ruby/test/rubygems/
test_gem_ext_ext_conf_builder.rb:25:in block in test_class_build' /home/trans/Company/TigerOps/programs/ruby/test/rubygems/ test_gem_ext_ext_conf_builder.rb:24:inchdir’
/home/trans/Company/TigerOps/programs/ruby/test/rubygems/
test_gem_ext_ext_conf_builder.rb:24:in `test_class_build’

  1. Failure:
    test_class_build_extconf_fail(TestGemExtExtConfBuilder) [/home/trans/
    Company/TigerOps/programs/ruby/test/rubygems/
    test_gem_ext_ext_conf_builder.rb:67]:
    <“extconf failed:\n\n/usr/local/bin/ruby extconf.rb\nsh: /usr/local/
    bin/ruby: not found\n”> expected to be =~
    </\Aextconf failed:

/usr/local/bin/ruby extconf.rb.*
checking for main() in .*?nonexistent/m>.

  1. Failure:
    test_build_extensions_extconf_bad(TestGemInstaller) [/home/trans/
    Company/TigerOps/programs/ruby/test/rubygems/test_gem_installer.rb:
    73]:
    <"/usr/local/bin/ruby extconf.rb\n/usr/local/bin/ruby: No such file or
    directory – extconf.rb (LoadError)\n"> expected but was
    <"/usr/local/bin/ruby extconf.rb\nsh: /usr/local/bin/ruby: not found
    \n">.

  2. Failure:
    test_cgi(TestWEBrickCGI)
    [/home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_cgi.rb:27:in block (2 levels) in test_cgi' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1115:inblock in transport_request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:
    2246:in reading_body' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1114:intransport_request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:
    1098:in request' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1091:inblock in request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:559:in
    start' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1089:inrequest’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_cgi.rb:27:in block in test_cgi' /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb: 40:inyield’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb:
    40:in start_server' /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb: 50:instart_httpserver’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_cgi.rb:24:in `test_cgi’]:
    <"/webrick.cgi"> expected but was
    <"\n\n

Internal Server Error\n \n

Internal Server Error

\n Broken pipe\n
\n \n WEBrick/1.3.1 (Ruby/1.9.0/2008-08-02) at\n 127.0.0.1:41289\n \n \n\n">.
  1. Failure:
    test_script_disclosure(WEBrick::TestFileHandler)
    [/home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_filehandler.rb:184:in block (2 levels) in test_script_disclosure' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1115:inblock in transport_request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:
    2246:in reading_body' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1114:intransport_request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:
    1098:in request' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1091:inblock in request’
    /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb:559:in
    start' /home/trans/Company/TigerOps/programs/ruby/lib/net/http.rb: 1089:inrequest’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_filehandler.rb:183:in block in test_script_disclosure' /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb: 40:inyield’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb:
    40:in start_server' /home/trans/Company/TigerOps/programs/ruby/test/webrick/utils.rb: 50:instart_httpserver’
    /home/trans/Company/TigerOps/programs/ruby/test/webrick/
    test_filehandler.rb:179:in `test_script_disclosure’]:
    <“200”> expected but was
    <“500”>.

4808 tests, 1986629 assertions, 8 failures, 3 errors
make: *** [test-all] Error 1
trans@logisys:ruby$

Hi,

In message “Re: [ruby-core:18266] Re: Definition of “Support levels”,
1.9.1 supported platforms and recruitment for platform maintainers”
on Wed, 13 Aug 2008 23:25:56 +0900, Mohit SIndhwani
[email protected] writes:

|I am actually interested in seeing bcc32 stick around, at least from the
|idea that applications built with bcc32 can use the static library or
|the DLL built for Windows. That way, it can be used for embedding Ruby
|into Borland C++ Builder/ Codegear Turbo C++/ Codegear Developer
|Studio… I really think that for the first time in years, it looks like
|Codegear has a plan for the tools :slight_smile:

Note that above support levels only cover 1.9 right now, and 1.9
(YARV) requires pthread (or Win32 thread) to run. If you really want
to run 1.9 on bcc32, you need to prepare (user-level) threading
library under bcc.

          matz.

Yukihiro M. wrote:

|Codegear has a plan for the tools :slight_smile:

Note that above support levels only cover 1.9 right now, and 1.9
(YARV) requires pthread (or Win32 thread) to run. If you really want
to run 1.9 on bcc32, you need to prepare (user-level) threading
library under bcc.

          matz.

Hi Matz

Thanks for your email. I hope that the work spent in getting it to run
under MSVC will scale across. I shall try my best to work with this
issue as we go forward.

Also, I am seriously hoping that there will be some more support from
other people as we go ahead.

I would really much rather see Ruby running on embedded systems (like
T-Engine) since it will be directly in my area of work… (btw, I read
about the work that Toshiba is doing in making Cairo + Ruby work for
Cell based systems).

But, I shall try to do my best in the time I have.

Thanks,
Mohit.

Hi,

In message “Re: [ruby-core:18270] Re: Definition of “Support levels”,
1.9.1 supported platforms and recruitment for platform maintainers”
on Thu, 14 Aug 2008 00:04:49 +0900, Mohit SIndhwani
[email protected] writes:

|I would really much rather see Ruby running on embedded systems (like
|T-Engine) since it will be directly in my area of work… (btw, I read
|about the work that Toshiba is doing in making Cairo + Ruby work for
|Cell based systems).

Embedded systems are interesting field, although I have no experience
on them. I saw Toshiba’s demo on Cairo + Ruby on a Cell based Video
Recorder. It was fantastic. I really hope to see them on production.

          matz.

On Aug 12, 11:10 pm, “Yugui (Yuki S.)” [email protected] wrote:

Hi, all.

Ruby committers had the Ruby developers camp 20080811
(http://redmine.ruby-lang.org/wiki/ruby/DevelopersCamp20080811). We
talked about platforms which Ruby will support, and decided 4 “support
levels” yesterday.

[snip]

Yugui [email protected]http://yugui.jp

Thanks for this kind of email. It helps me understand the rationale
and process that’s going into 1.9.x. I appreciate the efforts by ruby
core.

Jeff

Hi Matz

Yukihiro M. wrote:

Embedded systems are interesting field, although I have no experience
on them. I saw Toshiba’s demo on Cairo + Ruby on a Cell based Video
Recorder. It was fantastic. I really hope to see them on production.

Embedded systems is very much my area of work! I come to Tokyo every
Dec to participate in an embedded systems trade show. It would be my
pleasure to show you around the exhibits :slight_smile:

To be honest, the current perception of Ruby needing lots of RAM does it
make it a tight fit in smaller embedded systems (not those running on
the Cell or high MHz ARM processor), but there are examples of Ruby (and
even Rails) being used in some simpler applications. Anyway, one step
at a time - first, I need to brace myself for the responsibility of
being a potential maintainer of Ruby…

Cheers,
Mohit.
8/14/2008 | 12:38 AM.

== Support plan of Ruby 1.9.1
[…]

  • Mac OS X (Intel)
    […]
  • Mac OS X (PPC)

hi there, we are supporting/maintaining Ruby 1.8 and 1.9 for OSX (intel
and ppc) - for leopard, tiger, panther and also older versions. see the
project site http://rubyosx.com

regards,
matthias