[devel] ruby team, ruby policy и будущее ruby в Сизифе

Igor Zubkov igor.zubkov на gmail.com
Вт Ноя 27 19:09:27 MSK 2012


Hi!

Разговор о ruby будет длинный и грустный. Он будет состоять из двух
частей. Настоящее и Будущее.

Настоящее:

В текущий момент в Сизифе две версии ruby. 1.8.7 и 1.9.2. Начнём с
1.8.7 (опустим то что версия в Сизифе требует исправлений по части
безопасности). 1.8.7 руби уже списали на берег. По официальному плану
(http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/) его
поддержка по части безопасности будет свёрнута в июне 2013. Предлагаю
не ждать этого времени и отправить 1.8 ветку на пенсию сейчас. Таск
для этого я сегодня подготовлю. В нём будет ruby1.8 и всё что от него
зависит. ruby1.8 и большая часть пакетов которые от него зависит уже
давно не пересобирается и beekeeper его уже давно пытается удалить.
Ему надо только помочь. Ruby on Rails 4.0, который скоро выйдет, уже
не поддерживает 1.8.7 руби.

1.9.2. Версия в Сизифе устарелая, дырявая и не пересобирается. Так же,
не пересобирается большая часть того что зависит от этой версии ruby.
У меня есть более свежий 1.9.2p320. В ней заткнуты все дырки по
безопасности, но тесты не проходят и отключены. Чинить эту версию
смысла нет. Хотя можно попробовать собрать её более старым
компилятором, но я не особо уверен в этой затеи. (Кроме того, эта
сборка выполнена в виде .src.rpm.)

Будущее:
Собрать 1.9.3/2.0.0.

Говорить о 2.0.0 пока рано. Сейчас доступна только 2.0.0-preview1.

1.9.3p327 сейчас является основной версией которую используют все. Вот
её и надо собирать. Всё что будет дальше это только черновик мыслей по
поводу того что надо делать. И выкладывается это здесь с целью
получить обратную связь.

Итак, начнём с того как собирать. .src.rpm only. Потом надо разрешить
зависимость на rubygems и вообще не отрывать зависимость на него.
Далее, я считаю что совсем не правильно перепаковывать руками джемы.
По статистике rubygems.org, их там уже "of 47,599 gems cut since July
2009". Хотя это число всех джемов и всех их версий. Я считаю что кроме
ruby, rubygems и джемов которые входят в комплект самого руби, нужен
только bundler (http://gembundler.com/). Ну и рабочий rubygems что бы
доставить нужных джемов в систему или пользователю в home. Или даже в
папку с самим приложением. Таким образом, будет работать что угодно
что пользователи выкачают из интернета и попытаются запустить.

Да, у нас есть ещё пакеты из Сизифа которые могут хотеть руби для
чего-нибудь своего. Для них придётся их запаковать. Например,
rubygems-mysql. Да, это просто переупакованный джем с зависимостью на
rubygems.

Ещё раз. Это должно быть такое руби в репозитории которое не охота
снести (у меня локально снесено и на продакшене packages.altlinux.org
тоже) и поставить через rvm или rbenv в home и поставить все нужные
джемы туда же. Чем меньше он будет отличатся от того что можно собрать
через ./configure && make && make install тем лучше.

Теперь о ruby team. Я считаю что он умер так и не родившись. И
спрашивать что он думает, думаю бесполезно. Надо брать и делать.

Изменения для ruby policy я подготовлю позже, вместе со сборкой ruby 1.9.3p327.

P.S.: Я знаю что у timonbl4@ в гите лежит сборка 1.9.3. Так вот, оно
даже не собирается.

-- 
Igor Zubkov
http://hi.im/ice


Подробная информация о списке рассылки Devel