Gestion récursive des dépendances : Plus intelligente, plus profonde, plus sûre

Suite au lancement de la règle de version Follow 4D, nous sommes ravis d’introduire un nouveau niveau d’automatisation et de fiabilité dans 4D 20 R10 : la résolution des dépendances entièrement récursive.

Que vous ajoutiez, mettiez à jour ou supprimiez un composant, le gestionnaire de dépendances agit désormais de manière récursive, garantissant que chaque action que vous entreprenez est reflétée avec précision dans l’ensemble de votre arbre de dépendances.

Une action, toutes les dépendances

Lorsque vous ajoutez une dépendance primaire, à partir de GitHub ou d’un dossier local, 4D :

  • charge récursivement toutes les dépendances nécessaires
  • Applique les contraintes de version définies dans votre fichier dependencies.json.

Pas besoin de s’inquiéter des pièces manquantes ou des versions incompatibles, votre arbre de dépendance complet est automatiquement résolu et chargé.

Gestion récursive des versions

Lorsque plusieurs composants nécessitent différentes versions d’une même dépendance :

  • Le gestionnaire de dépendances vérifie les plages requises et choisit une version qui satisfait à toutes les contraintes, si possible.
  • Si une version est déclarée directement comme dépendance primaire, cette version est prioritaire sur les versions requises indirectement.

Cette approche permet à votre environnement de rester stable et cohérent, même si votre projet grandit.

Une interface qui reflète la structure complète

L’interface des dépendances du projet a été mise à jour pour refléter la nature récursive des dépendances de votre projet :

  • Onglet « All » : Affiche une liste de toutes les dépendances (primaires et secondaires) utilisées dans votre projet.
  • Onglet « Declared » : Une nouvelle section entre « All » et « Active » qui liste uniquement les dépendances que vous avez explicitement déclarées dans dependencies.json.
  • Les dépendances secondaires sont clairement indiquées, et lorsque vous survolez l’une d’entre elles, une infobulle vous indique quel(s) composant(s) la nécessite(nt). Tout est transparent.

Faites une action – 4D s’occupe du reste

Chaque modification que vous apportez, qu’il s’agisse d’ajouter, de supprimer ou de mettre à jour un composant, est désormais propagée de manière récursive dans l’ensemble de votre graphe de dépendances.

Vous bénéficiez des avantages suivants

  • Chargement automatique des sous-dépendances requises
  • Résolution intelligente des versions avec des règles de préséance claires
  • Suppression sûre avec prise en compte de l’impact
  • Une interface utilisateur qui reflète la structure réelle de votre projet

POUR LES DÉVELOPPEURS DE COMPOSANTS

Si vous développez vos propres composants, vous vous demandez peut-être : comment déclarer mes dépendances ? Chaque composant doit inclure son propre fichier dependencies.json. Ce fichier spécifie les dépendances nécessaires au bon fonctionnement du composant, ainsi que leurs contraintes de version.

Ce mécanisme fonctionne aussi bien avec les dépendances locales qu’avec celles hébergées sur GitHub. Cependant, pour une meilleure portabilité et un meilleur partage, l’utilisation de GitHub est considérée comme la meilleure pratique. Lors de la création d’un composant, assurez-vous que le fichier dependencies.json est inclus dans le paquet final. La prise en charge complète de cette fonctionnalité est disponible à partir de 4D 20 R10. Si vous travaillez avec des composants plus anciens, vous devrez les reconstruire pour profiter de la résolution récursive automatique.

Essayez-le maintenant et découvrez une manière plus intelligente et plus rapide de gérer vos dépendances, et passez moins de temps à résoudre les problèmes.

 

David Azancot
- 4D for iOS Product Owner - David Azancot a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. Il est chargé de rédiger les user stories et de les traduire en spécifications fonctionnelles. Son rôle consiste également à s'assurer que les implémentations des fonctionnalités répondent aux besoins des clients.David est diplômé d'un MBA en marketing, Internet et mobilité de l'Institut Léonard De Vinci et a commencé sa carrière en 2011 au sein d'une start-up mobile, rachetée ensuite par Madvertise (groupe de marketing mobile). Passionné par les interfaces mobiles, il a été le choix naturel pour développer des formats publicitaires mobiles interactifs pour le groupe en 2015. En parallèle, David développe ses propres applications iOS et Android depuis 2012.