Dev dependencies для rebar

164 views
Skip to first unread message

Vladimir Gordeev

unread,
May 26, 2012, 6:54:42 AM5/26/12
to erlang-...@googlegroups.com
Иногда есть какие-либо зависимости которые нужны лишь для прогона тестов.
Не хотелось бы пользователей пакета заставлять скачивать то, что им не потребуется
в продакшене.

Если я пользуюсь Node.js (npm), то я могу их указать в "devDependencies" в package.json

Если я пользуюсь  Ruby (bundler), то я могу их указать в group :development do end в Gemfile

Как мне сделать также используя Erlang (rebar) ?

Peter Lemenkov

unread,
May 26, 2012, 7:04:35 AM5/26/12
to erlang-...@googlegroups.com
26 мая 2012 г., 14:54 пользователь Vladimir Gordeev
<gordeev.v...@gmail.com> написал:

Мало-помалу пользователи rebar переизобретают фишки пакетных
менеджеров, вместо интеграции с ними.

Это, кстати, не только для rebar такое - для любого языка с большим
коммьюнити, обязательно на каком-то этапе пишут свой языко-специфичный
пакетный менеджер, который делает хорошо если примерно 5% того, что
делают обычные универсальные пакетные менеджеры (остальное объявляется
ненужным, т.к. в коммьюнити мало людей разбирающихся в проблематике,
плюс еще их и не слушают). Затем кое-как добавляют оставшееся, причем
на стыках язык <-> другой язык ничего не работает надежно, т.к.
пакетные языкоспецифичные менеджеры друг про друга ничего не знают,
как не знают про них и системные менеджеры пакетов.

--
With best regards, Peter Lemenkov.

Dmitry Groshev

unread,
May 26, 2012, 7:11:57 AM5/26/12
to erlang-...@googlegroups.com

Вероятно, это связано с тем, что системные вроде апта древние, херовые и их разработчики на болте крутили удобство программистов, ставя во главу угла удобство мейнтейнеров? Одни глобальные зависимости чего стоят.

26.05.2012 15:04 пользователь "Peter Lemenkov" <leme...@gmail.com> написал:
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com

Max Lapshin

unread,
May 26, 2012, 8:20:30 AM5/26/12
to erlang-...@googlegroups.com
2012/5/26 Dmitry Groshev <lambda...@gmail.com>:

> Вероятно, это связано с тем, что системные вроде апта древние, херовые

И аццки сложные

Dmitrii Dimandt

unread,
May 26, 2012, 11:35:45 AM5/26/12
to erlang-...@googlegroups.com

Defnull

unread,
May 26, 2012, 12:34:02 PM5/26/12
to erlang-...@googlegroups.com
Сделайте для этого второй rebar-test.config в который включите все deps для прогона тестов и вызывайте его с помощью rebar -C rebar-test.config

Led

unread,
May 26, 2012, 12:52:57 PM5/26/12
to erlang-...@googlegroups.com
On Saturday 26 May 2012 14:11:57 Dmitry Groshev wrote:
> Вероятно, это связано с тем, что системные вроде апта древние, херовые и их
> разработчики на болте крутили удобство программистов, ставя во главу угла
> удобство мейнтейнеров? Одни глобальные зависимости чего стоят.

Вероятно, это связано с тем, что быдлокодеры, ничего не знающие о предмете (в данном случае - о пакетных менеджерах),
берутся что-то такое о них рассказывать.

--
Led

Dmitry Groshev

unread,
May 26, 2012, 1:17:29 PM5/26/12
to erlang-...@googlegroups.com
Achievement unlocked: назови незнакомого человека быдлом.

2012/5/26 Led <led...@gmail.com>:

Mikhail Gusarov

unread,
May 26, 2012, 1:33:51 PM5/26/12
to erlang-...@googlegroups.com

Twas brillig at 21:17:29 26.05.2012 UTC+04 when lambda...@gmail.com did gyre and gimble:

DG> Achievement unlocked: назови незнакомого человека быдлом.

Былдлокодер - это термин, а не инвектив.

--

Alexander Dergachev

