Интеграция кода Vivaldi. Рассказывают наши разработчики.

Недавно норвежское издание Digi.no опубликовало рассказ о том, как разработчики браузера Vivaldi работают с кодом Chromium. В интервью трое ведущих специалистов компании впервые публично рассказали об этом важном компоненте процесса разработки браузера Vivaldi.

В интервью норвежскому изданию приняли участие трое сотрудников компании – Ингве Петтерсен, Ярле Антонсен и Андре Шульц. Они рассказали о том, как проводится работа по интеграции кода браузера Vivaldi и ядра Chromium, которое используется в браузере – о преимуществах и недостатках такого подхода, а также о том, какие проблемы при этом возникают и как с ними бороться.

Ниже – перевод на русский язык наиболее интересных вопросов и ответов.

(По часовой стрелке слева направо) Харальд Бромбах из Digi.no, Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Является ли проблемой большой объём и короткая периодичность обновления кода ядра Chromium?

Ингве Петтерсен (ведущий инженер): Новая версия Chromium выходит каждые шесть недель и мы должны интегрировать собственный код Vivaldi с кодом этого ядра. Я занимаюсь этой задачей, являясь ответственным за кодовую базу браузера. И – да, это довольно сложная и трудоёмкая работа, которая занимает несколько недель.

Есть ли какой-то прогресс в этой работе?

Ярле Антонсен (менеджер проектов): Раньше процесс интеграции занимал три-четыре недели, но с интеграцией двух последних версий Chromium (68 и 69) разработчики Vivaldi справились менее, чем за две недели. Основную проблему составляли регрессии – когда наш код переставал работать с кодом Chromium, и именно их исправление занимает основное время.

Как происходит работа с сообществом Chromium?

Андре Шульц (UI разработчик): К нашей радости – очень продуктивно. Я постоянно отправляю вопросы разработчикам различных модулей и получаю вполне подробные ответы, иногда даже с предложениями, как сделать работу модуля ещё лучше.

А вы делаете вклад в разработку Chromium?

Ингве Петтерсен: За последние шесть месяцев мы отправили с десяток патчей для кода Chromium. В основном это предложения по очистке кода, но также были и исправления ошибок. Прямо сейчас мы готовим ещё несколько патчей для отправки разработчикам Chromium.

Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Насколько сложен и продолжителен процесс интеграции кода?

Ингве Петтерсен: После выхода очередного обновления Chromium я создаю новую отдельную ветку и начинаю работать с ней. Я извлекаю код Chromium и синхронизирую все подмодули, которые мы используем, одновременно внося небольшие изменения. Данная часть процесса достаточно хорошо автоматизирована у нас.

Затем мы копируем все наши обновления поверх кодовой базы Chromium. Здесь много ручной работы, т.к. мы получаем довольно много регрессий и конфликтов слияния кода. Раньше это было очень проблематично, но со временем мы хорошо почистили код от элементов, вызывавших конфликты, и сегодня всё происходит значительно проще. Например, при последнем обновлении мы внесли изменения в примерно 900 файлов, и только 80 файлов потребовали ручной правки кода. Мне потребовалось примерно пять-шесть часов на это – раньше уходило не меньше недели.

После завершения слияния кода требуется скомпилировать код браузера для различных платформ – Windows, Linux, Mac. Как правило, на это требуется один день или даже несколько часов. В общем же процесс слияния кода занимает сегодня два-три дня.

Как выявляются новые проблемы?

Ингве Петтерсен: Собственно в процессе интеграции кода уже проявляются ошибки, для исправления которых приходится вносить изменения в код модулей Vivaldi. Это может занять довольно много времени.

Затем Андре, Ярле и другие разработчики начинают исправлять обнаруженные проблемы, а также новые, которые выявляются уже в процессе тестирования браузера Vivaldi.

А насколько сложен этот процесс?

Андре Шульц: Да, изменения в Chromium являются самыми сложными в нашей работе. Пару раз мы отключали флаги для некоторых функций и работали параллельно с функциями Chromium, которые были фактически удалены из следующих версий ядра. Это создало нам много проблем. Наиболее сложный случай произошёл при обновлении на ядро Chromium 64 и нам потребовалось много времени на исправление, что сказалось на сокращении темпов выпуска новых сборок браузера Vivaldi.

Ингве Петтерсен: После исправления проблем, возникших при интеграции нового ядра, мы продолжаем работу по поиску и исправлению ошибок до тех пор, пока не получим достаточно стабильную версию, пригодную для выпуска в качестве готового продукта.

Как обстоят дела с добавлением новых функций в браузер?

Ингве Петтерсен: Да, мы не перестаём работать над новыми функциями, поэтому основной код Vivaldi постоянно изменяется и тестируется. Каждый раз, когда один из разработчиков добавляет изменения в код, автоматически создаётся новая сборка. Эти сборки активно тестируются сначала внутри компании и сторонними тестерами Sopranos, а затем и пользователями публичных тестовых сборок браузера, и в конце концов именно QA отдел принимает решение о том, готовы ли мы выпустить финальный релиз.

Сейчас в компании Vivaldi работает около 20 разработчиков. Я не знаю точно, сколько разработчиков принимает участие в разработке Chromium, но их, конечно, намного больше, чем нас. Можно попробовать сравнить по количеству изменений в коде, сделанных обеими командами в последнее время.

За пять лет мы внесли более 17000 изменений в наш основной код. За прошедший год мы внесли более 2700 изменений. Для сравнения, между Chromium 67 и 68 было внесено примерно 12000 изменений в код Chromium, а между версиями 68 и 69 эта цифра составила уже около 15000 изменений. Другими словами, команда разработчиков Chromium внесла за несколько дней столько же изменений, сколько мы внесли в свой код за год. Поэтому я оцениваю число активных разработчиков Chromium в примерно 600 человек.

Ярле Антонсен: Как правило, у нас проходит немного времени от идеи до реализации новой функции. В небольшой команде легче избегать излишней бюрократии. При этом практически все члены команды принимают активное участие в тестировании новых функций, включая директора компании Йона фон Тэчнера. И, естественно, процесс добавления новых функций очень зависит от запросов пользователей – их рекомендации и отзывы имеют решающее значение для нашей работы.

(По часовой стрелке слева направо) Ярле Антонсен, Ингве Петтерсен, Андре Шульц, Харальд Бромбах.

Оригинал статьи

Comment