Tout le monde sur le pont ! Ce que vous pouvez faire pour aider au succès de Firefox 57

Poster du robot Firefox 57, en préparation

Si vous avez suivi le développement de Firefox l’année dernière, vous savez probablement que nous travaillons dur à un renouvellement majeur du navigateur, une opération dont le nom de code est Quantum.

Nous avons vécu une période tout à fait passionnante où des centaines d’ingénieurs ont donné vie à de nouveaux concepts et les ont inclus dans notre moteur, Gecko. Ces refontes, qui vont trouver leur apogée au lancement de Firefox 57, portent sur les fondations mêmes de notre moteur et demandent qu’on le modifie en profondeur.

Nous sommes passés pour la globalité du moteur d’un modèle à un processus au multiprocessus, ce qui est peut-être le remaniement le plus compliqué possible qu’une partie majeure d’un logiciel puisse subir. Nous avons ajouté un langage de programmation de niveau système entièrement nouveau et nous remplaçons des composants majeurs du moteur tels que les systèmes de style et de rendu. Il y a des changements substantiels de notre couche réseau et de nos couches de sécurité, ainsi que des composants entièrement nouveaux comme un nouvel écosystème d’extensions, une pile de réalité virtuelle et APZ. Nous avons ajouté un autre nouveau langage de programmation dans le cadre de notre moteur JS et remodelé significativement notre processus de production de versions et notre infrastructure permettant des tests rapides de fonctionnalités et des analyses de télémétrie pour comprendre comment nos changements touchent nos utilisateurs et beaucoup, beaucoup d’autres choses.

Les changements sont massifs. C’est le plus gros remaniement de Gecko et de Firefox auquel j’aie assisté au cours de mes 17 ans de contribution au projet. Mais nous n’avons pas encore fini…

Les 3 dernières semaines

Firefox Health Dashboards

À ce jour, nous sommes à 3 semaines (24 jours) du lancement en bêta de Firefox 57.

Toutes les pièces majeures sont en train d’être mises en place et sont d’ailleurs déjà activées ou le seront bientôt. Certains éléments pourront être reportés aux versions 58 et 59, mais la grande majorité de l’effort est dans le dernier tour en vue de la ligne d’arrivée.

Firefox Nightly tel qu’il est aujourd’hui est un logiciel passionnant à essayer. C’est étonnant de voir combien il a changé depuis janvier et je pense que quiconque travaillant dans l’écosystème du Web s’amusera en jouant avec.

En quoi puis-je aider ?

Nous avons encore 3 semaines pour polir les aspérités, trouver et corriger les bogues ainsi que les cas limites, réparer les petites coupures involontaires et régler toutes les petites choses qui aideront à finaliser cette expérience ultime que sera Firefox 57, et en faire le meilleur navigateur de la planète. Mais comment ?

C’est là que vous intervenez.

Une des choses les plus géniales avec Firefox, c’est un projet vraiment développé au grand jour. Son développement est absolument transparent, avec un processus inclusif qui permet à tous ceux qui ont les compétences nécessaires de nous rejoindre et nous aider. Et en raison des technologies que nous utilisons, quiconque a des compétences en CSS, JS, HTML, React, Python, C++ ou Rust peut contribuer ! Mmmh même sans ces capacités, il existe des tas de choses, petites ou grandes, que vous pouvez faire.

L’essentiel de mon travail tourne autour de la couche d’internationalisation et de localisation de Mozilla, mais, au cours des derniers mois, j’ai dédié une partie de mon temps à aider au lancement de Firefox 57 et j’ai pris conscience que beaucoup de personnes que je connais ont les compétences pour nous aider et seraient très probablement intéressées par le défi à relever, mais ne savaient pas que c’était possible !

Il existe des centaines de projets chez Mozilla et la plupart d’entre eux sont ouverts aux contributeurs et contributrices, mais, puisqu’il est question particulièrement de la sortie de Firefox 57, j’ai créé une liste de tâches qui varient en complexité, en durée et en niveau de compétences nécessaires. Ce sont d’excellentes portes d’entrée pour contribuer à un de plus grands projets logiciels du monde qui ne demande qu’à être hacké !

Veuillez noter que nous sommes en mesure de vous mentorer en vous aidant à utiliser vos compétences sur le projet Firefox, mais que nous ne pourrons pas vous mentorer dans l’acquisition des compétences de base requises dans les tâches décrites ci-dessous.

