ABF - новый бэкенд, новый дизайн и новые возможности

Материал из Rosalab Wiki
Перейти к: навигация, поиск


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

В частности, ABF теперь использует популярные фреймворки Bootstrap 3 и AngularJS. Переход на них был продиктован отнюдь не данью моде, а необходимостью избавиться от самописных наработок, перенеся тем самым ряд задач с разработчиков ABF на разработчиков фреймворков и позволив первым больше внимания уделять функционалу, связанному с непосредственными обязанностями ABF - разработкой и сборкой проектов под Linux. Подобная необходимость замены собственных велосипедов на стандартные решения рано или поздно встает перед многими проектами, и мы решили, что лучше с этим процессом не затягивать - пока все еще помнят, как все самописные вещи устроены и работают.

Процесс переезда на новые технологии занял более полугода, и в начале февраля мы сочли качество нового ABF достаточным для "выхода в свет" и представления широкой публике.

.png

Визуальные изменения в интерфейсе серьезны, а глаз разработчиков за полгода общения с ним успел замылиться, поэтому новые идеи и комментарии от пользователей относительно внешнего вида приветсвуются. Если у вас есть более-менее глобальные предложения, то лучше оформлять их в виде идей на страничке ABF Ideas, а сообщения о мелких недочетах лучше отправлять с помощью соответсвующей формы на сайте.

Помните, что визуальные изменения дизайна - это только вершина айсберга, внутренности ABF также подверглись серьезной переработке. Несмотря на обилие внутренних тестов (мы придерживаемся принципов Behavior Driven Development и пишем тесты на RSpec), мы допускаем возможность наличия ряда ошибок и регрессий. К слову, за первый день эксплуатации нового ABF мы по запросам пользователей уже исправили проблемы с подключением контейнеров, пересозданием сборок, отправкой pull request'ов через веб-интерфейс, автоматическим выбором целевых репозиториев в некоторых специфических случаях и несколько других проблем, не смертельных с точки зрения функционала разработки и сборки, но неудобных и неприятных с точки зрения пользователя Web-интерфйеса.


Есть и несколько новых заметных изменений в новом интерфейсе ABF по сравнению с предыдущим:

  • для времени и даты теперь предпочтительным является отображение абсолютного значения - 2014-06-10 14:02. Относительное значение отображается рядом, если позволяет место - 2014-06-10 14:02 (8 months ago);
  • на странице Advisories появилась колонка с именем проекта - очень полезно, т.к. по тексту некоторых advisories сложно понять, к какому пакету/проекту они относятся;
  • если проект является форком другого, то это будет отображено в меню на странице проекта:
.png
  • если в строке браузера ввести ссылку на несуществующий проект, то отобразится страница 404, но содержимое строки адреса очищено не будет (как это было в старом ABF, когда в строке адреса вы получали http://abf.io/404.html). Так что если вы ошиблись парой символов, то исправить это можно гораздо проще;
  • при создании новой сборки содержимое колонки "Build for platform" динамически изменяется в зависимости от того, что выбрано в поле "Save to repository". Например, если мы собираем пакет для репозитория rosa2014.1/main, то ABF разрешит подключить только репозитории платформы rosa2014.1:
.png

Наконец, главное нововведение в новом ABF - это проекты-алиасы ("aliases"), имеющие общий Git-репозиторий. То есть теперь можно иметь два проекта vanya/old_project и petya/new_project с различными описаниями, владельцами, привязками к платформам/репозиториям и так далее, но с общим Git-репозиорием. Так что все изменения, которые происходят в коде проекта vanya/old_project автоматически попадают в код petya/new_project.

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

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

Надеюсь, эта новость вас…

Ввела в экстаз ^_^48
25%
Порадовала :)127
66%
Оставила равнодушным -_-13
7%
Огорчила :(5
3%

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.