Codeberg, la forge en devenir pour les projets libres ?

Posté par  . Édité par vmagnin, BAud, FrancoisA30, Jona, L'intendant zonard, Benoît Sibaud, Marc, palm123, cg et bobble bubble. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes :
51
25
avr.
2024
Communauté

Face aux risques que fait peser GitHub sur le monde des logiciels libres suite à son rachat par Microsoft en 2018, une alternative semble avoir percé. Cette dépêche propose un tour d'horizon des problèmes posés par GitHub et expose comment Codeberg pourrait y répondre.
Logo Codeberg

Sommaire

Les points forts de Codeberg

L'association Codeberg e.V. 1 et son projet Codeberg.org ont été fondés en janvier 2019, suite au rachat par Microsoft de GitHub. En plus d'un statut associatif à but non lucratif, ce qui limite les risques de disparition du jour au lendemain, Codeberg est basé en Europe (à Berlin), ce qui est un plus pour nos données personnelles.

Son logo représente un sommet enneigé sur fond de ciel bleu. En effet, en Allemand, der Berg veut dire la montagne et on pourrait donc traduire Codeberg par une « montagne de code ». Et effectivement, la communauté compte fin avril 2024 plus de 102 000 utilisateurs et plus de 129 000 projets y sont hébergés. L'association qui dirige le projet compte plus de 400 membres. Le financement s'effectue par les dons (déductible des impôts en Allemagne) et/ou contributions aux projets sous-jacents à la forge.

La forge est basée sur Forgejo, logiciel libre sous licence MIT, dont le nom vient de l'Esperanto forĝejo, ce qui est cohérent avec l'attention portée à la langue de l'utilisateur et aux problèmes de traduction (service Weblate). Comme avec GitLab, la licence libre implique qu'un projet peut posséder sa propre instance s'il le souhaite. On notera que Forgejo est un fork de Gitea, lui-même fork de Gogs, et est donc écrit en langage Go, langage sous licence BSD avec un brevet. Le projet Forgejo, évidemment hébergé sur Codeberg, est très actif avec plus de 900 Pull Requests acceptées depuis un an.

La problématique du tout GitHub

GitHub, lancé en 2008, est devenu la plus grosse plateforme d'hébergement de codes sources, utilisée par un grand nombre de projets majeurs du monde du libre (Firefox, Matrix, Yunohost…). Ce qui par effet d'attraction — et de réseau centralisant, contraire au choix de git décentralisé par nature — conduit souvent à faire de Github un choix par défaut, facilitant les interactions avec les autres projets et permettant d'accéder à une large base de contributeurs potentiels. Quand on cite une URL GitHub dans un réseau social, on peut d'ailleurs voir apparaître ce genre de message :

Contribute to Someone/my_project development by creating an account on GitHub.

Cependant, si ce service fourni par Microsoft est actuellement encore gratuit, il est soumis à son bon-vouloir, avec le risque de voir se répéter l'épisode SourceForge (publicités trompeuses, installateurs modifiés, usurpation d'identité de projets partis ailleurs, etc.).

Par ailleurs, derrière une communication favorable à l'open source, le code de la forge GitHub est volontairement fermé. Vous ne pouvez donc pas avoir votre propre instance de GitHub. En outre, cela laisse un flou sur l'exploitation de nos données (au sens large, le code lui-même et nos données personnelles, l'hébergement étant délégué). Avec l'arrivée du projet Copilot, il est cependant certain que nos codes servent à alimenter un outil d'IA, permettant à Microsoft de monétiser des suggestions de code en faisant fi des questions de licence. Une partie d'un code sous licence libre pourrait potentiellement se retrouver injectée dans un projet avec une licence incompatible et de surcroît sans citation de l'auteur.

Des alternatives possibles

On pense tout d'abord à GitLab, logiciel lancé en 2011, qui permet d'avoir sa propre instance serveur pour maîtriser l'ensemble (client et serveur sont libres). Parmi les grands projets libres, on trouve en particulier GNOME et Debian qui utilisent leur propre instance GitLab CE (Community Edition), logiciel sous licence MIT. Mais il faut nuancer : la forge GitLab.com utilise GitLab EE (Enterprise Edition) qui est propriétaire et propose des fonctionnalités supplémentaires. GitLab suit donc un modèle dit open core. GitLab compterait plus de 30 millions d'utilisateurs inscrits et l'entreprise GitLab Inc., lancée en 2014, génère plusieurs centaines de millions de dollars de revenus. On notera enfin qu'en 2018, le site migre de Microsoft Azure à Google Cloud Platform (USA), ce qui a posé des problèmes d'accès dans certains pays.

Autres projets de forges libres plus modestes :

  • Codingteam.net (une initiative française, service clôturé en 2019).
  • SourceHut http://sr.ht (et https://sourcehut.org/), initié par Drew DeVault.
  • Disroot basé sur Forgejo comme Codeberg, mais il ne semble pas avoir attiré de projets d'envergure (le portail, sorte de Framasoft néerlandais, est néanmoins à recommander).
  • Chez un Chaton (GitLab ou Gitea pour la plupart).
  • L'auto-hébergement : chez-vous, dans un fablab, en datacenter sur serveur dédié…

Pour vous faire venir sur Codeberg

Premières impressions

La page principale est accueillante et annonce que Codeberg.org ne vous piste pas et n'utilise pas de cookies tiers. Les statistiques actuelles sont affichées : nombre de projets, d'utilisateurs et de membres de l'association. Chose agréable, vous avez la possibilité de choisir le français parmi les nombreuses langues proposées pour l'interface. Petite icône qui attire l'attention : l'activité de chaque dépôt peut être suivie grâce à un flux RSS. Sinon, l'organisation générale est très semblable à celle de GitHub ou GitLab et la prise en main de Codeberg se fait donc sans effort.

Fonctionnalités avancées

  • Codeberg pages : permet de disposer d'un site web statique pour le projet
  • Forgejo actions : pour dérouler automatiquement les actions nécessaires à l'intégration continue (CI/CD)
  • Weblate : pour gérer les traductions de votre projet. On peut d'ailleurs y constater que parmi les traductions de Forgejo, le Français est dans le peloton de tête.

Projets ayant migré ou ayant un miroir sur Codeberg

Un certain nombre de projets importants utilisent désormais Codeberg, ce qui est à la fois un gage de confiance et assure une base de contributeurs a minima :

  • libreboot : remplacement libre de BIOS/UEFI.
  • Conversations : le client majeur XMPP sur Android.
  • WideLands : jeu libre basé sur le concept de Settlers II.
  • LibreWolf : fork de Firefox axé sur la vie privée.
  • F-Droid : magasin d'applications libres pour Android.
  • FreeBSD : miroir de https://cgit.freebsd.org/
  • FreeCAD : miroir officiel.
  • Forgejo : fork communautaire de Gitea suite à la privatisation de celui-ci en 2022.
  • Fedilab : client Android pour le Fediverse.
  • irssi : client IRC.
  • Peppermint OS : une distribution Linux avec bureau minimaliste.
  • DivestOS : un fork de LineageOS orienté sur la protection de la vie privée.
  • VeggieKarte : un service pour trouver des restaurants végétariens/végétaliens.

Comment migrer vers Codeberg ?

Migrer le code source et l'éventuel Wiki associé ne devrait pas poser de problème particulier. Il suffit de configurer git pour pusher vers la nouvelle forge. Cette page décrit comment migrer l'ensemble de votre projet (incluant les issues, le wiki, les Pull Request, etc.) vers Codeberg : https://docs.codeberg.org/advanced/migrating-repos/

Concernant les Workflows (CI), bien qu'il n'y ait pas de garantie de compatibilité avec les Actions Github, la syntaxe se veut similaire pour faciliter la transition : https://forgejo.org/2023-02-27-forgejo-actions/

Au-delà de l'aspect technique, il reste aussi à faire migrer la communauté d'utilisateurs (la présence fortement suivie sur Mastodon peut être un avantage).

Conclusion

Codeberg est un outil prometteur. Il reste pour la communauté du logiciel libre à le faire grandir. Rappelons les statistiques : 100 millions de développeurs sur GitHub, 30 millions utilisant GitLab et 100 000 pour Codeberg. Le potentiel est grand, l'un des enjeux est de financer l'association pour accompagner la croissance de la communauté, tout en faisant monter en puissance l'infrastructure informatique.

Sources / Liens

Controverse GitHub

Forges diverses

Codeberg


  1. e.V. est l'abréviation de eingetragener Verein (association déclarée). 

  • # Dons déductibles des impôts

    Posté par  (site web personnel) . Évalué à 4 (+2/-0).

    "Le financement s'effectue par les dons (déductible des impôts)"

    Des impôts français? Ou seulement des impôts allemands?

    "There's no such thing as can't. You always have a choice." - Ken Gor

    • [^] # Re: Dons déductibles des impôts

      Posté par  (site web personnel) . Évalué à 10 (+11/-0).

      En Allemagne pour sûr recognized by German tax authorities as tax-exempt non-profit organization for the common good.

      Après il y a la déductibilité fiscale des dons ne peut pas être limitée au territoire du pays, l’État ne peut pas refuser de défiscaliser un don dans l’Union européenne au motif qu’il n’est pas fait sur son territoire. Il lui appartient quand même d’accepter ou refuser de considérer le don comme défiscalisable. (référence C-318/07 chez InfoCuria - Jurisprudence de la Cour de justice) — résumé en français du jugement par le service juridique de la Commission européenne : « Cependant, lorsqu’un organisme reconnu d’intérêt général remplit les conditions imposées par la législation de l’État du donateur, il ne saurait faire l’objet de discrimination au seul motif qu’il n’est pas établi sur le territoire de cet État. ») tiré de https://linuxfr.org/news/dons-aux-associations-episode-12#toc-petit-rappel-sur-les-imp%C3%B4ts-en-france-tir%C3%A9-de-l%C3%A9pisode-10

  • # heptapod for ever

    Posté par  (site web personnel) . Évalué à 4 (+7/-3).

    Pour ma part, je n'hesite pas, j'utilise heptapod (https://heptapod.net/), un fork de gitlab qui permet d'utiliser le meilleur gestionnaire de sources : mercurial, en plus du support git.

    • [^] # Re: heptapod for ever

      Posté par  . Évalué à 2 (+1/-0).

      +1, j'y suis passé aussi, permet de continuer a utiliser mercurial et tortoiseHg tout en supportant des subrepos git.

  • # J'espère voir une décentralisation

    Posté par  (site web personnel) . Évalué à 9 (+8/-1).

    Dans l'opensource depuis 20 ans, j'ai vu beaucoup de choses dont sourceforge, googlecode, bitbucket et le self-hosting. Clairement GitHub est le plus utilisé pour la plupart des projets que j'utilise.

    Pour ma part je n'aime ni Git, ni GitHub (par pur choix personnel, rien à voir avec Microsoft) et je dois admettre que je suis ennuyé de voir cette plateforme comme la « référence » surtout avec des projets comme crates.io qui nécessite carrément d'avoir un compte GitHub pour y poser ses paquets.

    Go est un peu plus permissif et permet de définir des dépendances sur des sites externes en revanche mais c'est bien plus marginal dans la communauté Rust.

    Mon SCM de choix et inchangé est Mercurial depuis 2008 et ça m'amuserait de faire un paquet externe pour Rust/Go sans Git ni GitHub juste pour voir à quel point cela emmerderait les gens, habitué à « ce standard ».

    git is great because linus did it, mercurial is better because he didn't

  • # radicle

    Posté par  . Évalué à 6 (+7/-1). Dernière modification le 25 avril 2024 à 21:29.

    A noter qu'il existe une forge décentralisée (en Rust) : https://radicle.xyz
    Elle devrait sortir en version 1.0 d'ici peu.

    • [^] # Re: radicle

      Posté par  (site web personnel) . Évalué à 5 (+4/-0). Dernière modification le 26 avril 2024 à 09:20.

      C'est également dans les objectifs de Forgejo et une des raisons qui les ont poussées à faire un hard fork de Gitea en début d'année.

      There is no spoon...

      • [^] # Re: radicle

        Posté par  . Évalué à 2 (+2/-0).

        En effet c'est super intéressant d'intégrer ActivityPub, cependant il y a autant de différences entre Forgejo et Radicle qu'entre Mastodon et Nostr.
        ActivityPub permet une fédération de serveurs, tandis que Nostr et Radicle sont complètement décentralisé. Pour l'un il y a des relays un peu partout sur le Net et on se connecte sur les relay de son choix avec des clients de son choix, pour l'autre chaque utilisateur a son propre noeud en local sur son PC (radicle-node) qui communique avec d'autres noeuds publiques.

        On verra quel protocole va percer, pour ma part je trouve Radicle très prometteur.

  • # Pub pour Codeberg : bonne idée

    Posté par  . Évalué à 10 (+10/-2).

    C'est local, une asso, ça repose sur du libre, en plus maintenu par eux (même si je ne sais pas à quel point forgejo est juste un rebranding de gitea pour le moment). Merci pour cette pub pour Codeberg.

    J'auto-héberge forgejo, c'est léger, facile à mettre en place. J'en suis content.

    risques que fait peser GitHub sur le monde des logiciels libres suite à son rachat par Microsoft en 2018

    Mais même avant. L'idée que Microsoft a tant de contrôle sur le monde du libre est déplaisante, mais GitHub était déjà une plateforme propriétaire avant ça. Même si c'est encore pire maintenant, ça n'a jamais été une bonne idée d'aller y enfermer son projet libre.

    De même, les risques ne font pas que peser : les effets négatifs sont déjà bien présents aujourd'hui :

    • on renforce un GAFAM
    • on renforce un effet réseau
    • on renforce un single point of failure
    • on continue à tout faire dans un seul pays qui n'est pas nécessairement sur le même continent que nous et doté d'une législation parfois peu désirable
      • on force les copaines à utiliser un logiciel propriétaire pour participer à son projet libre
      • on renforce un logiciel propriétaire au lieu d'un logiciel libre

    Framagit, sr.ht, Codeberg : maintenant les plateformes libres de qualité il y a le choix, à nous d'aller vers elles et de choisir de les renforcer elles. Et pour limiter la centralisation, l'auto-hébergement est une option. Certains projets comme KDE ou Freedesktop le font (et n'ont pas de mal à recevoir des contributions).

    Si on pense que le libre est la bonne manière de faire, c'est ensemble entre projets libres qu'on peut s'aider et se renforcer mutuellement. C'est même peut-être le seul moyen d'arriver à contrer le pouvoir immense des gros acteurs propriétaires qui ne cherchent pas à construire une informatique respectueuse. Alors fonçons.

    Je suis très d'accord avec ce billet de Drew DeVault : It is important for free software to use free software infrastructure.

    • [^] # Re: Pub pour Codeberg : bonne idée

      Posté par  . Évalué à 3 (+1/-0).

      +1
      Merci à toi et aux participants pour les autres adresses.
      Et à l'auteur pour la découverte.
      Ça mérite bien un tableau comparatif chez Wikipédia.

    • [^] # Re: Pub pour Codeberg : bonne idée

      Posté par  . Évalué à 5 (+3/-0).

      (même si je ne sais pas à quel point forgejo est juste un rebranding de gitea pour le moment).

      Pour donner quelques infos: C'était un "soft-fork" au début, surtout une copie avec changement de l'apparence/logos et quelques corrections avec contributions au projet parent grâce aux tests qu'ils ont développé.

      Depuis février cette année ils officialisent le fork complet et préviennent que les changements peuvent être incompatibles ne permettant plus une migration de Gitea vers Forgejo de façon transparente et sans risques de pertes de données.
      La communauté autour du fork est suffisemment importante pour le maintenir d'après leur message ici:

      https://forgejo.org/2024-02-forking-forward/

    • [^] # Re: Pub pour Codeberg : bonne idée

      Posté par  (site web personnel) . Évalué à 1 (+1/-1).

      "on continue à tout faire dans un seul pays qui n'est pas nécessairement sur le même continent que nous et doté d'une législation parfois peu désirable"

      Sur les sanctions de Github envers les développeurs iraniens, l'UE et l'Allemagne appliquent le même genre de sanctions. Et on ne peut pas se réjouir du futur proche dans le cadre d'une guerre.

      Une réponse technique serait d'éviter d'utiliser des protocoles centralisés tels que HTTP.

  • # Association ?

    Posté par  (site web personnel) . Évalué à 5 (+3/-0).

    Visiblement les associés qui ont créé ce projet y ont mis les moyens. Mais qui sont-ils ? La page Wikipedia cite les développeurs du code mais pas les 25 membres fondateurs ?

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Association ?

      Posté par  . Évalué à 5 (+3/-0).

      Codeberg dispose d'un service "blog" pour assurer sa communication avec une catégorie Letters from Codeberg ; on peut y voir des infos concernant la vie de l'association, les mises a jour des différents services, les incidents, des appels à contribution. Pas vu grand-chose concernant les finances.

      • [^] # Re: Association ?

        Posté par  . Évalué à 4 (+2/-0).

        concernant les aspects financiers, selon ce ticket, ils sont accessibles une fois membre de l'association. La transparence est de mise, mais obtenir les infos de manière plus ouverte serait intéressant.

  • # Brevet Gogs

    Posté par  (site web personnel) . Évalué à 1 (+0/-0).

    "Gogs, et est donc écrit en langage Go, langage sous licence BSD avec un brevet."

    Un lien vers le brevet en question?

  • # Logo

    Posté par  (site web personnel) . Évalué à 6 (+3/-0). Dernière modification le 27 avril 2024 à 09:53.

    Le logo est sympa par sa simplicité :

    • une montagne (en forme de pyramide ou plus probablement de tétraèdre blanc) sur fond de ciel bleu (le tout dans un cercle)
    • un diagramme camembert louche avec centre décalé et 3 portions blanc, bleu clair, bleu moins clair (en fait il y a un léger dégradé blanc vers bleu dans une portion). Ce n'est un pacman ou un casque de moto à visière.

    Bref le logo est sympa, simple et efficace.

    https://codeberg.org/Codeberg/Design

  • # Un gitlab « éduc nat'»

    Posté par  . Évalué à 2 (+1/-0). Dernière modification le 27 avril 2024 à 11:06.

    Il existe une alternative « gitlab » pour les personnels de l'Éducation Nationale dans le projet plus global des « apps »

    https://portail.apps.education.fr/services/forge-des-communs-numeriques-educatifs
    (nécessite une authentification éducation nationale)

    La page publique du projet https://projet.apps.education.fr/ ne mentionne pas encore le gitlab renommé « la forge »

    J'ai du mal à dire du bien de mon employeur en ce moment alors je ne boude pas ce petit plaisir ponctuel.

    • [^] # Re: Un gitlab « éduc nat'»

      Posté par  (site web personnel) . Évalué à 3 (+3/-0).

      J'ai du mal à dire du bien de mon employeur en ce moment alors je ne boude pas ce petit plaisir ponctuel.

      Sauf que le gitlab de l'EN est la version Entreprise, ce n'est la solution libre … désolé pour ce petit plaisir.

      Si proche du but pour au final céder … quel gâchis !

  • # Le match est déjà plié. Le gagnant rafle tout !

    Posté par  (site web personnel) . Évalué à 2 (+3/-1).

    En plus d'un statut associatif à but non lucratif, ce qui limite les risques de disparition du jour au lendemain

    Je crois qu'au contraire, les coûts pourraient rapidement devenir difficiles à supporter par une association en cas de succès de la plate-forme !

    la communauté compte fin avril 2024 plus de 102 000 utilisateurs

    C'est le principe même d'Internet qu'un acteur / une plate-forme finisse par être dominant sur son domaine d'activité.
    A 102K utilisateurs par rapport à 30M sur GitLab (que je trouve déjà marginal !) et 100M pour GitHub, on peut autant dire que Codeberg "semble avoir percé" que d'une quenotte dans la bouche d'un nouveau né :-)

    Par exemple, lors de l'Advent of Code de cette année, 100% de ceux qui ont publié leur code l'ont fait sur GitHub. Déjà rien sur GitLab malgré ses 30M d'utilisateurs…

    GitHub, lancé en 2008, est devenu la plus grosse plateforme d'hébergement de codes sources, utilisée par un grand nombre de projets majeurs du monde du libre
    Ce qui […] conduit souvent à faire de Github un choix par défaut, facilitant les interactions avec les autres projets et permettant d'accéder à une large base de contributeurs potentiels.

    Ce n'est pas forcément qu'un choix par défaut, mais un choix délibéré pour tous ceux qui veulent surtout exposer leurs logiciels à la communauté de développeurs la plus importante ou aux productions d'entreprises.

    Il ne s'agit pas que d'accéder à une base de contributeurs potentiels, contributions qui sont de toutes façons plus qu'occasionnelles (même sur GitHub) pour la plupart des dépôts de code, mais surtout à une base d'utilisateurs potentiels.

    Avec l'arrivée du projet Copilot, il est cependant certain que nos codes servent à alimenter un outil d'IA, permettant à Microsoft de monétiser des suggestions de code en faisant fi des questions de licence.

    Je n'en suis pas si certain. Vu le nombre de projets non terminés, dysfonctionnels ou codés de façon non professionnelle, à leur place je serais assez sélectif sur les codes que je donnerais à manger à mes IA !
    Et pour ce qui est d'entraîner celles-ci sur du code sûr, c'est encore plus limité vu l'inculture généralisée en matière de codage sécurisé.

    Migrer le code source et l'éventuel Wiki associé ne devrait pas poser de problème particulier. Il suffit de configurer git pour pusher vers la nouvelle forge.

    Le fait que toutes ces forges utilisent Git est à la fois :
    * un moyen simple de supprimer le risque de perte de son code et de son historique par une sauvegarde locale
    * une façon d'utiliser l'ensemble de ces plates-formes comme lieu d'exposition de ses productions logicielles : GitHub + GitLab + Codeberg :-)

    Le tout étant de gérer ses versions de code source chez soi ou sur l'un de ses serveurs, GitHub ou un autre n'étant dans ce cas qu'une sorte de "faux primaire" (pour reprendre une expression liée à la gestion de DNS)…

    • [^] # 100% des gagnants ont tenté leur chance

      Posté par  . Évalué à 9 (+8/-0).

      Par exemple, lors de l'Advent of Code de cette année, 100% de ceux qui ont publié leur code l'ont fait sur GitHub. Déjà rien sur GitLab malgré ses 30M d'utilisateurs…

      Le 100% devrait alerter. En fait, ils ont juste créé le compte AoC en utilisant leur compte Github (via OAuth) et ils ont coché la case "Link to https://github.com/${leur_nom}" dans les réglages. Il n'y a pas d'intégration pour d'autres forges sur Advent of Code, donc oui, forcément c'est 100% :-)

      • [^] # Re: 100% des gagnants ont tenté leur chance

        Posté par  (site web personnel) . Évalué à 1 (+1/-0).

        Il n'y a pas d'intégration pour d'autres forges sur Advent of Code, donc oui, forcément c'est 100% :-)

        Bien vu ! On ne peut en effet s'authentifier qu'avec GitHub, Google, Twitter ou Reddit. Autant pour moi.

        Enfin, ça montre quand même que l'auteur n'a pas jugé utile de se lier à GitLab. Sans doute pensait-il (comme moi avant la lecture de cet article) que cette forge ne rassemblait que quelques dizaines/centaines de milliers de personnes et que ça n'en valait pas la peine !

  • # Fossil

    Posté par  (site web personnel, Mastodon) . Évalué à 5 (+3/-0).

    Je me permet de rappeler ici l'existence Fossil, système de gestion de version décentralisé, qui fournit dans un seul binaire de 5 Mo :

    • gestion de version décentralisée
    • serveur web intégré
    • synchro automatique et synchro hors ligne
    • tickets
    • forum
    • chat
    • wiki
    • annotations techniques sur les commits
    • site web du projet
    • alertes par e-mail
    • distribution de packages/binaires non versionnés

    Le stockage des données se fait dans une base de données SQLite. Le fonctionnement est très léger, ça prend très peu de ressources, ça juste marche :)

    Ce DVCS est utilisé par SQLite notamment (les développeurs de SQLite ont développé Fossil pour leurs besoins), et par Paheko ;)

    « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.