Avoir une commande console a tout faire #5

Open
opened 2026-01-19 13:56:10 +01:00 by f.piccinali · 8 comments
Member

Faire une commande console pour les actions de tous les jours :

  • CLI lancer les services : tous ou un par un
  • CLI gérer docker-compose
  • CLI lancer/grouper les tests
  • CLI bump version
  • CLI publication images docker, paquet cli
  • CONSOLE avoir un statut des services et un suivi des perfs
  • CONSOLE avoir des commandes "métier" : liste des factures en attente ...
  • CONSOLEle suivi d'une facture pour avoir le détail de toutes les étapes pour une seule facture
  • CONSOLEle suivi d'une entreprise (point de vue fournisseur) pour avoir le suivi des factures émises et leur status
  • CONSOLEmême chose du point de vue client pour avoir le suivi des factures reçues
  • CONSOLEla vues des PA avec qui on a des interactions
  • CONSOLEune page pour interroger le service PEPPOL
  • CONSOLEune page pour avoir des stats sur une brique en particulier
  • CONSOLEune page de debug/log de l'activité 02-ebs (utile si service cloud)
  • CONSOLEune page de debug/log de l'activité 10-stockage (utile si service cloud)
  • CONSOLEune page chat IA

CLI : usage en ligne de commande

CONSOLE: usage en console (plein écran)

Faire une commande console pour les actions de tous les jours : * `CLI` lancer les services : tous ou un par un * `CLI` gérer docker-compose * `CLI` lancer/grouper les tests * `CLI` bump version * `CLI` publication images docker, paquet cli * `CONSOLE` avoir un statut des services et un suivi des perfs * `CONSOLE` avoir des commandes "métier" : liste des factures en attente ... * `CONSOLE`le suivi d'une facture pour avoir le détail de toutes les étapes pour une seule facture * `CONSOLE`le suivi d'une entreprise (point de vue fournisseur) pour avoir le suivi des factures émises et leur status * `CONSOLE`même chose du point de vue client pour avoir le suivi des factures reçues * `CONSOLE`la vues des PA avec qui on a des interactions * `CONSOLE`une page pour interroger le service PEPPOL * `CONSOLE`une page pour avoir des stats sur une brique en particulier * `CONSOLE`une page de debug/log de l'activité 02-ebs (utile si service cloud) * `CONSOLE`une page de debug/log de l'activité 10-stockage (utile si service cloud) * `CONSOLE`une page chat IA `CLI` : usage en ligne de commande `CONSOLE`: usage en console (plein écran)
f.piccinali added reference script_pdplibre 2026-01-19 13:57:21 +01:00
Author
Member

est ce que ce type de commande ne devrait pas être construit à partir d'un framework au lieu d'un simple script bash.

Je prend l'exemple de la commande bin/console de symfony qui permet facilement d'ajouter de nouvelle fonctions tout en restant modulaire. J'imagine qu'on a le même genre d'helpers dans le monde python.

A discuter en fonction des choix techniques qui seront fait quand on commencera à choisir les outils de développement.

est ce que ce type de commande ne devrait pas être construit à partir d'un framework au lieu d'un simple script bash. Je prend l'exemple de la commande bin/console de symfony qui permet facilement d'ajouter de nouvelle fonctions tout en restant modulaire. J'imagine qu'on a le même genre d'helpers dans le monde python. A discuter en fonction des choix techniques qui seront fait quand on commencera à choisir les outils de développement.
Author
Member
De @philippe.entzmann : voir le proto https://git.pdplibre.org/Construction_PA/PA_Communautaire/src/branch/main/packages/pac0-cli
Member

l'avantage du script bash, c'est qu'il y a moins de dépendance.

l'avantage du script bash, c'est qu'il y a moins de dépendance.

@ha wrote in #5 (comment):

l'avantage du script bash, c'est qu'il y a moins de dépendance.

c'est vrai

Mais pour des outils CLI plus riche on ne pourra pas le faire facilement en bash.
Par exemple:

  • le suivi d'une facture pour avoir le détail de toutes les étapes pour une seule facture
  • le suivi d'une entreprise (point de vue fournisseur) pour avoir le suivi des factures émises et leur status
  • même chose du point de vue client pour avoir le suivi des factures reçues
  • la vues des PA avec qui on a des interactions
  • une page pour interroger le service PEPPOL
  • une page pour avoir des stats sur une brique en particulier

à discuter

@ha wrote in https://git.pdplibre.org/Construction_PA/PA_Communautaire/issues/5#issuecomment-107: > l'avantage du script bash, c'est qu'il y a moins de dépendance. c'est vrai Mais pour des outils CLI plus *riche* on ne pourra pas le faire facilement en bash. Par exemple: - le suivi d'une facture pour avoir le détail de toutes les étapes pour **une seule facture** - le suivi d'une entreprise (point de vue fournisseur) pour avoir le suivi des factures émises et leur status - même chose du point de vue client pour avoir le suivi des factures reçues - la vues des PA avec qui on a des interactions - une page pour interroger le service PEPPOL - une page pour avoir des stats sur une brique en particulier à discuter
Author
Member

Je viens de parcourir la branche script_pdplibre et je me fait les réflexions suivantes :

  • le script bash est assez pratique pour lancer des commandes systèmes tel que "docker run ...", pour installer des packages ou pour lancer des tests
  • le script python, est assez pratique pour accéder aux objets métiers et aux services divers et surement pour faire des mises en pages complexe à la console.

Comment pourrait on apporter de la cohérence dans ces 2 mondes.

Philippe a appelé son prototype pac-cli, hugue-antoine a appelé son script /pdplibre

Dans d'autres environnement, on trouve un dossier /bin qui contient tous les point d'entrée.

On pourrait mettre dans /bin :

  • le script pdplibre
  • un lien ou un script qui lance pac-cli

Le problème: il faudrait trouver 2 noms cohérents qui permettent de bien comprendre la différence entre les 2 commandes.

On pourrait aussi tout wrapper dans pdplibre qui se chargerait ensuite de lancer pac-cli, mais ça va devenir vitre copieux et cela va demander de la mise à jour chaque fois que l'on va ajouter une commande dans pac-cli, il faudra la wrapper dans pdplibre.

On peux aussi parier qu'il va y a voir d'autres commandes spécifiques que l'on peut ranger dans /bin. Par exemple lancer une mise en production.

C'est une proposition, a vous de me dire ce que vous en pensez.

Je viens de parcourir la branche script_pdplibre et je me fait les réflexions suivantes : - le script bash est assez pratique pour lancer des commandes systèmes tel que "docker run ...", pour installer des packages ou pour lancer des tests - le script python, est assez pratique pour accéder aux objets métiers et aux services divers et surement pour faire des mises en pages complexe à la console. Comment pourrait on apporter de la cohérence dans ces 2 mondes. Philippe a appelé son prototype pac-cli, hugue-antoine a appelé son script **/pdplibre** Dans d'autres environnement, on trouve un dossier /bin qui contient tous les point d'entrée. On pourrait mettre dans /bin : * le script pdplibre * un lien ou un script qui lance pac-cli Le problème: il faudrait trouver 2 noms cohérents qui permettent de bien comprendre la différence entre les 2 commandes. On pourrait aussi tout wrapper dans pdplibre qui se chargerait ensuite de lancer pac-cli, mais ça va devenir vitre copieux et cela va demander de la mise à jour chaque fois que l'on va ajouter une commande dans pac-cli, il faudra la wrapper dans pdplibre. On peux aussi parier qu'il va y a voir d'autres commandes spécifiques que l'on peut ranger dans /bin. Par exemple lancer une mise en production. C'est une proposition, a vous de me dire ce que vous en pensez.

@f.piccinali : excellente question

On a un peu échangé avec @ha sur le sujet

Comme vous le savez je suis assez fan de l'approche uv tool et uv tool install:

# lancement direct
uvx pac0-cli
# ou installation comme `tool` global
uv tool install pac0-cli

Un script bash pdplibre pourrait s'assurer de la présence de uv et le lancer.

Le débat est ouvert ...

je serai d'avis d'attendre encore avant de ce décider car il me semble surtout important de bien lister les usages que l'on veut faire porter à cette commande.

D'ici là on peut compléter le premier message de ce ticket avec les usages espérés.

@f.piccinali : excellente question On a un peu échangé avec @ha sur le sujet Comme vous le savez je suis assez fan de l'approche [uv tool](https://docs.astral.sh/uv/guides/tools/) et [uv tool install](https://docs.astral.sh/uv/guides/tools/#installing-tools): ```shell # lancement direct uvx pac0-cli # ou installation comme `tool` global uv tool install pac0-cli ``` Un script bash pdplibre pourrait s'assurer de la présence de uv et le lancer. Le débat est ouvert ... je serai d'avis d'attendre encore avant de ce décider car il me semble surtout important de bien lister les usages que l'on veut faire porter à cette commande. D'ici là on peut compléter le premier message de ce ticket avec les usages espérés.
Author
Member

@ha
Salut hughe-antoine,
je viens de discuter avec philippe et on te propose l'organisation suivante :

  • on fait un dossier /bin où on rangera toutes les commandes
  • on transfere ton script pdplibre dans ce dossier /bin
  • on fait un lien /bin/pac_cli vers /packages/.../pack-cli

Comme ça en fonction des évolutions on rangera tous les nouveaux scripts dans /bin. Et ensuite on pourra les attraper et décider de les refactoriser soit dans pdplibre, soit danc pack-cli

Il y a certains scripts qui pourraient apparaitre et nécessiter d'être indépendant de /bin/pdplibre. Par exemple des scripts lancé par les robotes d'intégration continue.

Si cette proposition ne te choque pas, je peux vers la manip sur ta branche et ensuite on merge sur le master. J'en profiterai pour vérifier les docs.

@ha Salut hughe-antoine, je viens de discuter avec philippe et on te propose l'organisation suivante : - on fait un dossier /bin où on rangera toutes les commandes - on transfere ton script pdplibre dans ce dossier /bin - on fait un lien /bin/pac_cli vers /packages/.../pack-cli Comme ça en fonction des évolutions on rangera tous les nouveaux scripts dans /bin. Et ensuite on pourra les attraper et décider de les refactoriser soit dans pdplibre, soit danc pack-cli Il y a certains scripts qui pourraient apparaitre et nécessiter d'être indépendant de /bin/pdplibre. Par exemple des scripts lancé par les robotes d'intégration continue. Si cette proposition ne te choque pas, je peux vers la manip sur ta branche et ensuite on merge sur le master. J'en profiterai pour vérifier les docs.
Member

Bonjour @f.piccinali,

Ça me convient.

Bonjour @f.piccinali, Ça me convient.
Sign in to join this conversation.
No milestone
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Construction_PA/PA_Communautaire#5
No description provided.