Les outils "easy_install/pip" sont devenus populaires en partie grâce à l'incorporation d'un système de dépendances. Depsolver est une librairie conçue pour résoudre les problèmes de dépendance plus complexes que pip et easy_install ne peuvent pas résoudre. La librairie est pure python, et conçue pour être réutilisable par de futures systèmes d'installations (python ou autre).
La présentation sera organisée comme suivant:
Justification pour un système de dépendance: limitations du système utilisé par pip, différence entre déploiement d'applications et distributions.
Simple démo de depsolver sur des problèmes mal gérés par pip.
Cette section commencera par revoir les systèmes basés sur une représentation type 'graph', et expliquer brièvement l'origine de leur complexité ("apt-get/yum").
Ensuite, j'expliquerai comment les systèmes plus modernes (libzypp, php composer) utilisent un "solver SAT" pour résoudre les dépendances: gestion homogène des conflits, replacements et obsolescence, gestion homogène des dépendances à l'exécution, compilation et test.
Section principale décrivant l'API, basée sur des exemples concrets:
description haut niveau de l'API: résoudre un problème de dépendance simple
flexibilité du format de version: PEP 440, format Debian
gestion des conflits, et concept de "policy" pour différents usages.
La présentation se terminera sur ce qui reste à faire et les possibilités d'intégration avec pip/setuptools.