LINUX.ORG.RU — Русская информация об ОС Linux

[#]  
lester_dev

Новый формат описания проектов - BuilDj

Alberto Ruiz представил новый формат описания проектов BuilDj на основе JSON. Основной упор идет на поддержку стека Freedesktop/GNOME, но формат может быть расширен с помощью плагинов и на другие языки/системы.

Новый формат предоставляет такие возможности:

  • Интуитивно понятное описание
  • Использование best practices, в частности отход от захардкоженых путей и библиотек
  • Конфигурация, проверка зависимостей, сборка - все определено в одном файле
  • Формат изначально задумывался как переносимый и кроссплатформенный
  • Разделение описания и функциональности - в то время, как описание остается тем же, в качестве бекенда может использоваться любая система сборки. Для примера реализации, уже существует скрипт для Waf, поддерживающий этот формат.

Описание на live.gnome.org

>>> Подробности

Метки: buildj, programming

lester_dev ***** (10.03.2010 11:48:28)
Проверено: boombick (10.03.2010 12:17:29)
Juick

[#]  
ArtemZ

сначала испугался, что оно на джава

ArtemZ * (10.03.2010 12:23:48)
[#]  
iZEN

Взяли бы Maven и не мучились так.

iZEN ***** (10.03.2010 12:26:04)
[#]  

Надоели клепать свои местечковые, ни с чем несовместимые форматы.

UlrichDrepper (10.03.2010 12:29:15)
[#]  
rudchenkos

Вот это круто!

Я давно пытаюсь создать что-то подобное, но более похожее на CMake. Хотя в последнее время на меня сильно повлиял maven.

Вобщем, браво!

rudchenkos * (10.03.2010 12:32:25)
[#] Ответ на: комментарий от UlrichDrepper 10.03.2010 12:29:15  

> Надоели клепать свои местечковые, ни с чем несовместимые форматы.

А какие здесь есть *стандартные* форматы?

sv75 ***** (10.03.2010 12:34:35)
[#] Ответ на: комментарий от iZEN 10.03.2010 12:26:04  

> Взяли бы Maven и не мучились так.

Я не спец, но говорят что ментейнеры хватаются за пистолет от Maven.

sv75 ***** (10.03.2010 12:35:21)
[#]  

а чем xml не угодил? на яваскрипте собираются ваять сборку?

а чем для сборки ант не подходит?

AVL2 ***** (10.03.2010 12:40:26)
[#]  
mine

CMake в помощь, не?
Нафига еще один велосипед?

mine * (10.03.2010 12:40:47)
[#] Ответ на: комментарий от AVL2 10.03.2010 12:40:26  
AX

>а чем xml не угодил?

Читается в два раза труднее, не? :)

AX **** (10.03.2010 12:41:43)
[#] Ответ на: комментарий от AVL2 10.03.2010 12:40:26  
mine

> а чем для сборки ант не подходит?

Ant на Java, ежели ты не заметил.

mine * (10.03.2010 12:42:02)
[#]  
CryAngel

Будет ли профит, если прикрутить его к LFS? Мне почему-то кажется, что вопрос не столько в том, насколько хорош новый формат, а в том, насколько хорошо его будут поддерживать разработчики. А то сейчас одни используют autotools, другие - CMake, есть оригиналы, на примере liblastfm, которые написали свой собственный конфигуратор на ruby.

CryAngel (10.03.2010 12:42:30)
[#] Ответ на: комментарий от AVL2 10.03.2010 12:40:26  
rudchenkos

>а чем для сборки ант не подходит?

Ant сравним с Make - это тупая выполнялка правил сборки, для больших проектов нужны абстракции более высокого уровня иначе поддержание системы сборки превращается в ад

rudchenkos * (10.03.2010 12:43:14)
[#]  

JSON для описания билдов??? Какому извращенцу со сьеденным вебом мозгом могло это прити в голову???!!!

Я НЕГОДУЮ, дорогая редакция.

anonymous (10.03.2010 12:44:57)
[#]  

Если они сделают Maven с человеческим лицом, человечество им в ножки поклонится. Но это ж гномеры, ёпт...

kopete_jingle (10.03.2010 12:45:44)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:44:57  

> JSON для описания билдов??? Какому извращенцу со сьеденным вебом мозгом могло это прити в голову???!!!

Я тоже считаю, что YAML лучше.

kopete_jingle (10.03.2010 12:46:21)
[#] Ответ на: комментарий от AX 10.03.2010 12:41:43  

>Читается в два раза труднее, не? :)

Нет как раз ГСОН читается труднее. Иксемель хотя бы частично самодокументируем, а это мусор.

anonymous (10.03.2010 12:46:44)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:44:57  
iZEN

> Какому извращенцу со сьеденным вебом мозгом могло это прити в голову???!!!

Бывшему PHPисту. Очевидно.

iZEN ***** (10.03.2010 12:47:00)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:44:57  
rudchenkos

> JSON для описания билдов??? Какому извращенцу со сьеденным вебом мозгом могло это прити в голову???!!!

> Я НЕГОДУЮ, дорогая редакция.

Why not? Имхо вполне разумный компромисс между читабельностью и лёгкостью парсинга машиной. Согласитесь, править руками или читать большой XML довольно утомительно.

rudchenkos * (10.03.2010 12:47:11)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 12:43:14  

>для больших проектов нужны абстракции более высокого уровня иначе поддержание системы сборки превращается в ад

Вот поэтому ант и сосет. Его заруливает мавен. А ант оставь для себя, друк.

anonymous (10.03.2010 12:48:17)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 12:47:11  

>Имхо вполне разумный компромисс между читабельностью и лёгкостью парсинга машиной.

Парсинг конфига для сборки не настолько трудоемкая задача чтобы идти на такой бред. Пускай лучше свистелки из КДЕ выбрасываают а не экономят на спичках там где это ненадо.

anonymous (10.03.2010 12:50:15)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:46:44  
{
  "project":
  {
    "name":    "CC Test",
    "version": "0.0.1",
    "url":     "http://www.gnome.org"
  },
  "requires":
  {
    "gtk+-2.0":
    {
      "type":      "package",
      "version":   "2.14",
      "mandatory": "True"
    }
  },
  "targets":
  {
    "my_gtk_program":
    {
      "type":     "program",
      "tool":     "cc",
      "input":    ["gtk_program.c"],
      "packages": ["gtk+-2.0"]
    }
  }
}

И что тут такого нечитабельного?

anonymous (10.03.2010 12:50:46)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:48:17  
rudchenkos

>>для больших проектов нужны абстракции более высокого уровня иначе поддержание системы сборки превращается в ад

> Вот поэтому ант и сосет. Его заруливает мавен. А ант оставь для себя, друк.

Дык я ж о чём, камрад :)

Просто мавен довольно сильно ориентирован на Java-проекты, и не смотря на то что для мавена есть плагины позволяющие выполнять сборку сишных проетов, я считаю что для нативных проектов надо создать что-то похожее (мавен таки рулит, да) но с учётом специфики.

rudchenkos * (10.03.2010 12:51:16)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:50:15  

> лучше свистелки из КДЕ выбрасываают
Гномеры-то?

anonymous (10.03.2010 12:52:13)
[#] Ответ на: комментарий от iZEN 10.03.2010 12:47:00  

> Бывшему PHPисту.

Это ты от балды сказал?

anonymous (10.03.2010 12:55:50)
[#]  
annulen

cmake чем не угодил?

annulen ** (10.03.2010 12:57:46)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:50:15  
rudchenkos

>>Имхо вполне разумный компромисс между читабельностью и лёгкостью парсинга машиной.

>Парсинг конфига для сборки не настолько трудоемкая задача чтобы идти на такой бред. Пускай лучше свистелки из КДЕ выбрасываают а не экономят на спичках там где это ненадо.

А какие ещё варианты? CMake выглядит для человеческого глаза неплохо, но очень плохо поддаётся парсингу (я про параметры команд) из-за того что там нет чёткой логики разделения кейвордов и структурированных параметров. В итоге каждая команда парсит свои параметры как хочет, код раздут и тяжело расширяем.

rudchenkos * (10.03.2010 12:58:06)
[#] Ответ на: комментарий от annulen 10.03.2010 12:57:46  
rudchenkos

> cmake чем не угодил?

Имхо, CMake пока лучшее из существующих решений для кроссплатформенной сборки нативных проектов, но он не идеален.

Его бы переписать на питоне, чтобы можно было легко писать плагины и подключать их к сборке... ну и синтаксис немного подкорректировать. Сейчас меня тут заклюют насчёт питона, но товарищи вы загляните в тот C++ :-O

rudchenkos * (10.03.2010 13:02:30)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:50:46  

Хм... А плагины и проверки писать на жабоскрипте? Тоже мысль, но что-то мне подсказывает что на чуть более сложных примерах среднестатистический питонист будет взрываться от обилия скобок.

KblCb **** (10.03.2010 13:03:02)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 12:58:06  
>>-----Цитата---->>

rudchenkos

CMake выглядит для человеческого глаза неплохо, но очень плохо поддаётся парсингу (я про параметры команд) из-за того что там нет чёткой логики разделения кейвордов и структурированных параметров. В итоге каждая команда парсит свои параметры как хочет, код раздут и тяжело расширяем.

<<-----Цитата----<<

Эээ... Язык cmake поддаётся парсингу не хуже чем скажем C или жабоскрипт. Его единственная проблема это как раз омерзительный (с эстетической и только с эстетической точки зрения) синтаксис.

KblCb **** (10.03.2010 13:09:44)
[#] Ответ на: комментарий от KblCb 10.03.2010 13:03:02  

Кому сказано - Waf используются, он на Питоне, плагинами хоть обмажься.

anonymous (10.03.2010 13:14:47)
[#] Ответ на: комментарий от annulen 10.03.2010 12:57:46  

> cmake чем не угодил?

Потому что json - это модно, стильно, молодежно!

anonymous (10.03.2010 13:17:54)
[#] Ответ на: комментарий от anonymous 10.03.2010 12:50:46  

>И что тут такого нечитабельного?

нах столько кавычек?

yyk **** (10.03.2010 13:19:59)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 13:02:30  

> Его бы переписать на питоне, чтобы можно было легко писать плагины и подключать их к сборке.

И получится SCons?

qewerty (10.03.2010 13:20:58)
[#]  

Посмотрел на примеры - XML лучше

alex-w ** (10.03.2010 13:21:06)
[#] Ответ на: комментарий от anonymous 10.03.2010 13:14:47  
rudchenkos

> Кому сказано - Waf используются, он на Питоне, плагинами хоть обмажься.

/me впервые услышал о Waf и очень заинтересовался

rudchenkos * (10.03.2010 13:25:05)
[#] Ответ на: комментарий от alex-w 10.03.2010 13:21:06  

>Посмотрел на примеры - XML лучше

Почему? Действительно интересно. Вроде как в примерах все красиво и очень читабельно. XML мне читать гараздо менее приятно.

Toll ** (10.03.2010 13:28:38)
[#] Ответ на: комментарий от qewerty 10.03.2010 13:20:58  
rudchenkos

>> Его бы переписать на питоне, чтобы можно было легко писать плагины и подключать их к сборке.

>И получится SCons?

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

А ещё, емнип, SCons сам собирает, а не генерирует сборочные файлы. :(

rudchenkos * (10.03.2010 13:29:31)
[#] Ответ на: комментарий от ArtemZ 10.03.2010 12:23:48  

Надо было и называть BlueG, тогда бы никто не пугался :)

Karapuz **** (10.03.2010 13:34:30)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 13:02:30  
yurkis

>Его бы переписать на питоне, чтобы можно было легко писать плагины и подключать их к сборке... ну и синтаксис немного подкорректировать.

SCons?

yurkis * (10.03.2010 13:40:55)
[#]  
halturin

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

halturin ***** (10.03.2010 13:42:54)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 13:25:05  

> /me впервые услышал о Waf и очень заинтересовался

/me в Waf давно разочаровался.

anonymous (10.03.2010 13:46:11)
[#]  
KDE41user

>на основе json

>GNOME

Гномеры не допустят, чтобы где-либо не использовался xml!

KDE41user * (10.03.2010 13:54:51)
[#] Ответ на: комментарий от KblCb 10.03.2010 13:09:44  

Ага, а C, конечно, достаточно легко поддаётся парсингу без задействования всяких flex-ов, да-да. Конечно, JSON парсить на порядок легче, на питоне это делает крошечный модуль в стандартной библиотеке, например.

CMake хуже тем же, чем он лучше. То есть своей сложностью. Часто эта сложность просто не адекватна задаче. Для кед хорошо, для сложных кастомных проектов тоже, для хеллоуворлда на Gtk - нет. Сабж одобряю, имхо, будет очень полезно для широкого ряда проектов.

Divius ** (10.03.2010 13:55:30)
[#] Ответ на: комментарий от iZEN 10.03.2010 12:26:04  
dotbg

видимо, свой велосипед с квадратными колёсами удобнее. Правда, может, они java использовать не хотят.

dotbg *** (10.03.2010 14:01:50)
[#] Ответ на: комментарий от halturin 10.03.2010 13:42:54  

>XML. хоть и жалуются на его нечитабельность, но он гораздо мощней чем json,

ни разу не видел, чтобы в xml вкладывали функции. И где в зумеле списки, словари и вообще типы данных помимо строк?

основная проблема как раз в том что джисон слишком мощный, что приводит к запутанному неочевидному коду.

AVL2 ***** (10.03.2010 14:18:05)
[#] Ответ на: комментарий от iZEN 10.03.2010 12:26:04  
shahid

Re: Новый формат описания проектов - BuildJ

Apache build manager for Java projects без джавы уже научился работать?

shahid ***** (10.03.2010 14:18:25)
[#]  
Manhunt

Еще один make- велосипед. Буэээ. Закопайте его скорее.

Manhunt *** (10.03.2010 14:28:08)
[#] Ответ на: комментарий от AVL2 10.03.2010 14:18:05  

> основная проблема как раз в том что джисон слишком мощный, что приводит к запутанному неочевидному коду.

Зумель мозг поел?

Вся спека джейсона укладыватся в 16 килобайт: http://tools.ietf.org/rfc/rfc4627.txt. Примерно столько же занимает полнофункциональный парсер, на любом языке.

anonymous (10.03.2010 14:28:29)
[#]  

GNOME продолжает генерировать ненужного говно.

tailgunner ***** (10.03.2010 14:30:12)
[#] Ответ на: комментарий от rudchenkos 10.03.2010 13:02:30  
annulen

>чтобы можно было легко писать плагины и подключать их к сборке

к cmake'у можно неволзбранно писать свои модули. Язычок конечно не слишком доставляет (что-то бейсиковое прослеживается), но в целом терпимо

annulen ** (10.03.2010 14:35:23)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru