From Novosibirsk, Russia? Our tiny company is looking for current or future rock-star developers.

March 09, 2009

Sneak Peak: YourSway Builder

Наша компания отличается еще и тем, что пользуется самописной системой сборки. Когда-нибудь мы доведем её до продукта и будем предлагать другим, как CrashKit, но пока что YourSway Builder — это приватное удовольствие.

Зачем писать своё, когда в мире есть BuildBot’ы и CruiseControl’ы? Чтобы не париться с их поддержкой. Каждая существующая система предполагает, что вы держите настроенный клиент и сервер, и готовы с ними возиться каждый раз, когда вам нужно изменить способ сборки или начать собирать новый проект.

Мы, напротив, хотим, чтобы для поднятия билдов нового проекта было достаточно браузера.

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

На страничке в Backpack есть несколько скриншотов, а также описание нашего vision’а. Повторюсь, что в YourSway Builder’е пока есть только то, что было нам совершенно необходимо. Мы им пользуемся во всех проектах, но для публики он еще не готов.

А что вы думаете по поводу билд-систем? Чего вам в них не хватает? В каком виде YourSway Builder был бы вам интересен?

3 comments:

Anonymous said...

Да хз, меня как-то Ant и Maven вполне устраивают в плане сборки. Я правда не до конца понял, этот ваш билдер -- это замена чему? Всяким бамбукам и круиз-контролам? Но если так, то Ant и Maven -- это мимо. Меня в таком случае радует Atlassian Bamboo. Клиентов мы никаких не используем, собираем локально Maven'ом.

Unknown said...

В целом, Builder — действительно аналог бамбуков. Но он на себя берет чуть больше — скачивание пререквизитов и закачку результатов билда. Таким образом он частично пересекается с функциями Maven'а.

Кстати, забавно, что тебя устраивает Maven — по мне это самый большой геморрой изо всех придуманных человечеством. Ссылки по теме: The Joy and Sorrow that is Maven, Introducing buildr, or how we cured our Maven blues:

“It’s no secret I have a love/hate relationship with Maven 2.0. I hate it. And I love using it as an example of how not to build software. Maven 2.0 is proof that good intentions, hard work and an open source community can still lead to all kinds of wrong.”

Готов под этим подписаться.

Anonymous said...

Cкачивание пререквизитов -- с этим прекрасно справляется Maven. Но мне лично большое нравится, когда всё от начала до конца лежит в VCS. В т.ч. все deliverables, которые ты используешь. В этом случае проблем вообще нет. Всё, что тебе нужно -- это выкачать дерево исходников вместе со всем необходимым и просто набрать ant dist.

Да, Maven -- это не самая безглючная и прямолинейная вещь, но мне лично в ней не нравится только одно. Ребята мутят декларативный подход -- это хорошо, но бывают ситуации, когда необходимого плагина нет, и приходится выпендриваться с плагином ant-run, который позволяет добавить некий императив в сборочный скрипт. В остальном у меня претензий нет.

Кстати, bamboo умеет и выкладывать сборки в открытый доступ. Если интересно, то вот примерно как мы работаем:

http://localstorm.livejournal.com/117431.html

Что мне не очень нравится в Bamboo -- это то, что если мы его используем не совсем по прямому назначению, которые описаны выше, то некоторые вещи делать приходится через жопу. Например, у нас есть "билды", которые не требуют доступа к SVN :) Это просто скрипты, которые исполняются на сервере. В принципе, это удобно. Но вот Bamboo приходится вкармливать какой-нибудь обрубок SVN URL, чтобы он не ругался. :)

Кстати, maven умеет и upload делать в репу, насколько я знаю. Только я не пробовал этим пользоваться :)