LINUX.ORG.RU

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

 buildj, ,


0

0

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

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

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

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

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

★★★★★

Проверено: boombick ()
Последнее исправление: cetjs2 (всего исправлений: 2)

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

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

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

rudchenkos
()
Ответ на: комментарий от UlrichDrepper

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

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

sv75 ★★★★★
()
Ответ на: комментарий от iZEN

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

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

sv75 ★★★★★
()

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

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

AVL2 ★★★★★
()

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

mine
()
Ответ на: комментарий от AVL2

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

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

mine
()

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

CryAngel
()
Ответ на: комментарий от AVL2

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

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

rudchenkos
()

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

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

anonymous
()

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

kopete_jingle
()
Ответ на: комментарий от anonymous

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

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

kopete_jingle
()
Ответ на: комментарий от AX

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

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

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

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

rudchenkos
()
Ответ на: комментарий от rudchenkos

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

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

anonymous
()
Ответ на: комментарий от rudchenkos

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

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

anonymous
()
Ответ на: комментарий от anonymous
{
  "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
()
Ответ на: комментарий от anonymous

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

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

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

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

rudchenkos
()
Ответ на: комментарий от anonymous

лучше свистелки из КДЕ выбрасываают

Гномеры-то?

anonymous
()
Ответ на: комментарий от iZEN

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

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

rudchenkos
()
Ответ на: комментарий от annulen

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

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

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

rudchenkos
()
Ответ на: комментарий от anonymous

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

KblCb ★★★★★
()
Ответ на: комментарий от rudchenkos

rudchenkos

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

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

KblCb ★★★★★
()
Ответ на: комментарий от annulen

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

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

anonymous
()
Ответ на: комментарий от anonymous

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

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

yyk ★★★★★
()
Ответ на: комментарий от rudchenkos

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

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

qewerty
()
Ответ на: комментарий от anonymous

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

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

rudchenkos
()
Ответ на: комментарий от alex-w

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

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

Toll ★★
()
Ответ на: комментарий от qewerty

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

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

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

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

rudchenkos
()
Ответ на: комментарий от ArtemZ

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

Karapuz ★★★★★
()
Ответ на: комментарий от rudchenkos

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

SCons?

yurkis
()

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

Deleted
()
Ответ на: комментарий от rudchenkos

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

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

anonymous
()

>на основе json

GNOME

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

KDE41user
()
Ответ на: комментарий от KblCb

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

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

Divius ★★
()
Ответ на: комментарий от iZEN

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

dotbg ★★★★
()
Ответ на: комментарий от Deleted

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

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

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

AVL2 ★★★★★
()
Ответ на: комментарий от iZEN

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

shahid ★★★★★
()

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

Manhunt ★★★★★
()
Ответ на: комментарий от AVL2

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

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

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

anonymous
()
Ответ на: комментарий от rudchenkos

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

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

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.