unread,
May 26, 2012, 2:45:17 PM5/26/12
to erlang-...@googlegroups.com, erlang-...@googlegroups.com
а что ты так Диму не любишь? на какую больную мозоль он тебе наступил? он у тебя девушку увел что ли? просто не первый раз замечаю твое неадекватное хамство в его сторону (или мне показалось, и ты хамишь без разбора?)

Anton Fedorov

unread,
May 27, 2012, 7:32:54 AM5/27/12
to erlang-...@googlegroups.com
А еще "rebar co" работает на удивление _значительно_ тормознее, чем даже простой
erl -make.
Я уж молчу о 'make'.


В письме от Суб, 26 Май 2012, 23:52 Led пишет:
> --
> Страница рассылки: http://groups.google.com/group/erlang-russian
> Новости: http://erlanger.ru
> Написать письмо: erlang-...@googlegroups.com
> Отписаться: erlang-russia...@googlegroups.com
>


--
Regards,
Anton Fedorov
Call2ru service
E-Mail: datac...@call2ru.com
Jabber: datac...@call2ru.com
Skype: datacompboy
ICQ: 272-35-262
Mobile: +7-913-925-7974 [SMS 24h, Call 05:00-19:00 MSKT (GMT+3)]

Alexander Dergachev

unread,
May 27, 2012, 7:53:53 AM5/27/12
to erlang-...@googlegroups.com, erlang-...@googlegroups.com
а чего странного? зависимости и прочие штуки кто будет делать? в случае мэйка тебе надо все это самому предусмотреть, здесь же ты платишь скоростью за удобство. что за удивление, я не понимаю

JLarky

unread,
May 27, 2012, 8:34:37 AM5/27/12
to erlang-...@googlegroups.com
ровно на столько на сколько тормознее запускать erlang VM по каждому
чиху по сравнению с кодом на C :)

2012/5/27 Anton Fedorov <datac...@call2ru.com>:

Max Lapshin

unread,
May 27, 2012, 8:54:08 AM5/27/12
to erlang-...@googlegroups.com
Не смешите меня. Проверить зависимости на современном железе около 1-2
миллисекунд. Ребар действительно фантастически медленно собирает.

Я пользуюсь rebar compile крайне редко.

Maxim Treskin

unread,
May 29, 2012, 5:27:30 AM5/29/12
to erlang-...@googlegroups.com
Когда в разработке требуется использовать библиотеки, запакованные в пакет пакетного менеджера, мы получаем зависимость от действий мейнтейнера этого пакета. Либо приходится самим пакетировать и ставить на сервера, если ждать не хочется. Когда зависимостей много, может потребоваться учитывать их влияние друг на друга, их взаимные зависимости.
Намного проще, удобнее и правильнее (правильнее по существу, а не в идеализированных мечтах) делать один статический тарболл, который содержит как можно больше зависимостей и работает практически изолированно, чем дерьбанить софт на пакетики и следить за тем, чтобы стояли нужные версии. В случае хотфиксов обновить надо один пакет, а не десяток мелких.
Rebar делает это достаточно хорошо.

2012/5/26 Peter Lemenkov <leme...@gmail.com>
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com



--
Maxim Treskin

Peter Lemenkov

unread,
May 29, 2012, 5:39:47 AM5/29/12
to erlang-...@googlegroups.com
29 мая 2012 г., 13:27 пользователь Maxim Treskin <zert...@gmail.com> написал:

> Намного проще, удобнее и правильнее (правильнее по существу, а не в

> идеализированных мечтах) делать один статический тарболл...

Максим, то, что ты написал, это вольный пересказ старой песни про
статическую линковку сишных библиотек, или то, что в виндозе
называется dll-hell, и от чего у вендузятников никак не получается
уйти по слухам (когда каждый setup.exe включает в себя разные версии
msvcrt.dll, mfs42.dll и т.п.)

В общем, подход "таскать с собой все", признали бесперспективным еще
до создания линукса, и мне Стыдно и Страшно жить в этой стране^W^W^W^W
от того, что приходится вам про это напомнить.

Ситуация с Erlang в дистрах далека от идеальной, и это надо исправлять
срочно (иначе так и будет таскать все с собой) - это надо сразу
сказать, а не рассказывать басни про "проще, удобнее и правильнее" с
пенька победно озираясь на окружившую тебя наивную молодежь.

Dmitry Groshev

unread,
May 29, 2012, 5:41:29 AM5/29/12
to erlang-...@googlegroups.com

Да куда уж нам, быдлопрограммистам, нежелающим мудиться с товарищами вроде того ментейнера, что запаковал в визи R14A, до пуристов-гуру запаковки.

29.05.2012 11:29 пользователь "Maxim Treskin" <zert...@gmail.com> написал:

Peter Lemenkov

unread,
May 29, 2012, 5:43:19 AM5/29/12
to erlang-...@googlegroups.com
29 мая 2012 г., 13:41 пользователь Dmitry Groshev
<lambda...@gmail.com> написал:

> Да куда уж нам, быдлопрограммистам, нежелающим мудиться с товарищами вроде
> того ментейнера, что запаковал в визи R14A, до пуристов-гуру запаковки.

Я ж говорю - ситуация пока не очень. Но это не отменяет, не
противоречит и не отрицает.

Dmitry Groshev

unread,
May 29, 2012, 5:51:41 AM5/29/12
to erlang-...@googlegroups.com

Пётр, аргумент "все согласились" это не аргумент. Паковать блобом *серверный* код удобно; я подчеркну, что это не пользовательский код у сотен тысяч людей на сотнях тысяч машин, а полностью подконтрольный гомогенный кластер (в случае эрланга это обычно так). Какие плюсы у дебиан-стайл упаковки в этом случае?

29.05.2012 11:43 пользователь "Peter Lemenkov" <leme...@gmail.com> написал:

Maxim Treskin

unread,
May 29, 2012, 5:51:57 AM5/29/12
to erlang-...@googlegroups.com

2012/5/29 Peter Lemenkov <leme...@gmail.com>

29 мая 2012 г., 13:27 пользователь Maxim Treskin <zert...@gmail.com> написал:

> Намного проще, удобнее и правильнее (правильнее по существу, а не в
> идеализированных мечтах) делать один статический тарболл...

Максим, то, что ты написал, это вольный пересказ старой песни про
статическую линковку сишных библиотек, или то, что в виндозе
называется dll-hell, и от чего у вендузятников никак не получается
уйти по слухам (когда каждый setup.exe включает в себя разные версии
msvcrt.dll, mfs42.dll и т.п.)

В общем, подход "таскать с собой все", признали бесперспективным еще
до создания линукса, и мне Стыдно и Страшно жить в этой стране^W^W^W^W
от того, что приходится вам про это напомнить.


До создания линукса количество пакетов можно было пересчитать по пальцам рук работников небольшой пилорамы. Развивались и менялись они очень редко. Сейчас ситуация абсолютно иная, надо таскать всё с собой, чтобы быть уверенным. Жертвуем местом на жёстком диске, но сейчас пара десятков мегабайт погоды не делают.
 
Ситуация с Erlang в дистрах далека от идеальной, и это надо исправлять
срочно (иначе так и будет таскать все с собой) - это надо сразу
сказать, а не рассказывать басни про "проще, удобнее и правильнее" с
пенька победно озираясь на окружившую тебя наивную молодежь.


Как это предлагаешь решать? Решение должно быть простым (иначе все на него забьют) и рабочим (иначе не будет работать).
 
--
With best regards, Peter Lemenkov.

--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com



--
Maxim Treskin

Peter Lemenkov

unread,
May 29, 2012, 6:08:28 AM5/29/12
to erlang-...@googlegroups.com
29 мая 2012 г., 13:51 пользователь Dmitry Groshev
<lambda...@gmail.com> написал:

> Пётр, аргумент "все согласились" это не аргумент. Паковать блобом

Правильно, это не аргумент, а подсказка, куда смотреть, чтоб иметь
теоретический бэкграунд по проблематике - всегда надо начинать с
исторических параллелей. Ну там, чего люди делали раньше в схожих
ситуациях.

Теперь теоретически можно и по существу пообщаться, но я не буду. Я
посмотрю со стороны, как Erlang коммьюнити проедет еще раз по граблям,
по которым уже за 30 лет до них сначал проехались C-разработчики,
затем за 20 лет до них - Java-разработчики, а 10 лет назад начали
потом PHP/Python/Ruby/JS-разработчики. Теперь очередь Erlang, Go и
прочих "молодых" языков (Erlang молодой, т.к. его инфраструктура в
целом только недавно начала открываться, с переводом ядра разработки
на GitHub).

Понимаешь, в чем дело - все эти странные рассуждения про "проще и
лучше", они идут от недостатка опыта на длинных интервалах. Без обид,
парни - ничего личного, я просто общо обрисовываю ситуацию. Например,
я всегда говорю, что RHEL боксы перезагружаются реже, чем время жизни
типичного стартапа - откуда у стратаперов жизненный опыт-то? Они
постоянно что-то пишут и выкладывают - думать о том, как правильно,
некогда. Вылетишь из индивидуальной капсулы. А большой Тру Энтерпрайз
еще только смотрит в эту сторону. Поэтому у меня есть ощущение, что
вопросы инжиниринга проектов пока еще не время поднимать на уровне
обсуждения и реализации - нет достаточной питательной среды в
Erlang-коммуне, нет устоявшихся публичных проектов, которым нужно не
только удовлетворение зависимостей на этапе сборки (самая примитивная
задача, которая влегкую решается всеми пакетными менеджерами, которые
существуют), а интеграция с обновлением систем целиком.

Подождем - в rebar еще много чего надо перетащить из пакетных
менеджеров, прежде, чем возникнет запрос на их оптимизацию под задачи
для Erlang, а не наоборот. Мой прогноз - движуха начнется спустя
год-полтора.

Max Lapshin

unread,
May 29, 2012, 6:09:20 AM5/29/12
to erlang-...@googlegroups.com
Я немного расскажу о том, как в руби бандлер изобрели.

Когда на один сервер деплоится несколько приложений, библиотеки
начинают пересекаться.
Рельсовые приложения развиваются очень быстро и годовалой давности
либы уже неактуальны. Поэтому ставить их общесистемно нельзя.

Для этого придумали клевую тему с установкой всех либ локально к
приложению. И это правильно.

Max Lapshin

unread,
May 29, 2012, 6:12:59 AM5/29/12
to erlang-...@googlegroups.com
> Например,
> я всегда говорю, что RHEL боксы перезагружаются реже, чем время жизни
> типичного стартапа - откуда у стратаперов жизненный опыт-то?

Это говорит только о том, что никто не думает о том, что будет, когда
такой бокс выйдет из строя.
Скорее всего многомилионные убытки бизнесу.
Большой аптайм — не повод для хвастоства сегодня.


> А большой Тру Энтерпрайз еще только смотрит в эту сторону.

Петя. Можешь кому угодно рассказывать про Тру Энтерпрайз, я этого
немного пожевал.
Он забил дешевыми низкоквалифицированными трусливыми людьми, которые
решают инженерные проблемы
через закупку брендового железа и перекладывание проблем с себя на других.

Энтерпрайз — не пример для подражания.

Led

unread,
May 29, 2012, 6:31:48 AM5/29/12
to erlang-...@googlegroups.com
On Tuesday 29 May 2012 12:51:57 Maxim Treskin wrote:

> > Ситуация с Erlang в дистрах далека от идеальной, и это надо исправлять
> > срочно (иначе так и будет таскать все с собой) - это надо сразу
> > сказать, а не рассказывать басни про "проще, удобнее и правильнее" с
> > пенька победно озираясь на окружившую тебя наивную молодежь.
>
> Как это предлагаешь решать? Решение должно быть простым (иначе все на него
> забьют) и рабочим (иначе не будет работать).

rebar rpm/deb - для генерации спека.

--
Led

Maxim Treskin

unread,
May 29, 2012, 6:38:31 AM5/29/12
to erlang-...@googlegroups.com
Помимо генерации спека надо ещё с этой кучей пакетов что-то делать.

2012/5/29 Led <led...@gmail.com>
--
Страница рассылки: http://groups.google.com/group/erlang-russian
Новости: http://erlanger.ru
Написать письмо: erlang-...@googlegroups.com
Отписаться: erlang-russia...@googlegroups.com



