GitRoot

craft your forge, build your project, grow your community freely
 1# Comment contribuer au développement de GitRoot 11-2025
 2
 3Je viens tout juste de lire [cette article](https://antonin.delpeuch.eu/posts/too-much-time-on-your-hands/) 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](https://gts.gitroot.dev/@forge/statuses/01K98BCFEB9V430JD9TFQ32YZN) 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 ?
 4
 5Alors pourquoi pas de contributeurs externes sur GitRoot ?
 6
 7Je 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.
 8
 9Mais, 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.
10
11Ici, 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.
12
13## Pré-requis
14
15Il n'y a pas grand chose Ă  faire pour ĂȘtre prĂȘt Ă  aider sur GitRoot:
16
17- vous devez avoir [git](https://git-scm.com/)
18- git clone ssh://gitroot.dev
19- cd gitroot.dev
20- ./gitroot/init.sh
21
22Si vous souhaitez coder il vous faudra en plus:
23
24- [bash](https://www.gnu.org/software/bash/manual/bash.html) et [make](https://www.gnu.org/software/make/) (si vous ĂȘtes dev il y a de grandes chances que vous les aillez dĂ©jĂ )
25- installer [mise](https://mise.jdx.dev/), c'est le plus simple pour avoir tous les compilateurs dans les bonnes versions
26
27Et 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.
28
29## Avant de commencer
30
31Avant 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.
32
33Donc, 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](https://matrix.to/#/%23gitroot:matrix.org) pour en discutter.
34
35On peut également en parler par mail [contact@gitroot.dev](contact@gitroot.dev) ou sur le fediverse [@forge@gitrrot.dev](https://gts.gitroot.dev/@forge).
36
37## Qu'est-ce qu'on peut faire ?
38
39### Corriger les fautes
40
41L'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 !
42
43### Moi je veux faire du web
44
45Ce qui serait top, ce serait de créer (ou de trouver) un thÚme. Aujourd'hui GitRoot utilise [simplecss](https://simplecss.org/), et il n'a besoin que de `css classless`, il en existe beaucoup mais vous pouvez aussi créer celui de GitRoot.
46
47Le 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](http://127.0.0.1:4546/repo1).
48
49Quand vous ĂȘtes content faites une branche avec votre css dans [apex](https://gitroot.dev/worktree/app/plugins/apex/resources/styles/), puis `git add .` et `git push` je m'occupe du reste.
50
51### Moi je veux coder
52
53Bien, 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):
54
55- en golang:
56  - dans le plugin [grafter](https://gitroot.dev/worktree/app/plugins/grafter/) pouvoir afficher [autre chose](../issues/3d33-grafter-dco.md) 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.
57  - dans le plugin [silo](https://gitroot.dev/worktree/app/plugins/silo/) permettre de [grouper par fichier ou date](../issues/76ec-silo-more-selects.md)
58  - plus difficile mais j'aimerais bien avoir plus de [renderer](../issues/e6d8-apex-alert-support.md) dans [apex](https://gitroot.dev/worktree/app/plugins/apex/), par exemple les infos, warning et autre
59- en typescript:
60  - dans le plugin [pollen](https://gitroot.dev/worktree/app/plugins/pollen/) il y a un bug sur le rss [il est jamais nettoyĂ©](../issues/3986-pollen-rss-grow-infinite.md). RajoutĂ© une option (ou pas, 100 en dur me semble ĂȘtre dĂ©jĂ  pas mal) pour limiter le nombre d'`<item>`.
61  - toujours dans le plugin [pollen](https://gitroot.dev/worktree/app/plugins/pollen/) pourquoi pas rajouter un [json feed](https://en.wikipedia.org/wiki/JSON_Feed) en plus du rss. On peut serializer du json en assemblescript.
62  - plus difficile mais il serait bien de pouvoir dire au plugin [pollen](https://gitroot.dev/worktree/app/plugins/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.
63- en rust:
64  - faire ce que Ygor Ă  dit dans https://floss.social/@ygor/115474535138702961 je ne suis pas un developpeur rust et transformer des `String` en `&str` me 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](https://gitroot.dev/worktree/app/libs/rust/plugin/) et le plugin [hop](https://gitroot.dev/worktree/app/plugins/hop/).
65  - ajouter un [fakeServer](../issues/9f00-rust-sdk-fake-server-test.md) au [plugin sdk](https://gitroot.dev/worktree/app/libs/rust/plugin/) pour faciliter les tests d'un plugin, voici celui de go https://gitroot.dev/worktree/app/libs/golang/plugin/test/fakeserver.go.html
66
67### Moi je suis sysadmin
68
69Parfait il y a de quoi faire aussi:
70
71- aujourd'hui il y a trop d'étapes pour releaser GitRoot, [automatiser](../issues/dba0-simplify-release.md) au maximum m'aiderais beaucoup.
72- si vous avez un petit de place sur un de vos serveurs, [tester de dĂ©ployer une instance](../doc/tutorials/deploy_instance.md) 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.
73
74### Moi je veux tester
75
76- tous les tests sont en bash dans [testsuite/runtest.sh](../app/testsuite/runtest.sh) se trouve le plus gros test, à cÎté il y en d'autres
77  - exécutez les pour voir s'ils marchent chez vous me parait une bonne premiÚre tùche
78  - en créer de nouveaux
79  - améliorer les existants en sortant par exemple des fonctions helper comme `quiet_git()`, `report()` ou `mySleep()` dans d'autres fichiers (et les importer) serait d'une grande aide pour le projet. Vous pouvez aussi créer des nouveaux pour `killGitroot()` qui est fait en début de chaque fichier. Ou `createProject()` qui consiste à chaque fois à aller dans le root repository et ajouter son nom dans le fichier `.gitroot/repositories.yml`.
80
81### Moi je veux juste réfléchir/discutter
82
83Tu es le bienvenue sur le [channel gitroot](https://matrix.to/#/%23gitroot:matrix.org) dans matrix. Ou par mail `contact [AT] gitroot.dev` ou sur le fediverse `@forge@gitroot.dev` [sur ce serveur](https://gts.gitroot.dev/@forge).