Comment contribuer au développement de GitRoot 11-2025
Je viens tout juste de lire cette article et je n’arrête pas d’y penser. Je le met en perspective des contributeurs de GitRoot. Je suis le seul contributeur (à part mon ami Damien qui a corrigé de nombreuses fautes, merci à lui) sur ce projet. Et comme le montre ce toot j’ai un travail pour payer les factures, 1 femme et 2 enfants qui m’occupent pratiquement tout le reste du temps. À ça je rajoute GitRoot, pour le moment je m’éclate et je tiens bon mais pour combien de temps je vais y arriver ?
Alors pourquoi pas de contributeurs externes sur GitRoot ?
Je me dit souvent que le projet est jeune, trop jeune, pour que ça soit accessible à un developpeur externe. Parfois je me dit qu’un meilleurs système de ticket serait nécessaire pour avoir un label “welcome new contribution”. Parfois je me dit qu’une fois que j’aurais déployé les plugins sdk et fait un market place de plugins, enfin vous pourrez venir m’aider à faire que GitRoot soit un vrai projet open-source.
Mais, car il y a un mais, cette liste ne s’arrêtera jamais. Soyons franc il y aura toujours un truc de plus à faire avant que vous puissiez m’aider à faire que GitRoot soit au top. J’ai donc décidé de faire la chose la plus simple à l’heure actuelle pour vous expliquer comment m’aider: un article de blog.
Ici, je vais vous expliquer tout ce qu’il est possible de faire en l’état actuel du projet. Pas ce qu’il sera possible de faire un jour peu être, mais ce que vous pouvez faire là maintenant. Je réitèrerais ce genre d’article tant que nécessaire.
Pré-requis
Il n’y a pas grand chose à faire pour être prêt à aider sur GitRoot:
- vous devez avoir git
- git clone ssh://gitroot.dev
- cd gitroot.dev
- ./gitroot/init.sh
Si vous souhaitez coder il vous faudra en plus:
- bash et make (si vous êtes dev il y a de grandes chances que vous les aillez déjà)
- installer mise, c’est le plus simple pour avoir tous les compilateurs dans les bonnes versions
Et voila vous êtes bon pour commencer à aider. Mais que faire ? Et bien comme tout bon developpeur je vais vous répondre “ça dépend”. Ça dépend de ce que vous voulez faire ! Je vais lister dessous un ensemble de taches possibles, vous choisissez.
Avant de commencer
Avant de vous dire ce que vous pouvez faire, je me dit qu’il serait bien de vous expliquer ce que moi je fais. Donc pour cette version 0.3.0 ma priorité absolue est de faire en sorte que GitRoot build GitRoot lui même. Aujourd’hui à chaque release je fais les binaires sur ma macine et je les scp. Je veux qu’avec cette version 0.3.0 cela ne soit plus le cas.
Donc, si j’arrive à me retenir, je ne devrais pas faire les tickets qui suivent. Vous avez tout le temps dont vous souhaitez pour les faire. Le plus simple est, je pense, de nous retrouver sur matrix channel gitroot pour en discutter.
On peut également en parler par mail contact@gitroot.dev ou sur le fediverse [forge@gitrrot.dev](https://gts.gitroot.dev/@forge).
Qu’est-ce qu’on peut faire ?
Corriger les fautes
L’anglais n’est pas ma langue d’origine et je pense qu’il y a beaucoup de fautes, donc une tache pourrais être de lire tous les md dans /doc/, /blog/ et pourquoi pas /issues/. Vous corrigez, faites une branche et poussez. Je m’occupe du reste !
Moi je veux faire du web
Ce qui serait top, ce serait de créer (ou de trouver) un thème. Aujourd’hui GitRoot utilise simplecss, et il n’a besoin que de css classless, il en existe beaucoup mais vous pouvez aussi créer celui de GitRoot.
Le plus simple pour essayer est de lancer la commande make testsuite quand elle a fini rendez vous dans cd /tmp/repo1 éditez le fichier style.css puis git add . git commit -m "try style" et git push, ouvrez http://127.0.0.1:4546/repo1.
Quand vous êtes content faites une branche avec votre css dans apex, puis git add . et git push je m’occupe du reste.
Moi je veux coder
Bien, pas de soucis, voici une liste de petites tâches (enfin elles me paraissent petites mais si c’est pas le cas pour vous dites le moi):
- en golang:
- dans le plugin grafter pouvoir afficher autre chose dans le 1er message d’un graft. La bannière est en dure dans le plugin, il faudrait l’exporter dans la conf du plugin et l’utiliser.
- dans le plugin silo permettre de grouper par fichier ou date
- plus difficile mais j’aimerais bien avoir plus de renderer dans apex, par exemple les infos, warning et autre
- en typescript:
- dans le plugin pollen il y a un bug sur le rss il est jamais nettoyé. Rajouté une option (ou pas, 100 en dur me semble être déjà pas mal) pour limiter le nombre d’
<item>. - toujours dans le plugin pollen pourquoi pas rajouter un json feed en plus du rss. On peut serializer du json en assemblescript.
- plus difficile mais il serait bien de pouvoir dire au plugin pollen de générer un rss avec le contenu des fichiers. Ça permettrait à GitRoot d’avoir un rss affichant les articles du blog par exemple. Aujourd’hui il ne met dans le rss que les commits.
- dans le plugin pollen il y a un bug sur le rss il est jamais nettoyé. Rajouté une option (ou pas, 100 en dur me semble être déjà pas mal) pour limiter le nombre d’
- en rust:
- faire ce que Ygor à dit dans https://floss.social/@ygor/115474535138702961 je ne suis pas un developpeur rust et transformer des
Stringen&strme parle pas beaucoup mais si vous l’êtes je suis sûr que c’est une petite tâche. Le code se trouve dans le plugin sdk et le plugin hop. - ajouter un fakeServer au plugin sdk pour faciliter les tests d’un plugin, voici celui de go https://gitroot.dev/worktree/app/libs/golang/plugin/test/fakeserver.go.html
- faire ce que Ygor à dit dans https://floss.social/@ygor/115474535138702961 je ne suis pas un developpeur rust et transformer des
Moi je suis sysadmin
Parfait il y a de quoi faire aussi:
- aujourd’hui il y a trop d’étapes pour releaser GitRoot, automatiser au maximum m’aiderais beaucoup.
- si vous avez un petit de place sur un de vos serveurs, tester de déployer une instance juste pour le fun. Peu être vous pourrez améliorer la doc ou trouver quelque chose qui ne marche plus. Ou ajouter un paragraphe pour utiliser gitroot avec nginx ou autre.
Moi je veux tester
- tous les tests sont en bash dans testsuite/runtest.sh se trouve le plus gros test, à côté il y en d’autres
- exécutez les pour voir s’ils marchent chez vous me parait une bonne première tâche
- en créer de nouveaux
- améliorer les existants en sortant par exemple des fonctions helper comme
quiet_git(),report()oumySleep()dans d’autres fichiers (et les importer) serait d’une grande aide pour le projet. Vous pouvez aussi créer des nouveaux pourkillGitroot()qui est fait en début de chaque fichier. OucreateProject()qui consiste à chaque fois à aller dans le root repository et ajouter son nom dans le fichier.gitroot/repositories.yml.
Moi je veux juste réfléchir/discutter
Tu es le bienvenue sur le channel gitroot dans matrix. Ou par mail contact [AT] gitroot.dev ou sur le fediverse @forge@gitroot.dev sur ce serveur.