Intégration de code Vivaldi. Nos développeurs racontent

image

Récemment, la publication norvégienne Digi.no a publié une histoire sur la façon dont les développeurs du navigateur Vivaldi travaillent avec le code Chromium. Dans une interview avec trois grands spécialistes de l'entreprise pour la première fois, a parlé publiquement de cet élément important du processus de développement du navigateur Vivaldi.

Trois employés de l'entreprise ont participé à un entretien avec la publication norvégienne - Ingve Pettersen, Jarle Antsen et Andre Schulz. Ils ont parlé de la façon dont le travail est fait pour intégrer le code du navigateur Vivaldi et le noyau Chromium utilisé dans le navigateur - des avantages et des inconvénients de cette approche, ainsi que des problèmes qui se posent et comment les traiter.

Vous trouverez ci-dessous une traduction en russe des questions et réponses les plus intéressantes.

image
(Dans le sens horaire de gauche à droite) Harald Brombach de Digi.no, Jarle Antonsen, Ingve Pettersen, Andre Schulz.

Est-ce le problème du grand volume et de la courte fréquence de mise à jour du code du noyau Chromium?


Yngwe Pettersen (Lead Engineer) : Une nouvelle version de Chromium est publiée toutes les six semaines, et nous devons intégrer notre propre code Vivaldi avec le code de ce noyau. Je suis engagé dans cette tâche, étant responsable de la base de code du navigateur. Et - oui, c'est un travail assez compliqué et long qui prend plusieurs semaines.

Y a-t-il des progrès dans ce travail?


Jarle Antensen (chef de projet) : Auparavant, le processus d'intégration prenait trois à quatre semaines, mais les développeurs de Vivaldi ont réussi à intégrer les deux dernières versions de Chromium (68 et 69) en moins de deux semaines. Le principal problème était les régressions - lorsque notre code a cessé de fonctionner avec le code Chromium, et c'est leur correction qui prend le temps principal.

Comment se passe le travail avec la communauté Chromium?


Andre Schulz (développeur UI) : À notre grande joie, c'est très productif. J'envoie constamment des questions aux développeurs de divers modules et j'obtiens des réponses assez détaillées, parfois même avec des suggestions sur la façon d'améliorer le fonctionnement du module.

Contribuez-vous au développement de Chrome?


Yngwe Pettersen : Au cours des six derniers mois, nous avons envoyé une douzaine de correctifs pour le code Chromium. Ce sont principalement des suggestions pour nettoyer le code, mais il y a également eu des corrections de bugs. À l'heure actuelle, nous préparons d'autres correctifs à envoyer aux développeurs de Chromium.

image
Jarle Antonsen, Ingve Pettersen, Andre Schulz.

Quelle est la complexité et la longueur du processus d'intégration de code?


Ingve Pettersen : Après la sortie de la prochaine mise à jour de Chromium, je crée une nouvelle branche distincte et commence à travailler avec. J'extrais le code Chromium et synchronise tous les sous-modules que nous utilisons, tout en apportant des modifications mineures. Cette partie du processus est assez bien automatisée avec nous.

Ensuite, nous copions toutes nos mises à jour au-dessus de la base de code Chromium. Il y a beaucoup de travail à la main depuis nous obtenons pas mal de régressions et de conflits de fusion de code. Auparavant, cela était très problématique, mais au fil du temps, nous avons bien nettoyé le code des éléments à l'origine des conflits, et aujourd'hui tout est beaucoup plus simple. Par exemple, lors de la dernière mise à jour, nous avons apporté des modifications à environ 900 fichiers, et seulement 80 fichiers ont nécessité une édition manuelle du code. Cela m'a pris environ cinq à six heures pour le faire - cela prenait au moins une semaine.

Après avoir fusionné le code, vous devez compiler le code du navigateur pour différentes plates-formes - Windows, Linux, Mac. En règle générale, cela prend un jour, voire plusieurs heures. En général, le processus de fusion de code prend aujourd'hui deux à trois jours.

Comment les nouveaux problèmes sont-ils identifiés?


Ingve Pettersen : En effet, dans le processus d'intégration du code, des erreurs apparaissent déjà, pour la correction desquelles il est nécessaire d'apporter des modifications au code des modules Vivaldi. Cela peut prendre un certain temps.

Puis Andre, Jarle et d'autres développeurs commencent à corriger les problèmes découverts, ainsi que les nouveaux qui sont déjà identifiés lors des tests du navigateur Vivaldi.

À quel point ce processus est-il compliqué?


Andre Schulz : Oui, les modifications apportées au chrome sont les plus difficiles dans notre travail. À quelques reprises, nous avons désactivé les indicateurs pour certaines fonctions et travaillé en parallèle avec les fonctions Chromium, qui ont en fait été supprimées des prochaines versions du noyau. Cela a créé beaucoup de problèmes pour nous. Le cas le plus difficile s'est produit lors de la mise à niveau vers le noyau Chromium 64 et il nous a fallu beaucoup de temps pour le corriger, ce qui a affecté le ralentissement de la publication des nouvelles versions du navigateur Vivaldi.

Yngwe Pettersen : Après avoir corrigé les problèmes survenus lors de l'intégration du nouveau noyau, nous continuons de travailler à la recherche et à la correction des bogues jusqu'à ce que nous obtenions une version suffisamment stable adaptée à la sortie en tant que produit fini.

Comment se passe l'ajout de nouvelles fonctionnalités au navigateur?


Yngwe Pettersen : Oui, nous ne cessons de travailler sur de nouvelles fonctionnalités, donc le code principal de Vivaldi est en constante évolution et test. Chaque fois qu'un des développeurs ajoute des modifications au code, un nouvel assembly est automatiquement créé. Ces assemblys sont testés activement d'abord par la société et les testeurs tiers de Sopranos, puis par les utilisateurs d'assemblys de test de navigateur public, et finalement c'est le département QA qui décide si nous sommes prêts à publier la version finale.

Vivaldi emploie actuellement une vingtaine de développeurs. Je ne sais pas exactement combien de développeurs sont impliqués dans le développement de Chromium, mais bien sûr il y en a beaucoup plus que nous. Vous pouvez essayer de comparer le nombre de modifications apportées récemment au code par les deux équipes.

En cinq ans, nous avons apporté plus de 17 000 modifications à notre code de base. Au cours de la dernière année, nous avons effectué plus de 2 700 changements. À titre de comparaison, entre Chromium 67 et 68, environ 12 000 modifications ont été apportées au code Chromium, et entre les versions 68 et 69, ce chiffre était déjà d'environ 15 000 modifications. En d'autres termes, l'équipe de développement de Chromium a effectué autant de changements en quelques jours que nous l'avons fait dans notre code au cours de l'année. Par conséquent, j'estime le nombre de développeurs Chromium actifs à environ 600 personnes.

Jarle Antensen : En règle générale, cela nous prend un peu de temps de l'idée à la mise en œuvre d'une nouvelle fonction. Dans une petite équipe, il est plus facile d'éviter une bureaucratie excessive. Dans le même temps, presque tous les membres de l'équipe participent activement aux tests de nouvelles fonctionnalités, y compris le directeur de l'entreprise Jon von Techner. Et, bien sûr, le processus d'ajout de nouvelles fonctionnalités dépend beaucoup des demandes des utilisateurs - leurs recommandations et leurs commentaires sont essentiels à notre travail.

image
(Dans le sens horaire de gauche à droite) Jarle Antonsen, Ingve Pettersen, Andre Schulz, Harald Brombach.

Article original

Source: https://habr.com/ru/post/fr423319/


All Articles