/client-base

⚙️ Espace de travail commun pour le client applicatif et les bibliothèques associées.

Primary LanguageJavaScriptOtherNOASSERTION

Client Base

À propos

Espace de travail Angular qui contient tous les outils et toutes les configurations nécessaires pour contribuer sur les projets :

Table des matières

Prérequis

  • Git : Système de contrôle de versions distribué d'un ensemble de fichiers
  • Node : Environnement d'exécution pour Javascript
  • Yarn : Gestionnaire de paquets pour les produits développés dans des environnements Node

Node et Yarn peuvent être installés via nvm qui permet d'obtenir et d'utiliser rapidement différentes versions de Node via la ligne de commande.

Installation

Mise en place des sources et des dépendances

  • Cloner le dépôt en local git@github.com:anct-cartographie-nationale/client-base.git
  • Aller dans le dossier du projet et exécuter yarn pour installer les dépendances

Installer Husky

Husky est un outil de gestion des hooks git pour effectuer des tâches automatiques

Mise en place de Husky à la racine du projet client-base :

yarn husky install

Rendre exécutable les fichiers qui contiennent les hooks :

chmod a+x .husky/commit-msg
chmod a+x .husky/pre-commit

Utilisation

Cet espace de travail est vide par défaut, mais vous pouvez y ajouter des projets Angular dans le dossier projects en suivant la documentation de :

Pour créer un nouveau projet Angular dans le dossier projects de l'espace de travail, il faut utiliser la commande :

  • ng generate library my-lib s'il s'agit d'une bibliothèque
  • ng generate application my-app s'il s'agit d'un projet qui peut être lancé dans le navigateur

Pour en savoir plus sur la commande ng generate, consulter la documentation de la CLI d'Angular
Pour en savoir plus sur la gestion des projets d'applications Angular, voir la documentation des projets multiples
Pour en savoir plus sur la gestion des projets de bibliothèque Angular, voir le tutoriel sur les bibliothèques Angular

Contribution

Nommage des branches

  • Avant de créer une nouvelle branche de travail, récupérer les dernières modifications disponibles sur la branche main
  • La nouvelle branche de travail doit ête préfixée par build/, chore/, ci/, docs/, feat/, fix/, perf/, refactor/, revert/, style/ ou test/ en fonction du type de modification prévu, pour plus de détails à ce sujet, consulter Conventional Commits cheat sheet
  • Une branche portant une version à publier doit être de la forme release/X.Y avec X.Y égal au numéro de majeur et de mineur de la release, cela signifie donc que tous les patches sont à appliquer sur la même branche pour chaque version mineure. Cette organisation permet de gérer plusieurs versions de la bibliothèque en parallèle sans mettre en péril la rétrocompatibilité.

Commits

Convention

Les commits de ce repository doivent respecter la syntaxe décrite par la spécification des Commits Conventionnels

Signature

La branche main, ainsi que l'ensemble des branches de travail avec un préfixe valide requièrent que les commits soient signés :

Déployer

À partir du moment où le code est publié sur la branche main, il est prêt à être utilisé avec la commande git clone décrite dans la section Installation.

Les processus d'intégration en continu des projets dépendant de cet espace de travail clonent ce dépôt afin de pouvoir exécuter les commandes nécessaires, pour :

  • Le contrôle de la syntaxe du code
  • Le lancement des tests
  • La construction des projets dans leur forme à déployer en production.

Construit avec

langages & Frameworks

  • TypeScript est un langage open source construit à partir de JavaScript
  • Angular est une boîte à outils open source pour construire des clients web

Outils

  • Jest est une boîte à outils pour écrire des tests automatisés en JavaScript
  • Eslint est un analyseur statique de JavaScript avec les plugins suivants :
  • Prettier est un magnificateur de code source en JavaScript

Licence

Voir le fichier LICENSE.md du dépôt.