5 points par GN⁺ 2025-01-20 | 1 commentaires | Partager sur WhatsApp
  • Forgejo est un forge logiciel léger auto-hébergé destiné aux équipes qui souhaitent exploiter elles-mêmes leur plateforme de développement, avec un accent mis sur la réduction de la charge d’installation et de maintenance
  • Il est géré par une communauté sous l’égide de Codeberg e.V., et le projet comme son processus de développement restent fondés sur du logiciel libre
  • Il offre un environnement facile à adopter pour les utilisateurs habitués à GitHub, tout en étant conçu pour leur permettre de contrôler directement la propriété de la plateforme et la productivité de la collaboration
  • Il propose de nombreuses fonctionnalités tout en conservant de faibles exigences serveur, et indique nécessiter des ressources d’un ordre de grandeur inférieur à celles d’autres forges
  • Il vise un développement collaboratif distribué, avec la sécurité, l’extensibilité, la fédération et la protection de la vie privée au cœur de son approche

Positionnement et mode de fonctionnement de Forgejo

  • Forgejo est un forge logiciel léger auto-hébergé qui permet d’exploiter une plateforme de développement logiciel sur ses propres serveurs
    • Il vise une installation et une maintenance simples, avec une faible charge d’administration
    • Il est possible de créer un compte sur Codeberg ou sur d’autres instances publiques, ou bien de le télécharger directement pour l’auto-héberger
  • L’opérateur est une communauté inclusive sous l’égide de Codeberg e.V.
    • Codeberg e.V. est présenté comme une organisation démocratique à but non lucratif
    • Forgejo affirme pouvoir être considéré comme fiable en tant que logiciel libre exclusivement
  • Le produit met l’accent sur la sécurité, l’extensibilité, la fédération et la protection de la vie privée
    • Les différences avec d’autres forges logicielles peuvent être consultées sur la page de comparaison

Orientation fonctionnelle et domaines de participation

  • Forgejo a pour objectif d’aider à reprendre le contrôle du processus de développement logiciel, à auto-héberger les projets et à permettre aux contributeurs de se concentrer ensemble sur la livraison de logiciels de qualité
  • Utilisabilité et charge d’exploitation

    • Il met en avant une gestion de projet simple et accorde de l’importance à l’expérience utilisateur pour la collaboration et la productivité
    • Il fournit un environnement familier aux utilisateurs de GitHub, afin de leur permettre de migrer vers une plateforme dont ils sont propriétaires
    • Il réduit la charge d’installation et de maintenance afin de permettre d’exploiter sa propre forge logicielle sans expertise technique spécialisée
  • Logiciel libre et collaboration distribuée

    • Il propose de nombreuses fonctionnalités tout en conservant un profil serveur léger
    • Forgejo lui-même comme le processus de développement du projet utilisent du logiciel libre
    • Il propose une orientation permettant le développement logiciel collaboratif au moyen d’une plateforme distribuée
  • Domaines auxquels contribuer

