Tehnografi.com - Технологические новости, обзоры и советы

Интеграция кода Вивальди. Наши разработчики говорят.

Интеграция кода Вивальди. Наши разработчики говорят. 1

На прошлой неделе у нас был посетитель в штаб-квартире Vivaldi в Осло. И спокойный, и любопытный, им двигали три C — код, Chromium и проблемы, которые они влекут за собой.

Харальд Бромбах из ведущего норвежского технического издания Digi.no побеседовал с тремя нашими разработчиками — Ингве Петтерсеном, Ярле Антонсеном и Андре Шульцем — о процессе создания Vivaldi на основе кода Chromium, его преимуществах, проблемах и многом другом.

Нас часто спрашивают, как работает этот процесс, и мы не можем придумать никого лучше, чем наши разработчики, чтобы объяснить его. Этот содержательный разговор заслуживает того, чтобы поделиться с вами, и мы благодарны Digi.com за возможность опубликовать основные моменты интервью на английском языке. Читать дальше.

Интеграция кода Вивальди. Наши разработчики говорят. 2(По часовой стрелке слева) Харальд Бромбах из Digi.com, Ярле Антонсен, Ингве Петтерсен, Андре Шульц
Обширный код и высокие темпы разработки — это вызов?

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

«Это довольно большой объем, и эта работа может занять несколько недель, — говорит Ингве.

Процесс развился?

Раньше это занимало три-четыре недели, но с двумя последними версиями Chromium (68 и 69) разработчикам Vivaldi удалось выполнить эту работу менее чем за две недели.

«Мы тратим довольно много времени на исправление кода, который работал с предыдущей версией Chromium, но перестал работать», — говорит менеджер проекта Ярле Антонсен, который в основном работает на уровне выше Chromium Code Base, включая установочное программное обеспечение.

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

«Они удивительно полезны. Иногда я застреваю и много раз отправлял вопросы владельцам модулей, которые возвращались с предложениями и упрощали задачу», — говорит Андре Шульц, разработчик Vivaldi, работающий в основном с пользовательским интерфейсом.

Есть ли какой-либо вклад в код Chromium от Вивальди?

За последние полгода команда Vivaldi представила около дюжины патчей к коду Chromium. В первую очередь это касалось очистки, например удаления неправильного использования CRLF (окончаний строк Windows) в исходных файлах, которые должны содержать только LF, а также исправления некоторых ошибок.

Ингве говорит, что планирует отправить несколько других вещей вверх по течению, но это может потребовать недели подготовки.

Недавно команда выпустила расширения Vivaldi для генератора проектов Chromium GN на Github, которые Vivaldi использует для указания того, как должно быть построено браузерное приложение. Вот сообщение в блоге о GN и расширениях, написанное Ингве Петтерсеном.

Интеграция кода Вивальди. Наши разработчики говорят. 3

Насколько масштабен этот процесс?

«Когда приходит обновление Chromium, я начинаю работать над отдельной веткой, — говорит Ингве. Когда я извлекаю код из Chromium, я синхронизирую все подмодули, которые мы используем, и вношу в них несколько небольших изменений».

«Эта часть процесса была сделана довольно автоматизированной. Затем мы берем собственные обновления и копируем их поверх Chromium Code Base. Это процесс, который иногда может быть довольно ручным, потому что мы получаем ряд так называемых «конфликтов слияния». Это может быть проблематично, но мы убрали большую часть кода, который их вызывает, так что это стало намного проще», — объясняет Ингве.

«Из 900 файлов, которые мы изменили, около 80 нужно было исправить. Это заняло у меня от пяти до шести часов, процесс, который раньше занимал неделю», — говорит Петтерсен.

После того, как это будет завершено, код должен быть скомпилирован.

«Сколько времени занимает эта задача, зависит от того, но обычно требуется день или около того, чтобы версия для Windows заработала. Сборка Linux, Mac и других платформ может занять несколько часов, но обычно это не проблема. В целом этот процесс обычно занимает два-три дня», — говорит Ингве.

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

В ходе того же процесса в код Chromium были внесены изменения, которые привели к перезаписи собственных патчей Vivaldi. Иногда это может занимать много времени.

«После этого Андре, Ярле и другие разработчики начинают исправлять уже обнаруженные проблемы, а также новые проблемы, обнаруживаемые в ходе тестирования», — говорит Ингве.

Требователен ли этот процесс?

По словам Андре, Chromium наиболее требователен при внесении архитектурных изменений.

«Это случалось пару раз, когда мы отключали флаг функции и работали параллельно с Chromium над функцией, которая на самом деле умирает. Это создало много работы», — говорит он.

Он упоминает один случай, который появился в Chromium 64, а разработчики Vivaldi исправили его только сейчас.

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

«Затем мы создаем новую ветку и просто вносим исправления, чтобы завершить ее стабилизацию, прежде чем выпустить ее в виде готовой версии», — говорит Ингве.

Что насчет нового функционала?

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

«Каждый раз, когда добавляется новый коммит, создается новая сборка. Эти сборки тщательно тестируются. Когда дело доходит до «окончательного релиза», последнее слово остается за QA», — добавляет Ингве.

По словам Ингве, в Vivaldi работает около 20 разработчиков. Он точно не знает, сколько человек работает с Chromium в Google, но, конечно, гораздо больше. Чтобы представить разницу в масштабах, он сравнивает количество коммитов, сделанных двумя командами за последнее время.

«Мы сделали в общей сложности 17 000 коммитов в наш основной код с 2013 года, то есть за пять лет. За последний год мы сделали около 2700 коммитов. Для сравнения, между Chromium 67 и 68 было от 11 000 до 12 000 коммитов. Между версиями 68 и 69 было 15 000 точек ветвления. За десять дней они сделали столько же коммитов, сколько мы сделали за год», — говорит он.

Он добавляет, что, исходя из этих цифр, команда Chromium может состоять примерно из 600 разработчиков.

«Обычно от идеи до появления функциональности для тестирования проходит очень мало времени. У нас для этого не так много бюрократии», — говорит Ярле. Он говорит, что генеральный директор Джон фон Тетчнер сам активно участвует как в тестировании, так и в предоставлении отзывов».

«Новый функционал во многом зависит от запросов наших пользователей. Их отзывы имеют решающее значение», — заключает Ярле.

Интеграция кода Вивальди. Наши разработчики говорят. 4

Мы надеемся, что этот блог помог вам получить общее представление о том, как работает интеграция кода в Vivaldi. И мы не можем не поблагодарить Харальда за то, что он пришел и заставил наших разработчиков рассказать об этом сложном процессе простым языком.

Вы нашли это интересным? Слишком сложно? Или же? Дайте нам знать об этом в комментариях.

Если вы хотите прочитать полную историю (на норвежском языке), вы можете прочитать ее прямо здесь (платный доступ) на digi.no.