Contexte et objectif

Le gestionnaire de paquets uv maintient un wheel cache local afin de réutiliser les archives .whl déjà téléchargées. Le pull request #21327 propose de dédupliquer les fichiers présents dans ce cache. L’objectif déclaré est de réduire la redondance de stockage lorsqu’une même version de paquet apparaît plusieurs fois sous des chemins différents.

Mécanisme de déduplication proposé

Selon le PR, la déduplication s’appuie sur le calcul d’un empreinte cryptographique (SHA‑256) de chaque archive .whl. Si deux fichiers partagent la même empreinte, le système conserve un seul exemplaire physique et remplace les autres références par des liens symboliques pointant vers le fichier maître. Cette approche évite la duplication de données tout en conservant la compatibilité avec les outils qui attendent un chemin de fichier réel.

# Exemple de commande uv pour inspecter le cache
uv cache dir
# Nettoyage du cache avant la mise à jour du mécanisme
echo "Cleaning cache..."
uv cache clean

Impacts sur l’utilisation du cache

En limitant le nombre de copies physiques, le PR #21327 devrait diminuer l’empreinte disque du cache de plusieurs gigaoctets dans des environnements de CI/CD où les mêmes dépendances sont résolues à chaque exécution. La réduction du nombre d’IO disque lors de la lecture d’un .whl déjà présent peut également accélérer le processus d’installation, car le système ne doit plus copier plusieurs fois le même fichier.

Limites et perspectives

Le mécanisme repose exclusivement sur la correspondance d’empreintes; il ne détecte pas les différences de métadonnées (par ex. des fichiers .whl identiques mais signés différemment). De plus, la création de liens symboliques peut poser des problèmes sur les systèmes de fichiers qui ne les supportent pas (ex. certains montages Windows). Le PR ne précise pas de stratégie de récupération en cas de corruption du fichier maître, ce qui impose une surveillance supplémentaire du cache. Enfin, aucune métrique de performance ou de gain d’espace n’est fournie dans la description du PR, limitant l’évaluation quantitative de l’amélioration.