--
Maxim Treskin

Led

unread,
May 29, 2012, 6:49:59 AM5/29/12
to erlang-...@googlegroups.com
On Tuesday 29 May 2012 13:38:31 Maxim Treskin wrote:
> Помимо генерации спека надо ещё с этой кучей пакетов что-то делать.

На OBS достаточно просто это делать: 3-5 человек, при наличии "rebar rpm" и договорённой общей полиси, могут
поддерживать актальный erlang-репозитарий из нескольких сотен пакетов.

--
Led

Vladimir Gordeev

unread,
May 29, 2012, 7:22:49 AM5/29/12
to erlang-...@googlegroups.com
> Рельсовые приложения развиваются очень быстро и годовалой давности
> либы уже неактуальны. Поэтому ставить их общесистемно нельзя.

> Для этого придумали клевую тему с установкой всех либ локально к
> приложению. И это правильно.

Ну несовсем. Bundler подтягивает конкретные версии библиотек для конкретного приложения,
а сами зависимости подтягиваются и ставятся глобально для всех.

Bundler лишь выбирает версии библиотек для локального приложения, среди
глобального набора библиотек. Как-то так.

Т.е. это не "всё ношу с собой".


2012/5/29 Max Lapshin <max.l...@gmail.com>

Sergey Yelin

unread,
May 29, 2012, 8:46:24 AM5/29/12
to erlang-...@googlegroups.com
Да-да, весьма интересно узнать о способах решения. :)

Sergey Yelin

unread,
May 29, 2012, 9:01:46 AM5/29/12
to erlang-...@googlegroups.com
То есть получилось всё то же самое, только со ruby спецификой, так?

Vladimir Gordeev

unread,
May 29, 2012, 9:03:19 AM5/29/12
to erlang-...@googlegroups.com


2012/5/29 Sergey Yelin <eli...@gmail.com>

То есть получилось всё то же самое, только со ruby спецификой, так?


Нет. 

Sergey Yelin

unread,
May 29, 2012, 9:06:19 AM5/29/12
to erlang-...@googlegroups.com
У винузятников получилось уйти в сторону кеширования необходимых dll для каждого
отдельного приложения в специальном кеше, вот только почистить кеш была проблема
(по крайней мере в Windows 7 до всяких SP).

On May 29, 2012, at 1:39 PM, Peter Lemenkov wrote:

> 29 мая 2012 г., 13:27 пользователь Maxim Treskin <zert...@gmail.com> написал:
>
>> Намного проще, удобнее и правильнее (правильнее по существу, а не в
>> идеализированных мечтах) делать один статический тарболл...
>
> Максим, то, что ты написал, это вольный пересказ старой песни про
> статическую линковку сишных библиотек, или то, что в виндозе
> называется dll-hell, и от чего у вендузятников никак не получается
> уйти по слухам (когда каждый setup.exe включает в себя разные версии
> msvcrt.dll, mfs42.dll и т.п.)
>
>
> --
> With best regards, Peter Lemenkov.
>

JLarky

unread,
May 29, 2012, 12:20:36 PM5/29/12
to erlang-...@googlegroups.com
чё-то я не понял. Чему эрлангу и го надо научиться? чему сейчас
научился руби? пакетному менеджеру специфичному для языка? Ну так в
go1 он есть. А для erlang есть например аналог RVM:
https://github.com/spawngrid/kerl

2012/5/29 Peter Lemenkov <leme...@gmail.com>:

Un Lexx

unread,
May 30, 2012, 12:15:22 AM5/30/12
to erlang-...@googlegroups.com
я так понимаю холивар на тему устоявшихся методов установки  серверного ПО (репозитарии)
против методов rebar-ного типа установок

согласен что в репах есть проблема как с созданием своего репозитария(время, чтение туториелов) так и с   поддержкой его в актуальном состоянии;
с ребаром ясно что не unix way  переписывать то что уже реализовано в системе.

было бы интересно узнать ссылки на истории успехов где не изобретаются заново

"фишки пакетных  менеджеров, вместо интеграции с ними."


29 мая 2012 г., 22:20 пользователь JLarky <jla...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages