пʼятницю, 31 січня 2014 р.

Инфраструктура разработки PC-BSD

Доброго времени суток!
У меня таки появилось некоторое время на блог. Пост писался несколько дней урывками. Заранее извиняюсь за возможную несвязность и ошибки.  Но, надеюсь, будет интересно.

Практически ни один более или менее крупный IT проект не обходится без инфраструктуры разработки, в которую обычно входит система контроля версий, багтрекер и некоторые другие вещи. Сегодня я как раз хочу рассказать о такой инфраструктуре проекта PC-BSD.
Если кто- то хочет внести свой вклад в разработку, возможно, он найдет здесь полезную для себя информацию.

GitHub - система контроля версий

В прошлом году было принято решение о переезде PC-BSD с внутреннего subversion сервера на git. В качестве площадки был выбран github. На данный момент используется несколько репозитариев. Их список можно посмотреть здесь: https://github.com/pcbsd

Основной репозитарий

Основной репозитарий находится здесь: https://github.com/pcbsd/pcbsd Тут ведется основная разработка утилит и скриптов PC-BSD а также содержатся почти все файлы настроек.

PBI

Каждый пакет PBI собирается на основании файла pbi.conf. Конфигурационные файлы для сборки всех присутствующих  в AppCafe PBI хранятся здесь: https://github.com/pcbsd/pbi

Дерево портов

Как многие уже знают в релиз 10.0 были добавлены окружения рабочего стола Gnome 3, Mafte и Cinnamon. В основном рапозитарии традиционно присутствовал каталог ports-overlay. В этом каталоге размещался оверлей, содержащий порты и патчи отсутствующие в официальном дереве портов FreeBSD. Однако, после того как к делу подключился Joe Maloney с портами для Mate Cinnamon и Gnome 3 количество портов в оверлее ощутимо возросло. Плюс, ко всему, учитывая довольно активные коммиты от Joe, стало проще просто выделить порты в отдельный репозитарий. Этот репозитарий периодически синхронизируется с деревом портов FreeBSD, но, также, содержит довольно много портов и патчей пока что отсутствующих в последнем. Репозитарий находится тут: https://github.com/pcbsd/freebsd-ports
Содержимое именно этого репозитария появится у Вас после нажатия кнопки "Fetch ports tree" в System manager

Система сборки

До осени прошлого года система сборки PC-BSD не была опубликована. Основной репозитарий проекта всегда содержал исчерпывающую информацию о том каким образом собирается PC-BSD (наборы пакетов, оверлеи, патчи, списки ссылок файловой системы). В принципе имея все это вполне можно было бы собрать PC-BSD самостоятельно (при должном упорстве даже обеспечить совпадение бинарников). Но, тем не менее, сами оригинальные сборочные скрипты до недавнего времени были недоступны широким массам. 
Итак, если Вы хотите самолично собирать PC-BSD Вам сюда: https://github.com/pcbsd/pcbsd-build


Исходные тексты базовой системы

Начиная с версии 10.0 PC-BSD кроме собственного репозитария дерева портов обзавелась собственным git репозитарием исходных текстов базовой системы. Этот репозитарий синхронизируется с FreeBSD subversion, но также содержит пока что не включенные в него патчи. До создания отдельного репозитария на исходный код FreeBSD накладывались src-patches. 
Исходные коды базовой системы PC-BSD находятся тут: https://github.com/pcbsd/freebsd
Содержимое именно этого репозитария появится у Вас после нажатия кнопки "Fetch system sources" в System manager.

Проекты PC-BSD

Репозитарий содержит исходный код некоторых новых утилит, не достигших должной степени готовности для включения их в основной репозитарий. В основном здесь хозяйничает Кен. Коммиты бывают время от времени. Репозитарий интересен прежде всего тем что можно подсмотреть что нового Кен нам готовит. Тут в свое время начиналась разработка текстового инсталятора, EasyPBI. Сейчас тут создается утилита EasyPort. URL репозитария:  https://github.com/pcbsd/pcbsd-projects

Небольшое лирическое отступление...

Могу догадаться о реакции части общественности на информацию о том что в PC-BSD появились свои репозитарии для base system sources и ports tree. Могу предположить мысли PC-BSD уже не FreeBSD!!! ( На уровне Ubuntu != Linux). Я попытался объяснить это выше, но, думаю, все равно стоит написать предметно.
За все время пока я пристально смотрю на PC-BSD (как минимум с 7.0) на чистые исходники FreeBSD при сборке накладывались патчи. Это были патчи для поддержки оборудования, фиксы досадных багов. По мере того как эти патчи коммитились в основное дерево исходных кодов они удалялись из списка патчей. То же с портами. Именно благодаря тестированию внутри PC-BSD Gnome 3, который появится в портах будет более стабилен. Благодаря тестированию патчей на ядро / freebsd install их версия во FreeBSD в конечном итоге будет работать лучше.
PC-BSD в большей степени десктопная ОС. Темпы ее разработки, скажем так, более высокие. Требования по стабильности, местами, более мягкие. Практически все патчи закоммиченые в git репозитарии PC-BSD так или иначе попадают в FreeBSD subversion. Создание отдельных репозитариев, как я понимаю, просто сильно упрощает работу. Можете считать сложившуюся ситуацию отдаленно похожей на пару Fedora/RHEL.

Полезные ссылки

Это быстрые ссылки, которые я использую почти каждый день



Trac - багтрекер


Багтрекер PC-BSD расположен по адресу http://trac.pcbsd.org/
 Где- то в конце 2013го года в багтрекере навели таки "красоту и икебану". На данный момент именно это место наиболее предпочтительно для сообщения об ошибках. Естественно, форумы и списки рассылки никто не отменял. Но разработчикам намного удобнее пользоваться именно баг трекером. Сообщение в списке рассылки может потеряться, забыться. Пост на форуме тем более. 
Важное примечание: Пожалуйста, не поленитесь зарегистрироваться и создать запись в баг трекере. Так ваш отчет о проблеме не потеряется. При создании тикета пожалуйста не забудте указать версию системы и проблемный компонент.
Второе (очень!) важное примечание: Если у Вас возникла проблема- пишите баг репорт! У всех нас разные компьютеры. Далеко не факт что проблема существует на компьютере разработчика. У всех нас разные потребности и модели использования. Не факт что разработчик использует систему точно также как и Вы, или может вообще чем- то не пользоваться (в т.ч. и некоторыми функциями своих же приложений). Порой из- за этого в своих же утилитах находятся просто феерические баги! Основная идея- пока о проблеме (даже идиотской) никто не сообщит- о ней, часто, никто и не знает. Нет репорта- нет проблемы. Это open source. Для того чтобы все работало как Вам нужно, нужно сначала хотя бы сказать что Вы хотите.

Полезные ссылки

Pootle - система переводов

Любой желающий может принять участие в переводе утилит PC-BSD на свой родной язык.Для этого есть вполне удобная система переводов pootle, расположенная по адресу http://pootle.pcbsd.org/ После несложной регистрации Вы можете заполнить пробелы в переводе или исправить в нем неточности.
Перевод охватывает все графические утилиты PC-BSD (Инсталятор, AppCafe, панель управления и др), а также элементы панели управления и системного меню.
Строки для перевода периодически обновляются из основного git репозитария. Результаты перевода периодически туда же коммитятся. При этом сервер понимает Qt translations и поля *.desktop файлов. Все это делается на сервере какими- то самописными скриптами которые, хоть и достаточно редко, но подглюкивают. Так что может случится что переведенная, казалось бы, утилита после автоматического коммита в PC-BSD git или при неудачном расположении луны опять становится 'untranslated' :(
По состоянию на сейчас (30 января) украинский перевод, которым занимаюсь я, более или менее готов (осталось перевести только половину строк из Life Preserver и ZFS manager полностью). Беспокойство вызывает перевод русский...  Не смотря на то что последнее изменение было не так давно (12 января) состояние русского перевода далеко до идеального. Переводом занимается человек с ником s0t. Скорее всего у него сейчас просто не хватает времени. Боюсь, что если никто ситуацию не поправит то релиз 10.0 в русской локализации будет выглядеть плохо. Если Вы хотите исправить ситуацию- милости просим. Но очень желательно выйти на контакт с переводчиком s0t (можно попробовать pcbsd-translations@) или хотя бы внимательно посмотреть как он переводил. Сейчас объясню почему. Дело в том что в каждом переводе существуют разного рода соглашения (Например Cancel - "Отмена" или "Отменить", специфический перевод терминов, любимые синонимы и т.д. Так, например в украинском переводе я перевожу "Progress" - "Поступ" и Currently - "Наразі". Так уже было до меня. Да и достаточно близко к переводу KDE. Но этот "Поступ" мне до сих пор иногда глаз режет.


Wiki

Официальная Wiki находится тут: http://wiki.pcbsd.org/index.php/Main_Page
Dru поддерживает Wiki в неплохом состоянии. Информация там попадается вполне себе нужная, но основной интерес представляет руководство пользователя - PC-BSD Handbook - http://wiki.pcbsd.org/index.php/PC-BSD%C2%AE_Users_Handbook/10.0
С недавнего времени официальный хендбук делается именно на основе Wiki. Более того, используя все тот же вики движок хендбук можно переводить! У меня для украинского языка духу пока не хватает взяться. Русским переводчикам и так много работы. Но мне бы очень хотелось чтобы нашелся человек, осиливший перевод хендбука. Поверте, он очень неплох.
В любом случае как минимум просмотрите хендбук. Там действительно много всего интересного и нужного.

Списки рассылки

Основная тусовка проходит именно в списках рассылки. Полный перечень списков рассылки PC-BSD можно посмотреть тут: http://lists.pcbsd.org/mailman/listinfo
Среди них достаточно много полумертвых. Основные списки рассылки:

testing@

Тут собирается основная тусовка. До недавнего времени (до доведения до нормального состояния багтрекера) было самым предпочтительным местом для репорта багов.
Я придерживаюсь часто такого алгоритма действий:

  • Если баг тривиальный - просто пишу в баг трекер
  • Если я в чем- то не уверен, нужно что- то спросить, обсудить и т.д. то все равно в баг трекер но еще и письмо в testing@ со ссылкой на trac

dev@

Тут обсуждаются вопросы связанные с разработкой. 

translations@

Тут изредка общаются переводчики.

Полезные списки рассылки (информационные)





Немає коментарів:

Дописати коментар