Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Leçons de comptanar pour Scribouilli #185

Open
DavidBruant opened this issue Mar 6, 2024 · 1 comment
Open

Leçons de comptanar pour Scribouilli #185

DavidBruant opened this issue Mar 6, 2024 · 1 comment

Comments

@DavidBruant
Copy link
Contributor

DavidBruant commented Mar 6, 2024

Dans les épisodes précédents de Scribouilli...

Plusieurs pull requests ont eu pour objectif de rendre GitAgent plus neutre vis à vis de scribouilli, notamment pour pouvoir être utilisé dans comptanar, notamment : #110 #113 #134 #173 #180

Et donc, ça donne cette PR côté comptanar : comptanar/comptanar.github.io#68

Le passage à GitAgent a été assez facile, a bien simplifié le code à pleins d'endroits

Il y a quelques trucs qui ont été modifiés tout de même :

  • le fichier qui, ici, s'appelle actions/file.js a été internalisé à GitAgent. Et en fait, quand on lis ces méthodes, elles ne font rien d'autres que composer des appels à des méthodes de gitAgent. Aussi, ces opérations sont finalement des opérations assez classiques de manipulation de contenu stocké dans un repo git. Alors, ça fait sens de les internaliser (par opposition aux actions de page/article qui sont spécifiques aux rangement de fichier Scribouilli. Des actions spécifiques aux fichiers de comptanar ont été créé en miroir)
  • Dans comptanar, j'ai clarifié la relation entre différents éléments (store, repo local, repo distant) en renommant des fonctions, là où le nom n'était pas toujours clair (genre envoyerPersonne, ça envoie du store au repo local ? ou alors ça push ? La question n'existait pas avant le repo local, mais maintenant, si. Pareil pour syncPersonnes). Le renommage a eu le bon goût de me faire réaliser quand les données sont synchronisées d'un endroit à un autre... et quand il y a des trous. Notamment, en cas de failliblePush, on tente un push, et en cas d'échec, on tente un pull+push. Le pull amène des contenus "nouveaux" (au sens où ils sont dans le repo, mais pas reflétés dans le store et donc les interfaces utilisateur ne sont plus à jour). Ça m'a amené à rajouter un hook onMergeSuccessful (qui fait un cool miroir avec onMergeConflict qui était déjà là) (et qui m'a permis de comprendre pourquoi git n'a pas de hook post-pull, mais uniquement un hook post-merge. Un pull contient un merge et il est dur d'imaginer un use case où on voudrait un hook post-pull sans les autres scénarios de merge)
  • J'ai dû changé aussi les messages des résolutions de conflit qui étaient hardcodés bien pour Scribouilli. J'imagine qu'il faudrait rendre ça mieux paramétrable, mais je ne sais pas bien comment et j'ai un peu la flemme pour le moment
  • Dans l'usage, j'ai mis un test pour s'économiser de recréer systématiquement un nouveau gitAgent (ce qui rejoint les réflexions de setCurrentRepositoryFromQuerystring fait beaucoup de taf même quand le repo ne change pas #181 )

J'imagine qu'il s'agit de 2 changements qui seront les bienvenus dans Scribouilli. Notamment le deuxième, parce que je pense qu'on va subir le même problème de synchro (c'est déjà le cas, je crois), même s'ils sont plus rares dans le cas de Scribouilli (et que de tout façon, un refresh et c'est résolu)

@DavidBruant
Copy link
Contributor Author

Ce commit est cool aussi
comptanar/comptanar.github.io@6f1c856

Il rend invisible la création de dossier manquants quand on essaye de créer un fichier dans un dossier qui n'existe pas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant