Intégrer des composants 4D directement depuis GitHub

De nombreux développeurs 4D exploitent la puissance des composants tiers trouvés sur GitHub, en particulier ceux répertoriés dans la rubrique 4d-component. 4D 20 R6 introduit une nouvelle super fonctionnalité : l’intégration directe de ces composants via le Component Manager.

Cet article de blog entre dans les détails, rendant votre processus de développement plus facile et plus efficace.

De nombreux composants 4D sont disponibles sur GitHub, qu’ils aient été développés par des tiers ou créés par vous-même.
Cette plateforme offre un moyen simple de distribuer les composants : les releases.
Avant de poursuivre, nous vous suggérons de lire l’article sur le Component Manager pour vous familiariser avec les concepts décrits ci-dessous.

Télécharger automatiquement les releases du dépôt

Le Component Manager ne se contente pas d’intégrer les composants locaux, il récupère aussi automatiquement les composants stockés dans les releases du dépôt.

Dans la boîte de dialogue Dépendances du projet, les composants GitHub sont facilement distingués des composants locaux par une petite icône à côté de l’indication de l’emplacement du composant.

Voici comment cela fonctionne :

  1. Compressez votre composant au format ZIP.
  2. Nommez l’archive en utilisant le même nom que le dépôt.
  3. Intégrez-le dans une release du dépôt.

 

Par exemple, ce processus peut être automatisé en utilisant du code 4D ou GitHub Actions. Une fois cela fait, déclarez le composant dans le fichier dependencies.json de votre projet :

{
    "dependencies" : {
        "myComponent" : {
            "github" : "anyAccount/myComponent"
        }
    }
}

Redémarrez le projet et le composant se chargera automatiquement. C’est aussi simple que cela !

TAGS et versions sémantiques

Lorsque vous créez une version dans le référentiel, vous spécifiez un tag et une version.

Les tags sont des textes qui référencent de manière unique une release. Dans le fichier dependencies.json, vous pouvez indiquer le tag de la release que vous souhaitez utiliser dans votre projet. Par exemple :

{
    "dependencies" : {
        "myComponent" : {
            "github" : "anyAccount/myComponent",
            "tag" : "textTag"
        }
    }
}

De la même manière, une version est identifiée par un numéro de version. Le système de version est basé sur le concept de Semantic Versioning, qui est le plus couramment utilisé. Chaque numéro de version est déterminé comme suit : majorNumber.minorNumber.patchNumber. De la même manière que pour les tags, vous pouvez indiquer la version du composant que vous souhaitez utiliser dans votre projet, comme dans cet exemple :

{
    "dependencies" : {
        "myComponent" : {
            "github" : "anyAccount/myComponent",
            "version" : "2.1.3"
        }
    }
}

La version est utilisée pour définir quelles versions peuvent être utilisées. Voici quelques exemples :

  • « latest » : la version avec le badge « latest » dans les versions du référentiel.
  • « * » : la dernière version publiée.
  • « 1.* » : toutes les versions de la version majeure 1.
  • « 1.2.* » : tous les correctifs de la version mineure 1.2.
  • « ^1.2.3 » ou « >=1.2.3 » : la dernière version 1, à partir de la version 1.2.3.
  • « ~1.2.3 » ou « >1.2.3 » : la dernière version majeure 1, en commençant par la version juste après 1.2.3.
  • « <=1.2.3 » : la dernière version jusqu’à la version 1.2.3.
  • « 1.0.0 – 1.2.3 » ou « >=1.0.0 <=1.2.3 » : version comprise entre 1.0.0 et 1.2.3.
  • « <1.2.3 || >=2 » : version qui n’est pas comprise entre 1.2.3 et 2.0.0.

Si vous ne spécifiez pas de tag ou de version, 4D récupère automatiquement la version ayant le badge « latest ».

Dépôts privés

Si vous souhaitez intégrer un composant situé dans un dépôt privé, vous devez indiquer à 4D d’utiliser un jeton de connexion pour y accéder. Pour ce faire, créez un jeton « classic » avec des droits d’accès à « repo » dans votre compte GitHub. Ensuite, insérez la clé générée dans votre fichier environment4d.json.
Voici un exemple de fichier environment4d.json :

{
    "github" : {
        "token" : "ghp_a0B1cDEf2gHi3JKl4mNo5P6qRST7UvW8x9yZ"
    }
}

Cette nouvelle fonctionnalité simplifie le travail avec les composants 4D. Nous sommes convaincus que cette intégration vous sera utile. Elle favorise un processus de développement plus efficace et exploite un énorme pouvoir de collaboration pour les développeurs 4D. N’hésitez pas à partager vos composants 4D dans des dépôts GitHub et à les badger avec le sujet 4d-component. Vous rejoindrez ainsi la grande communauté des développeurs de composants 4D et serez référencé dans la liste des composants 4D.
N’hésitez pas à nous faire part de vos commentaires !

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.