Assurance qualité

Compétence souhaitée : utiliser la version de test du produit comme navigateur principal

Télécharger Firefox Nightly Télécharger Firefox Nightly

La chose la plus simple et la plus importante que vous puissiez faire est de télécharger Firefox Nightly et l’utiliser au quotidien. C’est un navigateur très stable et, au cours de mes années d’utilisation, j’ai peut-être rencontré une ou deux fois un problème qui m’a empêché de travailler. Il y a de petites gênes occasionnelles, comme la couleur d’un élément de l’interface qui s’en va ou un glissement des onglets qui a des pépins, mais ces genres de petits problèmes ne m’ont jamais affecté plus que ça et ils sont généralement réglés en quelques heures.

Disposer d’une base d’utilisateurs et d’utilisatrices importante et diversifiée de la version Nightly nous permet de récolter des données d’utilisations anonymisées. Des choses comme « combien d’onglets les utilisateurs ont d’ouvert », « quelle est la rapidité de démarrage du navigateur », « à quelle vitesse les pages sont-elles rendues », etc. sont critiques pour notre capacité à déterminer l’impact des changements que nous intégrons rapidement et réagir si nécessaire.

Données de télémétrie sur la durée moyenne du ramasse-miettes Données de télémétrie sur la durée moyenne du ramasse-miettes (garbage collection)

Si nous intégrons un changement substantiel sur la façon dont notre pile HTTP2 fonctionne et que 6 heures plus tard nous voyons que le temps de chargement moyen augmenté de 30 ms, nous savons que nous devons revenir sur ce changement. Mais nous ne pouvons pas toujours voir cela sans nos labos, car nous ne pouvons reproduire la grande diversité du Web. La manière dont les gens utilisent le Web en Inde, en Chine, en Tunisie ou au Canada sur à la fois des ordinateurs lents et rapides diffère trop. Les données dans la vraie vie sont la meilleure chance que nous ayons de nous assurer de la qualité du produit final quelle que soit la population.

Donc, téléchargez Firefox Nightly, activez les données de télémétrie (nous ne collectons pas de données personnelles) et utilisez-le de la même façon que votre navigateur habituel durant les trois prochaines semaine !

Signaler les problèmes

Compétences souhaitées : savoir prendre une capture d’écran et pouvoir rédiger un petit rapport qui précise les étapes nécessaires pour reproduire le bogue.

Formulaire de nouveau bogue de Bugzilla@Mozilla Formulaire de nouveau bogue

Mozilla utilise un énorme système appelé Bugzilla, qui permet la gestion de tâches associées à des rapports de bogue. Toutes nos équipes d’ingénieurs ont l’œil dessus et dès que nous remarquons un problème ou travaillons sur une nouvelle fonctionnalité, nous ouvrons un « ticket ». Ce système est ouvert, ce qui signifie : si vous remarquez un problème, vous pouvez vous aussi ouvrir un ticket !

À chaque fois que vous remarquez un comportement anormal de Firefox ou qu’il provoque un désagrément à votre système d’exploitation, ou encore quand il vous manque une fonctionnalité, ou bien quand vous remarquez qu’une icône est positionnée deux pixels trop loin vers la droite… alors c’est le bon moment pour envoyer un nouveau rapport de bogue.

Nous ne pouvons pas garantir qu’ils seront tous réglés. Certaines choses sont trop dangereuses à modifier, d’autres sont ainsi pour de bonnes raisons. Parfois, nous ne serons pas d’accord avec vous ou bien nous signalerons qu’il existe déjà un « ticket » lié à ce problème.

Mais, c’est de toute façon beaucoup mieux de recevoir un grand nombre de signalements et d’avoir à les trier que d’en avoir trop peu.

Donc, merci de signaler tout ce que vous remarquez en utilisant Firefox Nightly !

Photon

Compétences nécessaires : CSS, JavaScript, HTML

Firefox avec l'interface Photon Firefox avec l’interface Photon

Aux côtés des changements de bas niveau du moteur arrive une nouvelle interface utilisateur au nom de code « Photon ».

Photon est une mise en pratique de notre système de design. Il nous permet de rafraîchir le produit, mieux l’aligner avec le design moderne des systèmes d’exploitation et du Web d’aujourd’hui. Il nous aide aussi de relier les améliorations du moteur avec l’expérience d’utilisation du produit.

Au cours de 13 dernières semaines, il y a eu une lettre d’information sur Photon qui vous donne une idée de la façon dont la nouvelle interface de Firefox est développée.

Puisque l’interface est principalement écrite en JavaScript, CSS et un langage comparable au HTML appelé XUL, n’importe qui avec des compétences de développeur peut l’améliorer !

Il y a une liste pratique de tâches relatives à notre interface à saisir. Certaines d’entre elles sont simples, comme mettre à jour des règles CSS pour correspondre à notre nouveau système de design, mais d’autres demande une heure ou deux de programmation en JS de passer les gestionnaires d’événements de mouseup à mousedown sur un bouton. Il peut y avoir aussi des tâches qui ont l’air simples au premier abord mais qui vous peuvent vous aspirer pour plus longtemps. Si vous avez six mois ou dix ans d’expérience et que vous ayez quelques heures libres ou un week-end entier, vous trouverez là quelque chose fait pour vous.

Listes des tâches à saisir :

Contribuer à Firefox vous demande de pouvoir le compiler avec vos changements. Heureusement, nous avons désormais ce que nous appelons des « artifact builds » qui vous permettent d’avoir uniquement à compiler de nouveau le code de l’interface (ce qui est rapide) et devrait être suffisant pour contribuer à Photon !

Donc, jetez un œil à la liste, choisissez un bogue et aidez-nous à rendre l’interface de Firefox fantastique !

Quantum Flow

Compétences nécessaires : JavaScript, C++

Graphique de la communication inter-processus de Sync Graphique de la communication inter-processus de Sync

Un des plus passionnants projets de la famille Quantum est Quantum Flow. Tandis que nous travaillions sur Firefox 57, nous avons réalisé qu’il y avait beaucoup de problèmes que ne correspondaient pas entièrement à un seul module tel que DOM, le moteur JavaScript, le rendu ou la composition. Ces problèmes s’étendent sur plusieurs composants, souvent advenant comme résultat d’interactions imparfaites et complexes entre eux et sont uniquement identifiables par leur résultat final tel que : « appuyer sur un bouton prend 600 ms de plus qu’il ne devrait ».

Les personnes travaillant sur QF font un travail d’ingénierie équivalent au travail de Sherlock Holmes, profilant les divers aspects de la base de code, essayant de découvrir quels morceaux de code, traité d’une certaine manière, abouti au problème et ensuite essayer de défaire le nœud qu’il y a entre eux.

Il y a beaucoup de bogues pour Quantum Flow qui ont été triés comme étant sous le seuil d’importance et ne se verront pas accordé de temps par les ingénieurs de QF principaux, mais, si le défi vous tente, ils peuvent être résolus par vous !

Beaucoup des bogues peuvent paraître cryptiques à première vue, mais beaucoup des plus faciles souvent se réduisent à changer le code JavaScript pour faire des entrées-sorties de fichiers asynchrones plutôt que synchrones.

Dans cette liste P1 signifie « priorité 1 », alors que P3 signifie « priorité 3 » – les bogues qui n’ont pas été assignés en P1 sont très importants, donc, si vous pensez que vous pouvez aider avec n’importe lequel d’entre eux, faites-le ! Des bogues en P3 peuvent être plus faciles, mais n’attireront vraisemblablement l’attention de la part des ingénieurs principaux avant la sortie de la version 57. Donc, si vous pensez que vous pouvez vous charger d’un d’entre eux, faites-le !

Donc, parcourez la liste, choisissez un bogue et aidez-nous à rendre Firefox plus rapide et plus vif !

Outils de développement

Compétences nécessaires : JavaScript, CSS, React

Outils de développement de Firefox

Nous outils de développement sont ce qui crée ou détruit l’expérience d’utilisation d’un navigateur web pour tous ceux qui travaillent sur les technologies web. Grâce à un énorme effort, nos outils de développement sont désormais écrits avec la pile web pure et moderne – React, JS, CSS et HTML !

Cela signifie que si vous être développeur·se web, vous pouvez très certainement aider à rendre les outils de développement meilleurs pour vous et les autres.

Avec de bons outils de développement, nous pouvons attirer des développeur·se·s vers Firefox. Avec de super outils de développement, nous pouvons les aider à rendre le Web meilleur !

