GitLab est un logiciel libre de forge basĂ© sur git proposant les fonctionnalitĂ©s de wiki, un systĂšme de suivi des bugs, un systĂšme dâintĂ©gration continue et de livraison continue. GitLab est dĂ©veloppĂ© par GitLab Inc. qui Ă fait son introduction en bourse en octobre 2021, atteignant lâobjectif que câĂ©tait fixĂ© les initiateurs du projet depuis le dĂ©but.
Cette trajectoire vers un financement boursier à de fortes implications sur le choix des fonctionnalités et des corrections de bug qui sont traitées.
GitLab sâest peu Ă peu orientĂ© vers une solution clĂ© en main prenant en charge la chaĂźne de dĂ©veloppement et de dĂ©ploiement. En brisant la complexitĂ© de la gestion de version, la solution est devenue simpliste, elle encourage de nombreuses mauvaises pratiques qui ont pour effet dâanĂ©antir les progrĂšs dans ce domaine que permet git.
Le parcours du dĂ©veloppement de GitLab Ă favoriser lâarrivĂ©e de nouvelles fonctionnalitĂ©s au dĂ©triment de la stabilisation de lâexistant ceci pour obtenir de nouveaux clients.
De nombreuses fonctionnalitĂ©s, en particulier sur la gestion des versions, ne fonctionnent pas correctement. Pire, jâai Ă©tĂ© tĂ©moin de demande dâĂ©volutions qui sont des anti-modĂšles, les arrivants Ă©tant gĂ©nĂ©ralement des personnes qui ne connaissaient pas git et ces avantages mais qui souhaitait retrouver leurs rĂ©flexes venant de svn, voir de systĂšme de gestion de version plus ancien. Voir Anti-pattern et Allow disabling "Squash and merge" for a project. Bref, GitLab encourage lâutilisation de git Ă la maniĂšre de svnâŠ
GitLab a su sĂ©duire ces utilisateurs en leurs donnant des fonctionnalitĂ©s quâils pensaient avoir besoin du fait de leur manque de connaissances sur le systĂšme de gestion de version git. Cela marquera dâailleurs longtemps, je pense, le dĂ©veloppement logiciel, les « simplifications » proposĂ©es par GitLab permettant de gagner du temps, au mĂ©pris de la qualitĂ©, plus prĂ©cisĂ©ment au mĂ©pris du suivi des changements. Mais câest trĂšs conforme Ă notre monde oĂč le gain de productivitĂ© est prioritaire sur tout autre considĂ©ration.
Le logiciel Ă fait largement ces preuves, mais sa capacitĂ© Ă survivre nâest pas envisageable pour un « entrepreneur » de la finance, car ce modĂšle se passe de lui.
Ces personnes thĂ©orisent une distinction entre âOpen Source de droiteâ (entreprise commerciale qui ouvre son code) et âOpen Source de gaucheâ (sans entreprise derriĂšre, donc avec dâautres challenges au niveau de la fiabilitĂ© et du financement)
Le nombre de problĂšmes ouverts (« open issues ») est alarmant, pourtant GitLab applique des rĂšgles de fermeture automatiques drastiques, le moindre bug remontĂ©, qui nâa pas une description claire de la maniĂšre de le reproduire et qui nâest pas rapidement confirmĂ© est fermĂ©. Jâai fait plusieurs rapports de bugs et seul ceux que jâai fait au titre dâun client « Premium » ont Ă©tĂ© prises en comptes, et que peu de ces bugs sont aujourdâhui rĂ©solus.
GitLab sur la plateforme.
Lorsque jâai choisi GitLab pour gĂ©rer la plateforme, lâapplication nĂ©cessitait 1 Go de RAM et 1 Go de swap. CâĂ©tait dĂ©jĂ beaucoup, mais un Raspberry PI 3 pouvait faire lâaffaire.
Aujourdâhui GitLab nĂ©cessite au minimum 8 Go de RAM⊠Câest, de loin, lâoutil le plus gourmand en ressources dans le domaine.
Dâailleurs au prix des VM (Ordinateur virtuel que les entreprises louent dans le « cloud »), cela me semble remettre en cause lâintĂ©rĂȘt de GitLab, autant prendre une solution chez Micro$oft (Git-hub) ou chez Atlassian (Bitbucket). Bref, vu le coĂ»t de la VM, dans tous les cas, il est raisonnable de toujours payer Ă minima une licence Premium.
Pour ma part, je cherche une solution auto-hĂ©bergĂ©e et qui tourne sur une machine basse consommation ; GitLab ne rentre plus dans ce cahier des charges. Cependant, jâai lâensemble de ma configuration est aujourdâhui basĂ©e sur GitLab, mâen passer Ă un coĂ»t non nĂ©gligeable.
Le GitLab a plantĂ©âŠ
Bon, en soit, mĂȘme si ce nâest pas normal, je ne peux pas tout mettre sur le dos de GitLab qui tournais sur une machine avec 4 Go de RAM et probablement pas assez de swapâŠ
Cependant, ce fut lâoccasion de dĂ©couvrir que les sauvegardes ne fonctionnaient pas toujours. Je creuserais peut-ĂȘtre ce point, car je suis presque certain dâarriver Ă le reproduire.
Autre surprise, lâinstallation de GitLab sur Raspberry Pi OS Bullseye ne fonctionne pasâŠ
De maniĂšre gĂ©nĂ©rale, ma confiance dans GitLab est aujourdâhui pas trĂšs grande, et je suis mĂȘme inquiet pour son avenir, car jâai vraiment lâimpression que les dĂ©veloppeurs de GitLab ne maĂźtrisent plus vraiment le code de ce monstre.
Mais une leçon qui se confirme concernant GitLab, ce nâest pas une application qui tourne toute seule dans son coin, elle demande une Ă©quipe pour lâadministrer, câest un travail plutĂŽt lourd et trĂšs incompatible avec ce quâattentent les entreprises comme les particuliers dâun tel outil.
Remplacement de GitLab
Jâai du en urgence remonter un serveur git Ă lâaide de Gitea, un logiciel que jâavais Ă©galement Ă©valuĂ© lors du choix initial et jâai Ă©tĂ© trĂšs agrĂ©ablement surpris de son Ă©volution.
Jâai finalement Ă©crit des scripts permettant de remonter une sauvegarde GitLab dans Gitea. Actuellement ces scripts prennent en charge les dĂ©pĂŽts de sources, les wikis. Ils transforment les groupes GitLab en organisations Gitea, prend en compte quelques cas particuliers.
Pour la suite, je ne sais pas trop, il me faut un outil dâintĂ©gration et de dĂ©ploiement (« CI/CD ») ; je nâĂ©carte pas lâidĂ©e de remonter un GitLab pour cela, puisque cela mâĂ©viterait un travail considĂ©rable et pĂ©rilleux sur le code de dĂ©ploiement.
Liens
- Présentation de GitLab sur Wikipédia
- ProblÚmes ouvert de Gitlab (« issues ») :
- Provide packages for Raspberry Pi OS Bullseye
- MR diff/changes view shows old commits/changes ouvert en 2016, fermĂ©e Ă la faveur dâune Ă©volution 𧟠Use merge refs for diffs toujours ouverte Ă ce jour. En gros, cela veut dire quâil nâest pas possible de faire confiance Ă un simple diff avec GitLab.
- GitLab a pris conscience en 2019 quâils avaient des problĂšmes de consommation de mĂ©moire anormal : Why we created a Memory team at GitLab mais pour lâinstant, il nây a aucune amĂ©lioration, bien au contraire.
- Les systĂšmes de gestion de version, une prĂ©sentation de lâuniversitĂ© dâOrlĂ©ans.
- Quâest qui ne va plus avec Subversion ? un article de 2011âŠ
- Le site de Gitea
኿