You are here -> Home Logram et son site » Sortie de Setup 0.1-alpha1

Sortie de Setup 0.1-alpha1

Le 25/12/2009 à 16h07 by steckdenis, in Logram et son site, 1 commentaries

Bonjour :) ,

C'est avec un grand plaisir que je vous annonce la sortie de Setup 0.1-alpha1, c'est à dire la première version alpha utilisable et testable. Elle est en effet complète au niveau des fonctionnalités de base (installation, suppression, mise à jour), et permet de belles choses comme la création de paquets, la gestion de dépôts, etc.

Cette version est la première version de Setup correctement finie et fignolée. Pour tout vous dire, même un soin particulier a été apporté à l'affichage des progression, à la robustesse, et à la rapidité.

Présentation de Setup

Pour ceux qui ne suivent pas Logram de près, Setup est le gestionnaire de paquets que la distribution Linux Logram utilisera. Ce nouveau gestionnaire de paquets a été développé dans le but de combler les manques des vieux gestionnaires de paquets comme RPM et APT, et de se rapprocher des «jeunes» gestionnaires de paquets comme Pacman.

En effet, les «vieux» sont composés de deux couches : le gestionnaire de paquet (RPM, Dpkg), et le solveur de dépendances (Zypp, Yum, URPMI, APT, Aptitude, etc). Cette séparation en couche occasion des problèmes et empêche certaines fonctionnalités attendues par les utilisateurs. De l'autre côté, les «jeunes», comme Pacman et Setup, utilisent une seule et même couche pour gérer les paquets et résoudre les dépendances. Le résultat net est qu'ils sont immensément plus rapides et plus simples, ainsi que plus puissants.

Setup se distingue aussi des autres par le fait qu'il est le fruit de près d'un an d'analyse de ce que les gens veulent comme gestionnaire de paquets. La beauté, la rapidité, l'ergonomie et l'internationalisation sont des éléments trop souvent oubliés par des gestionnaires de paquets orientés serveur, ou geeks

L'interface console de Setup

Pour le moment, Setup n'existe qu'en interface console, mais elle a été concue pour correspondre au plus de gens possibles.

La première chose qui frappe est l'utilisation de couleurs pour clarifier l'interface. Pour ceux qui n'aiment pas, il est bien évidemment possible de désactiver cet affichage.

Couleurs

Au lieu de présenter un gros pâté d'informations à la manière d'apt-cache, Setup présente les informations sur un paquet d'une manière on ne peut plus claire, et présente beaucoup d'informations. Notez que le dépôt dispose d'une description, et que l'historique des changements est affiché. Ainsi, l'utilisateur voit immédiatement ce qu'il cherche.

Showpkg

Un système de progressions recherché permet à la bibliothèque de paquets de renseigner Setup sur l'avancement des opérations. Il peut ainsi les afficher à l'utilisateur, sous forme d'un log.

Progressions

Pour les progressions plus rapides, comme les téléchargements, un système de barre de progressions est fourni. Il permet d'afficher plusieurs téléchargements en parallèle, et fonctionne très bien en même temps que les autres progressions

ProgressBar

L'installation de paquets est facilité par une interface de choix des résolutions des dépendances. Chaque paquet est accompagné de sa description courte. L'utilisateur sachant choisir la solution la plus adaptée à son problème (le solveur supporte cela), il est ainsi en possession de toutes les informations nécessaires.

Resolution

Le système de mise à jour propose à l'utilisateur la liste des paquets dont une version plus récente existe dans les dépôts. La liste des numéros, séparés par une virgule, est un petit plus de Setup. En effet, un système de saisie a été créé. Il permet à l'utilisateur d'entrer des données, dans un champs texte pré-remplis. NCurses permet déjà ça, mais ici, c'est intégré à Setup. En clair, l'utilisateur n'a pas à entrer manuellement tous les numéros. Il n'a qu'à appuyer sur Entrée, ou modifier la liste, pour mettre les paquets à jour.