Donc, parcourez la liste, choisissez un bogue et aidez-nous à rendre les outils de développement fantastiques !

Localisation

Compétences souhaitées : une bonne maîtrise de la langue

Mozilla L10N Mozilla L10n

Pour que le Web reflète la diversité des langues employées dans le monde, nous devons avoir des sites web et des navigateurs traduits dans le plus grand nombre possible des langues en usage.

la localisation de Firefox dans un maximum de langues rend le Web plus accessible aux personnes de toutes les cultures de la planète, ce qui les aide à acquérir des connaissances et de l’expérience sur la Toile via un produit indépendant qui n’a pas été conçu pour le profit d’aucune entreprise.

Vous pouvez donc rejoindre les équipes de localisation existantes et contribuer, ou encore en créer une nouvelle si elle n’existe pas pour votre langue. Faisons en sorte que Firefox parle toutes les langues de notre Terre (mon désir : le sidarin) !

Documentation

Compétences souhaitées : rédiger, réviser…

Assistance de Mozilla

Comme de nouveaux utilisateurs et de nouvelles utilisatrices de Firefox arrivent et que de nombreux changements de nos systèmes et de nos API sont en cours, un gros travail de documentation doit être effectué.

Une bonne documentation aide les personnes à comprendre mieux le produit, parfois à lancer Firefox pour la première fois, invite à y contribuer, à programmer de nouvelles extensions ou à apprendre comment régler les problèmes rencontrés à leur niveau.

Il vous suffit d’ouvrir n’importe quel document en édition et de nous aider à faire une documentation d’aussi bonne qualité que le navigateur !

Intégrations

Compétences souhaitées : n’importe quel système avec lequel Firefox peut interagir

Touchbar de macOS Comment Firefox s’intègre-t-il à la touchbar de macOS ?

Les navigateurs web ne fonctionnent pas en vase clos. C’est une technologie qui se situe entre le système d’exploitation, les composants matériels, l’expérience de l’utilisateur et un écosystème bien plus large d’applications : le Web.

Nous sommes des experts en ce qui concerne Gecko et Firefox, mais vous êtes des experts au sein de votre écosystème. S’il interagit d’une manière ou d’une autre avec Firefox, vous pouvez nous aider à améliorer l’intégration !

Peut-être connaissez-vous GTK, macOS ou WinAPI auquel cas vous pouvez nous aider pour l’intégration au système d’exploitation. Vous connaissez les technologies d’assistance aux personnes ? Les interfaces supportant les langues écrites de droite à gauche ? Vous savez analyser la performance sur macOS ? Vous connaissez le principe du contraste élevé ? Toutes ces compétences ainsi que tout un tas d’autres nous sont utiles pour faire de Firefox un meilleur navigateur pour ces systèmes.

Vous nous aidez sur ces sujets à l’aide de vos compétences, on vous aide sur le code produit par Mozilla. Ensemble, on peut faire le tour de toutes les interactions possibles !

Tout le monde sur le pont !

Événement Brickhack 2016 Événement Brickhack 2016

Voilà ce que je voudrais : au cours des 3 prochaines semaines, prenez un peu de temps pour nous aider à rendre Firefox 57 meilleur pour vous et vos amis. Que ça soit une heure par semaine, la moitié de vos samedis ou plus encore.

Nous pouvons réellement faire bouger les choses et apporter notre pierre à l’édifice pour que les améliorations majeures développées par l’ensemble de l’équipe Mozilla brille de mille feux. Il y a plusieurs centaines d’éléments à traiter dans la liste. Si une centaine de contributeur·rice·s fixe un bogue par jour, on y arrivera !

Ainsi dans 3 semaines, nous pourrons délivrer Firefox 57 en bêta tout en sachant que nous aurons contribué à améliorer le Web grâce à la nouvelle version d’un produit génial.

Bonne chasse aux trésors !

P-S : si vous avez besoin d’aide, passez sur IRC, posez toutes les questions que vous voulez et, si besoin, contactez-moi directement (alias “gandalf” sur le canal #developers). Je ferai de mon mieux pour vous épauler dans votre première tâche.


Vous pouvez contacter la communauté Mozilla francophone sur ses canaux IRC. Il n’y a pas de question bête. Vous y serez bien accueilli·e.


Traduction et relecture : Mozinet, Goofy, Théo, notabene, Janolap1, alpha_x, DG, Hellosct1 et anonymes