Tous les six mois, nous publions une nouvelle version d'Ubuntu. Chacune d'elles réunit des centaines de développeurs, traducteurs, testeurs et rédacteurs de documentation pour intégrer les applications amont les plus récentes et les plus performantes, ainsi que les nouvelles technologies innovantes Ubuntu..

Construire et publier un nouveau système d’exploitation tous les six mois est une entreprise mouvementée. Vraiment agité. Cependant, depuis 2004, année de la création du projet, nous nous sommes efforcés de tirer le meilleur parti de tous ceux qui participent à la construction d’Ubuntu, en veillant à ce que chaque version soit la meilleure possible.

Cet article explique le fonctionnement de ce chaos organisé et donne un aperçu de la manière dont Ubuntu est mis en place. Tout est encadré par un cycle de publication rigoureux, constitué d'une série de jalons importants, toujours accessibles au public. Commençons par regarder le début d'un nouveau cycle.

Lancer le filet

Avant même de commencer la nouvelle version, et même si nous mettons la dernière main à la version précédente, nous commençons à effectuer un exercice de collecte des exigences. Les équipes de Canonical tendent la main aux différents intervenants et à la communauté pour voir sur quoi la prochaine version devrait se concentrer..

Quelles sont les nouvelles fonctionnalités nécessaires à Ubuntu? Quels problèmes doivent être résolus? Quels cas d'utilisation devrions-nous prendre en charge? Ce processus génère une liste exhaustive de besoins que nous commençons à trier en fonction de domaines prioritaires..

Parallèlement, nous coordonnons la structure du prochain Sommet des développeurs Ubuntu. Cet événement en face-à-face se produit quelques semaines après le début de chaque nouveau cycle de publication. Nous envoyons la quasi-totalité des ingénieurs Canonical pour Ubuntu et parrainons un certain nombre de membres clés de la communauté. L’événement est ouvert à tous et de nombreux représentants d’entreprises se joignent également à.

Au Sommet des développeurs Ubuntu, nous avons 14 pistes couvrant différents thèmes et nous organisons des séances de discussion ouvertes pour les différents domaines d’intervention. Le but de chaque session est de discuter du sujet, de prendre et de documenter les décisions et les actions assignées dans des plans publics. Ce sont des pages Web que nous utilisons pour suivre le travail sur les fonctionnalités de manière ouverte et transparente. Vous pouvez voir l'interface sur http://status.ubuntu.com pour la prochaine version d'Ubuntu.

La première tâche à entreprendre dans un nouveau cycle consiste à finaliser la chaîne d’outils. Le toolchain est l’ensemble de base des outils de développement utilisés pour créer le logiciel de la version. Ce travail de bas niveau profond et sale est effectué en premier, puis nous synchronisons l’archive Debian Unstable avec cette chaîne d’outils. Ceci construit efficacement tous les paquets Debian par rapport à la panoplie d'outils, nous avons donc Debian Unstable dans notre référentiel de développement Ubuntu.

Une fois cette synchronisation terminée, les développeurs Ubuntu commencent à appliquer les centaines de correctifs Ubuntu à ces paquets qui transforment Debian Unstable en Ubuntu. À ce stade, nous avons une version pour développeur d’Ubuntu qui ressemble à notre dernière version, mais construite sur les nouveaux paquets Debian et utilisant notre chaîne d’outils. Maintenant le vrai travail peut commencer.

Prise du jour

Au cours des mois suivants, la communauté des développeurs commence à travailler sur les fonctionnalités et les objectifs convenus lors du Sommet des développeurs Ubuntu. Tous les jours, des progrès sont accomplis: les développeurs trient et hiérarchisent les bogues, les corrigent et téléchargent les correctifs dans les archives. De nouvelles fonctionnalités sont développées, packagées et téléchargées, ainsi.

Chaque jour, lorsqu'un développeur Ubuntu se réveille, il met à jour son système pour extraire les derniers packages, puis commence à travailler sur ses fonctionnalités et ses bogues. En règle générale, ce flux de travail implique d'examiner la liste de bogues actuelle et des bogues de priorité maximale, puis de les résoudre, tout en travaillant sur les objectifs de fonctionnalité du cycle. Cette tâche implique souvent de sélectionner des fonctionnalités spécifiques en amont qui présentent un intérêt, ou de créer le code pour ces nouvelles fonctionnalités et de les intégrer dans la version..

Les nouveaux travaux de développement du projet Ayatana avec Unity, les indicateurs et d’autres fonctionnalités de bureau novatrices constituent un élément important de cette évolution. Ce travail est divisé en deux équipes principales: l'équipe de conception conçoit la fonctionnalité en fonction des besoins des utilisateurs et l'équipe de bureau utilise ces conceptions pour écrire le code afin de les implémenter..

Sorties régulières

Lorsque l'équipe de Desktop Experience publie une version, elle envoie le code à l'équipe d'ingénierie de bureau Ubuntu, qui le compresse et l'envoie ensuite dans l'archive, où tout le monde peut exécuter et tester le nouveau code..

Dans chaque version, nous nous efforçons d'avoir une nouvelle version de l'équipe Desktop Experience au moins une fois par semaine (généralement le jeudi). Ce délai hebdomadaire a été utile pour les progrès réguliers. Tout au long de cette période, nous publions des versions de développement d’Ubuntu que nous encourageons la communauté à tester, à archiver des bogues et à contribuer à l’amélioration..

Alpha 1 survient peu de temps après l’ouverture du nouveau cycle de publication et inclut les nouveaux paquets Debian, y compris les fusions. Alpha 2 est le moment où vous commencez généralement à voir d'importantes nouvelles fonctionnalités. Alpha 3 est généralement publié quelques mois avant l’Alpha final et juste avant le Feature Freeze..

À Feature Freeze, nous bloquons la publication afin qu'aucune nouvelle fonctionnalité importante ne soit autorisée et que tout le temps dont disposent les développeurs se concentre sur l'affinement de ce qui existe déjà. Cette étape décisive fait passer efficacement les engins nouveaux et non testés à la qualité de construction dans ce que nous avons déjà..