Update

Un système de questions permet aux paquets de demander des compléments d'informations à l'utilisateur, que ce soit avant ou après l'installation, la suppression ou la mise à jour. Ces questions peuvent être de différents types, comme des messages, des demandes de chaînes de caractères, de nombres, le choix d'une ou de plusieurs valeurs parmi plusieurs, etc.

Questions

La création de paquet se fait très facilement (voir fin de l'annonce pour les liens), et ce directement depuis Setup. Le système de progressions est là encore mis à contribution pour présenter à l'empaqueteur les données qui l'intéressent.

Empaquetage

La gestion des dépôts est également permise par Setup, toujours au moyen d'une interface unifiée, alors que la plupart des autres gestionnaires de paquets proposent tout un tas d'outils différents.

La future interface graphique

Récemment, le projet Shaman 2 a commencé. Il est dirigé par l'équipe de développement de Chakra, une distribution Linux basée sur ArchLinux et utilisant KDE. Logram comptant également proposer KDE comme environnement de bureau principal, et Chakra développant ses outils pour KDE, il est tout naturel de les utiliser.

De plus, Shaman repose sur un système de backends. Il existe actuellement un backend AQPM (gestion des paquets d'ArchLinux), et un backend PackageKit (pour les autres distributions majeures). Logram proposera un backend Setup, et utilisera Shaman comme interface graphique.

Une collaboration entre les deux projets a également commencé. Pas mal de changements dans Setup ont été encouragés par le développeur de Shaman, tandis que des éléments de Setup se retrouvent dans Shaman, comme un système de questions complet, et quelques idées, en provenance de la news Premier mockup du gestionnaire de paquets. En outre, la vue des paquets en arbre et l'aperçu de la transaction ont particulièrement intéressé le développeur de Shaman.

La conception de Setup

Les gestionnaires de paquets de «vieille» version sont lents (même si vous ne le pensez pas, mais essayez Pacman, vous verrez que même APT est lent comme un escargot comparé à lui). Setup, tout en restant robuste, essaie d'être le plus rapide possible.

Étant le fruit d'une longue réflexion, du fait qu'il a été conçu depuis un an, mais codé que récemment (septembre) du fait de projets plus importants dans Logram, Setup bénéficie d'une architecture performance et relativement bien conçue.

La page Spécifications techniques de Setup vous expose l'architecture de Setup, dont les points importants sont :

  • La base de donnée binaire, inspirée de celle de Zypp (solveur de dépendances de OpenSuSE). Parmi ses goodies, il y a le temps d'accès O(1) à n'importe quel paquet, O(1) à n'importe quelle chaîne de caractère, O(dépendances) pour le listage des dépendances d'un paquets. Elle est conçue pour éliminer toutes les complexités O(n), où n est le nombre de paquets dans la base de donnée. Le solveur a réussi avec brio, et en 32 millisecondes, la résolution des dépendances nécessaires pour installer FireFox, à partir des dépôts main et universe d'Ubuntu Lucid Lynx (28 000 paquets)
  • Le solveur de dépendances, utilisant un algorithme par branches, permet de résoudre très rapidement les dépendances et de garder en mémoire toutes les solutions menant à une résolution correcte. Ces solutions sont ensuite présentées à l'utilisateur. Contrairement aux solveurs SAT (satisfactions booléenne) actuels, ce solveur ne traîte que les paquets nécessaires au problème, sans devoir construire une suite de règles SAT nécessitant de lire toute la base de donnée.

Vous l'aurez compris, Setup est rapide, et surtout, il scale très bien. Instantané avec un dépôt de 4 paquets, toujours aussi instantané avec un dépôt de 30 000 paquets, il est taillé pour l'avenir.

Changements depuis l'Alpha0

Voici enfin ce qui intéressera les connaisseurs, c'est à dire les changements depuis l'Alpha0 :

  • Suppression de paquets
  • Mise à jour de paquets
  • Abandon du script bash helperscript pour une solution plus robuste en C++
  • Utilisation de GPGME et libarchive à la place des commandes tar et gpg
  • Nouveau format de paquet, compression XZ encore plus efficace que le LZMA, et plus rapide. Paquets plus simples à créer (juste metadata.xml, plus besoin de tous les fichiers autour)
  • Nouveau format de dépôts, plus complet, et utilisant une base de donnée. C'est la porte ouverte à plein d'améliorations, comme diverses statistiques, les Delta Packages, etc
  • Abandon des scripts bash setup-dev (sepa et repoma), utilisation de Setup et de libpackages. Ainsi, un plugin pour KDevelop permettant de créer ses paquets directement depuis cet environnement est possible :) .
  • Installation et affichage d'informations d'un paquet se trouvant hors des dépôts
  • Commentaires, activation et signature optionnelle pour les dépôts
  • Nouvelles progressions, et nouvelle architecture de progressions, plus robuste et complète.
  • Correction de plusieurs dizaines de bugs et problèmes

Tous ces changements ont été permis par un refactoring immense entrepris peu après la sortie de l'alpha0. En outre, libpackages est passée de 4500 lignes à plus de 8500 lignes. De nombreuses classes et fichiers ont été rajoutés, et l'API a été profondément changée par endroits. Plus de détails dans l'historique SVN (le chargement de cette page est un peu long).

Documentation et tests

Les différentes documentations ont été mises à jour :

  • Tester Setup a été nettoyée, et permet maintenant de tester la suppression, la mise à jour, et les progressions
  • Créer un paquet Setup a été refaite. Elle détaille maintenant la création des paquets dans le nouveau format, plus simple et plus puissant à la fois.
  • Créer un dépot Setup a été mise à jour, et explique maintenant comment créer la base de donnée, et remplace les vieilles commandes "repoma" par "setup".

La page de téléchargements vous propose de nouvelles archives .tar.bz2 contenant les dernières sources.

Statut et avenir de Setup

Cette version est encore une version Alpha, c'est à dire en plein développement et souffrant encore de gros problèmes. De plus, certaines fonctionnalités sont encore manquantes, comme la gestion des paquets sources (setup getsource paquet, qui télécharge le paquet source et le compile, si demandé), les différences binaires entre paquets (pour réduire les mises à jour), et tout un tas de métadonnées comme les commentaires.

Dans les prochains jours, des bugs seront corrigés et la gestion des sources sera codée. Le backend Shaman pourrait peut-être aussi être commencé, pour tester les possibilités graphiques de la libpackages.

Attention, même s'il est possible de créer des paquets, ne commencez pas avant les bêtas ou les rc. En effet, Setup est encore instable, et c'est de même pour son format de paquets. Il n'y a pas de gros changements, mais ce serait tout de même embêtant de devoir recommencer une centaine de paquets.

Le mot de la fin

Merci d'avoir lu cette annonce. N'oubliez pas que tester Setup est très agréable et très rapide, et que ça ne touche pas à votre distribution actuelle.

Si vous avez trouvé la première partie un peu trop «publicitaire», désolé. Setup a des fonctionnalités intéressantes qui peuvent être très bien présentées, parfois trop :-° . J'espère n'avoir choqué personne.

Bons tests, et joyeux Noël !

Commentaries

Author Message
kido
# le 25/12/2009 à 19h49
l'unique
Avatar
Group : Member

Moi qui pensais avoir eu tout mes cadeaux, bah nan! :p

C'est juste super. Si demain y'a Qt 4.6 et phonon dans les dépots(même que eux :-° ) je m'en fou, aussi instable que soit setup je l'installe. \o/ Bref ça a l'air super, un de ces 4 va faloir que je le teste. :) Pour shaman je trouve son interface moyene :-°

Les bons artistes copient, les grands artistes pillent.