1 commentaires

 
GN⁺ 2025-01-20
Commentaires sur Hacker News
  • D’après la FAQ, la prononciation est forˈd͡ʒe.jo, et pour une oreille du Midwest américain, cela sonne un peu comme « 4 Jay yo ». Apparemment, cela signifie « forge » en espéranto
    C’est un fork de Gitea, mais géré comme un projet à but non lucratif, et tout est sous licence libre (GPL) sans upsell premium, ce qui est appréciable. J’aime aussi le fait que la communication de la communauté passe par Matrix et Mastodon
    Il semble que Codeberg l’utilise, et en apparence cela ressemble à Gitea/GitHub, donc rien de déroutant. Le code source est visible via la petite icône de branche en haut à droite, et il est hébergé sur Codeberg. Ce que j’ai appris aujourd’hui, c’est que Codeberg lui-même est une instance de Forgejo
    https://forgejo.org/2024-02-forking-forward/
    https://v10.next.forgejo.org/explore/repos
    https://codeberg.org/forgejo/forgejo

    • « Sans upsell premium », il me semble que c’est aussi le cas de Gitea
      Si j’ai bien compris, le fork est apparu parce que Gitea a créé une société qui développait des fonctionnalités sur mesure à la demande d’entreprises, pas vraiment à cause de signes annonçant un changement de licence
    • En espéranto, de la même façon que kafejo signifie « endroit pour le café », autrement dit café, forgejo veut plutôt dire « endroit de forge »
    • En réalité, je pensais que forgejo était simplement le mot espéranto pour « forge », mais quand quelqu’un a fait remarquer que cela pouvait se lire comme « fora gejo », c’est-à-dire une personne gay lointaine, il était déjà trop tard. Depuis, ils expliquent visiblement que le nom est inspiré de forĝejo, le mot espéranto pour forge
    • Cela fait un moment que Gitea et Forgejo ont divergé, donc je me demandais quelles étaient aujourd’hui les principales différences, mais il était difficile de trouver un comparatif direct
  • Le Fedora Project serait en train de migrer vers cela : https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/

  • Je me suis demandé pourquoi Forgejo s’était séparé de Gitea, et en cherchant, cela ressemble encore à un cas où des créateurs/mainteneurs de logiciel libre open source sans argent se font avoir par le haut, et peut-être aussi par le bas
    À en juger par l’annonce de la création de la société Gitea, le libre open source à lui seul ne permettait pas de couvrir les coûts, et il semble qu’il y ait eu des profiteurs fortunés que la licence MIT autorise
    Le passage essentiel est celui-ci : « Pendant des années, nous avons essayé plusieurs approches pour soutenir les mainteneurs et le projet, notamment des primes, du sponsoring direct et des subventions. Beaucoup de personnes formidables et quelques entreprises se sont montrées très généreuses, mais certaines entreprises, tout en réalisant un chiffre d’affaires supérieur au PIB de certains pays, utilisaient Gitea dans leurs produits principaux sans reverser leurs améliorations »
    Je n’aime pas particulièrement Bruce Perens, mais quand il dit « Nous avons un formidable programme d’aide sociale aux entreprises, et ses bénéficiaires sont les entreprises les plus riches du monde. En revanche, à moins que le développeur ne travaille pour ces entreprises, il reçoit très peu de compensation », il vise juste sur le problème
    À l’inverse, quand les fondateurs ont créé une entreprise, la communauté a réagi négativement, mais il paraît que c’était moins à cause de la création de l’entreprise elle-même que parce que cette entreprise détenait le domaine et la marque. Cela peut sembler être un détail, mais je ne connais pas les circonstances exactes
    Quoi qu’il en soit, hors des développeurs amateurs et en dehors de FAANG, cela ressemble à l’exemple n°187 d’un échec du FOSS

    • Le FOSS n’est pas un modèle économique. Cela ne l’a jamais été, et ne le sera jamais
      Le logiciel libre était à l’origine un mouvement éthique, qui n’avait pas besoin de faire passer une source de revenus en priorité. Son objectif n’était pas le développement durable au sens économique, mais la liberté des utilisateurs. Nulle part dans l’idée que « les utilisateurs doivent avoir la liberté de faire ce qu’ils veulent avec le logiciel » il n’est écrit « et il faut pouvoir verser un salaire à certains développeurs qui œuvrent pour cet objectif éthique »
      D’après l’histoire de l’OSI elle-même, à un certain moment, des gens ont commencé à penser que le modèle de développement ouvert était aussi intrinsèquement bon pour les affaires ; Netscape s’est joint au mouvement, puis certains se sont regroupés pour rebaptiser le logiciel libre en open source
      http://web.archive.org/web/20071115150105/https://opensource.org/history/
      Le mot FOSS me fait penser à une forme de bouddhisme d’entreprise à l’américaine. Comme lorsque la pleine conscience et la méditation sont arrachées à leur profond contexte religieux d’origine pour devenir des programmes de développement personnel, au point d’être difficiles à reconnaître pour les pratiquants d’origine. Le logiciel libre ne portait pas sur la soutenabilité du développement, mais sur le fait de faire ce qui est juste : garantir la liberté des utilisateurs ; le reste n’était qu’un moyen au service de cette fin. Puis, à un moment, le moyen est devenu la fin, et l’on s’est mis à se demander pourquoi le FOSS ne finance pas naturellement les coûts
    • Beaucoup de développeurs open source se méprennent encore en croyant que l’environnement ressemble toujours à celui d’il y a 15 à 20 ans, quand l’essentiel provenait de développeurs amateurs ayant un bon emploi la journée et produisant des logiciels pour la réputation
      Ceux qui ont bien lu l’évolution, c’est GitLab. Ils ont trouvé un point d’équilibre où proposer un produit à la manière open source tout en couvrant leurs coûts d’exploitation, et ils ont gagné à la fois la confiance et des revenus ; c’est une réussite
      Si l’on veut vivre de son travail open source, il faut le gérer comme une activité commerciale et utiliser les mécanismes économiques appropriés. Sinon, ses propres efforts peuvent finir par se retourner contre soi comme une forme d’exploitation. Je ne parle pas de malveillance, mais l’équité est une question d’équilibre, et si votre travail acharné ne vous traite pas correctement, c’est aussi une forme d’injustice
    • Les licences copyleft sont justement là pour limiter dans une certaine mesure ce type de parasitisme, mais elles ne semblent plus « à la mode »
      Il est difficile de comprendre qu’on refuse d’ajouter à la licence des clauses copyleft supplémentaires, tout en espérant au final que les entreprises se comporteront de bonne foi comme si ces clauses existaient
      Des entreprises comme Google aiment les licences permissives, et vont même jusqu’à financer des alternatives sous licence MIT/BSD à des composants courants, comme toybox
      Forgejo v9 et au-delà semble effectivement être sous licence GPL
    • Je ne vois pas exactement comment cette logique s’applique ici. Qu’est-ce que cette « aide sociale aux entreprises » est censée désigner dans ce cas ? Presque personne ne tire de profit de Gitea, et certainement pas les grandes entreprises technologiques
      Les récits sur les méfaits de la big tech sont utiles pour justifier les projets open source qui changent de licence, mais ici cela ne colle pas. En général déjà, cela convainc mal, mais dans ce cas les mainteneurs eux-mêmes ne semblent jamais avoir tenu ce discours
      Des projets comme MongoDB, ElasticSearch et Redis ont gagné en popularité parce qu’ils étaient open source, et il est fort probable qu’ils aient limité la concurrence pendant des années parce qu’il est difficile de rivaliser avec le gratuit. Puis, plus tard, ils ont fini par tourner le dos aux utilisateurs. Si MongoDB 1.0 avait été un produit commercial, personne ne l’aurait utilisé ; l’argent qu’ils ont gagné n’a donc existé au départ que parce que c’était open source
    • Le FOSS est une stratégie de distribution, pas un modèle économique
  • Ce qui est intéressant avec Forgejo, c’est que le travail sur la fédération des forges (federation) est en cours
    https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
    Dans un monde idéal, GitHub et GitLab prendraient aussi en charge la fédération, mais cela n’arrivera probablement pas
    Comme alternative dans le même espace de problèmes, il y a des approches P2P comme https://radicle.xyz/

    • C’est dommage qu’aujourd’hui, « fédération » en soit pratiquement venu à signifier « implémentation d’ActivityPub ». Trop de projets s’enlisent dans le travail complexe consistant à mapper leur propre modèle de données sur ActivityPub, dans les débats sur le bon mapping, et dans la rédaction de propositions d’extension du standard
      Une fédération utile entre instances Forgejo pourrait être résolue avec OIDC et quelques webhooks seulement. Par exemple, pour la collaboration entre instances, les forks et les pull requests. Je ne vois pas pourquoi une fédération entre Forgejo et Mastodon serait nécessaire, ni même ce que cela signifierait exactement
    • La page sur la fédération du site de Forgejo (https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/) est ancienne et la plupart des liens ne fonctionnent pas
      Ils publiaient auparavant des rapports d’avancement annuels jusqu’en 2023, mais ce site non plus ne semble plus accessible : https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
      Malgré tout, la dernière mention de la fédération dans les mises à jour mensuelles date d’octobre, et il y était souligné que la fédération était la « priorité absolue » du projet Forgejo et le resterait à l’avenir
      https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
    • Après plusieurs années d’expérience, j’en arrive presque à la conclusion que ces interfaces construites au-dessus de Git n’ont pas tant d’intérêt. Git lui-même est déjà distribué, donc c’est un modèle qui va au-delà de la fédération
      Exposer un dépôt Git sur le réseau est très simple via HTTP ou SSH, et cela prend aussi en charge un flux de revue de code par e-mail. En revanche, j’aime bien l’approche de git-appraise, qui consiste à stocker les revues dans le dépôt lui-même
      https://github.com/google/git-appraise
      Les pipelines CI/CD aussi peuvent être intégrés simplement, si l’on peut les déclencher par push. Mais nous avons construit des interfaces centralisées au-dessus de Git, et maintenant nous essayons de les faire s’intégrer entre elles. Quand on pense au fait que Git est déjà décentralisé, cela donne l’impression d’aller à rebours
    • GitLab prend en charge ActivityPub à titre expérimental : https://gitlab.com/gitlab-org/gitlab/-/blob/v17.1.0-ee/doc/development/activitypub/actors/index.md
      Voir aussi : https://gitlab.com/groups/gitlab-org/-/epics/11247#why
    • J’attends vraiment la fédération avec impatience. Si je peux héberger mon travail sur mon propre Forgejo tout en utilisant avec d’autres instances la découvrabilité / le suivi des issues, j’aurai le meilleur des deux mondes
      Pour l’instant, je fais du mirroring entre mon Forgejo auto-hébergé, github.com et gitlab.com, et mon instance Forgejo relève plus du hobby d’auto-hébergement que d’une infrastructure indispensable
      GitLab Cells semble pouvoir aller dans la même direction, et les documents de conception mentionnent la fédération
      https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
  • Pendant des années, je suis passé de Gogs à Gitea, puis à Forgejo, et c’est vraiment un excellent logiciel.
    Dans 90 % des cas, il suffit largement de mettre un dépôt Git personnel sur un serveur SSH. Si vous voulez simplement avoir un dépôt Chezmoi accessible depuis tous vos ordinateurs, la famille Forgejo n’apporte pas grand-chose de plus.
    Mais dans les 10 % restants, c’est-à-dire quand vous voulez partager du code en privé avec quelques amis, c’est excellent. Le gratuit est meilleur que l’offre payante de GitHub et, de toute façon, si vous allez l’exécuter pour ces 10 % de projets, autant utiliser le reste aussi comme dépôt Git personnel de référence

    • J’utilise Onedev pour mes projets : https://github.com/theonedev/onedev
      Il y a aussi un kanban et un éditeur de code
    • La première fois que j’ai fait tourner un serveur Git, c’était avec GitLab CE utilisé au travail. Je le faisais tourner sur un serveur basé sur Atom avec trop peu de RAM, et c’était tellement lent que le chargement des pages expirait.
      En passant à Gitea, j’ai pu respirer, et quand Fedora a choisi Forgejo pour son serveur de dépôts, Forgejo a attiré mon attention.
      Mes besoins sont simples : essentiellement un dépôt central de fichiers pour mes notes et mon code source. J’ai testé une migration de Gitea 1.21 vers Forgejo 9 et cela s’est fait sans aucune friction.
      J’envisage sérieusement de migrer, mais à long terme je me demande encore lequel des deux sera le mieux pris en charge et le plus adapté à un usage gratuit
    • Je me demande si vous avez ressenti une différence importante entre Gitea et Forgejo en dehors de l’idéologie. Il semble que Forgejo ait aussi ajouté Actions entre-temps
    • Au début, j’avais installé Gogs, mais je suis passé à GitLab pour GitLab CI et d’autres fonctionnalités. C’était toutefois relativement trop lourd, et il devenait difficile de suivre les mises à jour, donc j’ai fini par migrer vers Gitea et Drone CI. Certains préféreront peut-être Woodpecker CI.
      Honnêtement, je pense que ma prochaine étape sera soit Forgejo avec Forgejo Actions pour le CI/CD (https://forgejo.org/docs/next/user/actions/), soit un retour plus radical vers Jenkins
  • Le slogan n’est pas très explicite. Il a fallu que je fasse défiler la page principale une ou deux fois avant de comprendre quel était l’objectif, à savoir une alternative auto-hébergée à GitHub.
    Dans le logiciel, le mot « forge » peut être interprété de plusieurs façons, donc il vaudrait mieux l’expliciter plus tôt

    • « forge » est utilisé pour décrire ce type de solution d’hébergement depuis SourceForge, voire avant.
      Techniquement, des systèmes de l’époque comme Redmine auraient aussi pu être appelés des forges, mais j’ai l’impression que le terme s’est imposé depuis
    • Qualifier GitHub de référence qui définit la catégorie me semble aller à l’encontre de l’esprit de Forgejo. Forgejo existe par lui-même
    • L’appeler une forge logicielle est exact. C’est simplement que le terme n’est pas largement connu.
      Référence : https://en.wikipedia.org/wiki/Forge_(software)
    • C’est clairement une alternative auto-hébergée à GitHub, et je pense qu’il faut la présenter ainsi. Comme le disent d’autres commentaires, c’est encore plus évident quand on l’utilise réellement : l’interface ressemble globalement à celle de GitHub, et c’est justement un point positif. C’est familier et facile à utiliser
    • J’essayais ici de comprendre ce que « forge » voulait dire.
      Quand j’entends « forge », je pense à un outil qui transforme une matière première en produit fini. Par exemple, un atelier de forgeron qui transforme du fer en fer à cheval.
      En métaphore logicielle, cela correspondrait plutôt au fait de transformer du texte source en binaire exécutable, donc à un compilateur ou à un interpréteur.
      GitHub et SourceForge déplacent du code source d’un endroit à un autre. En forçant la métaphore, c’est plus proche d’une combinaison entre une boutique et un service de livraison. Le code source se déplace, mais il n’est pas transformé.
      Donc, du point de vue d’un ancien développeur C/C++, le fait que forge désigne un serveur Git auto-hébergé paraît assez étrange
  • Après avoir continué à faire tourner GitLab CE tout en souffrant de sa consommation élevée de CPU et de mémoire, je suis passé à Forgejo et je n’ai pas été déçu.
    Il fonctionne dans des conteneurs rootless et n’utilise pratiquement ni mémoire ni CPU. Les mises à jour se passent simplement avec un podman pull.
    Je fais maintenant aussi tourner Actions pour exécuter Jekyll et autres afin de maintenir des sites web statiques à jour.
    C’est agréable d’avoir ma propre forge capable d’importer des dépôts, des issues, etc. depuis d’autres forges comme GitHub ou GitLab, et j’attends aussi avec intérêt l’intégration plus large au Fediverse basée sur ActivityPub à venir.
    Une approche de l’hébergement de code à la fois décentralisée et connectée est quelque chose que j’ai toujours voulu, et j’ai l’impression qu’on y est presque

    • Je me demande où en est le support de la fédération. Si les pull requests et les signalements de bugs entre instances deviennent possibles, la collaboration pourrait devenir vraiment facile
  • Au fil des années, je suis passé de GitHub à GitLab auto-hébergé, puis à Gitea et enfin à Forgejo, et je ne le regrette pas.
    Forgejo est excellent, et ce sera encore mieux quand la fédération sera complète. Si l’on peut avoir des forks distribués et des pull requests sur plusieurs instances, cela résoudra le problème de fragmentation des solutions auto-hébergées.
    J’ai perdu confiance dans Gitea lorsqu’ils ont créé une entité commerciale à but lucratif soutenue par du capital-risque, et c’est précisément pour cette raison que Forgejo a été forké.
    La seule chose que j’ai perdue en quittant GitLab, c’est la plateforme CI/CD intégrée. Mais j’ai pu migrer mes pipelines vers Drone CI et les déclencher via des webhooks. Cela dit, selon la complexité des pipelines GitLab, ce n’est pas forcément toujours une option viable.
    Quoi qu’il en soit, je ne voulais pas héberger un serveur GitLab qui engloutit 5 Go de RAM pour quelques petits projets. Forgejo utilise environ 500 Mo de RAM même en pic

  • Je me demande à quoi ressemble l’expérience de revue de code. J’imagine que c’est similaire à Gitea, mais je n’ai utilisé ni l’un ni l’autre.
    J’ai récemment fait une revue de code assez sérieuse sur GitHub, et en tant qu’outil de revue de code, ça ressemblait davantage à une version jouet. À moins de concevoir tout le modèle de contrôle de source autour de cet outil, il ne me semble pas utilisable pour un vrai travail d’ingénierie, et dans ce cas d’autres éléments qui influent sur la gestion de l’historique sont sacrifiés.
    Je suis surtout habitué à Gerrit ; son modèle de base est raisonnable, mais il y a beaucoup d’angles rugueux et aussi des problèmes de performances.
    En y repensant soudain, je crois que je n’ai jamais utilisé d’outil de revue que j’aime vraiment. J’ai l’impression que le secteur tient simplement le coup sans outil réellement correct.
    De mémoire, GitLab était un peu meilleur que GitHub, mais je ne m’en souviens pas en détail.

    • J’ai conçu du code pour la conception de centrales nucléaires avec Phabricator et GitHub, donc ça me semble être un travail assez sérieux. J’aimerais mieux comprendre ce qui manque, selon vous, pour rendre la revue vraiment utilisable.
    • Je me demande si vous avez essayé Codelantis, un outil de revue pour GitHub.
  • Je me demande si, à la question « Qu’est-ce que Forgejo ? », on répondrait quelque chose comme : « Forgejo est une forge logicielle légère auto-hébergeable. Elle est facile à installer, demande peu de maintenance et fait ce qu’on lui demande. »

    • Je me demande comment on pourrait les décrire sans mentionner GitHub, BitBucket, GitLab, etc.
    • La communication est vraiment dispersée. Même le nom est assez maladroit dans le monde anglophone.
      Bien sûr, tout n’a pas besoin d’être adapté à l’anglais, et on me dit que c’est de l’espéranto, mais comme les autres parties du site ne le sont pas, la plupart des gens ne l’interpréteront probablement pas ainsi.