5 पॉइंट द्वारा GN⁺ 2025-01-20 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Forgejo उन टीमों के लिए एक self-hosted हल्का software forge है जो अपने development platform को खुद चलाना चाहते हैं, और इसका फोकस installation तथा maintenance का बोझ कम करने पर है
  • इसे Codeberg e.V. के अंतर्गत एक community चलाती है, और project तथा development process दोनों free software आधारित बने रहते हैं
  • यह GitHub से परिचित users के लिए migration आसान बनाता है, साथ ही platform ownership और collaboration productivity पर users का सीधा नियंत्रण रखने के लिए डिज़ाइन किया गया है
  • यह भरपूर features देता है, लेकिन कम server requirements बनाए रखता है, और कहता है कि अन्य forges की तुलना में single-digit स्तर के कम resources की ज़रूरत होती है
  • यह security, scalability, federation और privacy को केंद्र में रखकर distributed collaborative development को लक्ष्य बनाता है

Forgejo की स्थिति और संचालन का तरीका

  • Forgejo एक self-hosted हल्का software forge है, जो आपको अपने server पर software development platform चलाने देता है
    • इसका लक्ष्य installation और maintenance को आसान बनाना और management overhead कम रखना है
    • आप Codeberg या अन्य public instances पर account बना सकते हैं, या इसे download करके खुद self-host भी कर सकते हैं
  • इसे Codeberg e.V. के अंतर्गत एक समावेशी community संचालित करती है
    • Codeberg e.V. को एक लोकतांत्रिक non-profit organization के रूप में प्रस्तुत किया गया है
    • Forgejo कहता है कि यह पूरी तरह free software होने के कारण भरोसेमंद है
  • product का फोकस security, scalability, federation और privacy पर है
    • दूसरे software forges से इसका अंतर comparison page पर देखा जा सकता है

फीचर दिशा और भागीदारी के क्षेत्र

  • Forgejo का लक्ष्य software development process पर नियंत्रण वापस पाना, projects को self-host करना, और प्रतिभागियों को मिलकर अच्छी quality का software देने पर ध्यान केंद्रित करने में मदद करना है
  • usability और operational burden

    • यह simple project management को प्रमुखता देता है और collaboration तथा productivity के लिए user experience को महत्व देता है
    • यह GitHub users के लिए परिचित environment देता है, ताकि वे user-owned platform पर आसानी से जा सकें
    • installation और maintenance का बोझ कम करके यह बिना विशेषज्ञ तकनीकी ज्ञान के भी अपना software forge चलाने में मदद करता है
  • free software और distributed collaboration

    • यह समृद्ध features देते हुए भी कम server profile बनाए रखता है
    • Forgejo स्वयं और project development process दोनों में free software का उपयोग करता है
    • यह distributed platform के माध्यम से collaborative software development को संभव बनाने की दिशा प्रस्तुत करता है
  • योगदान के क्षेत्र

1 टिप्पणियां

 
GN⁺ 2025-01-20
Hacker News की राय
  • FAQ के मुताबिक उच्चारण forˈd͡ʒe.jo है, और मिडवेस्ट अमेरिकी कानों को यह “4 Jay yo” जैसा सुनाई देता है। कहा जाता है कि Esperanto में इसका मतलब Forge है
    यह Gitea का fork है, लेकिन अच्छा यह है कि इसे non-profit के रूप में चलाया जाता है और premium upsell के बिना सब कुछ free license (GPL) में है। मुझे यह भी पसंद है कि community communication Matrix और Mastodon पर होती है
    लगता है Codeberg इसका इस्तेमाल करता है, और ऊपर से यह Gitea/GitHub जैसा दिखता है, जिसमें कोई दिक्कत नहीं। source code ऊपर दाईं ओर छोटे branch icon से देखा जा सकता है, और Codeberg पर hosted है। आज पता चला कि Codeberg खुद एक Forgejo instance है
    https://forgejo.org/2024-02-forking-forward/
    https://v10.next.forgejo.org/explore/repos
    https://codeberg.org/forgejo/forgejo

    • “premium upsell नहीं” तो Gitea में भी ऐसा ही नहीं है क्या, ऐसा लगता है
      मेरी समझ में, fork इसलिए बना क्योंकि Gitea ने कंपनियों के अनुरोध पर custom features बनाने वाली एक कंपनी बनाई थी, न कि इसलिए कि license पलटने जैसे बहुत संकेत थे
    • Esperanto में जैसे kafejo का मतलब “coffee place”, यानी cafe होता है, वैसे forgejo भी “forge place” के करीब है
    • असल में लगता है कि उन्होंने सोचा था कि “forge” का Esperanto शब्द forgejo है, लेकिन जब किसी ने बताया कि forgejo को “fora gejo”, यानी दूर रहने वाला gay व्यक्ति जैसा समझा जा सकता है, तब तक देर हो चुकी थी। इसलिए अब लगता है वे समझाते हैं कि यह forge के Esperanto शब्द forĝejo से प्रेरित है
    • Gitea और Forgejo को अलग हुए कुछ समय हो गया है, इसलिए मैं जानना चाहता था कि अभी मुख्य अंतर क्या हैं, लेकिन सीधी comparison material ढूंढना मुश्किल था
  • कहा जाता है कि Fedora Project इसी तरफ migrate कर रहा है: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/

  • मुझे जिज्ञासा थी कि Forgejo, Gitea से अलग क्यों हुआ, तो खोजने पर यह फिर से ऐसा मामला लगा जहां बिना पैसे वाले free open source creators/maintainers ऊपर से, और शायद नीचे से भी, पिसते हैं
    Gitea के incorporation announcement को देखें तो लगता है कि सिर्फ free open source से वे खर्च नहीं उठा पा रहे थे, और MIT license की अनुमति का फायदा उठाने वाले अमीर free riders भी थे
    मुख्य बात यह हिस्सा है: “कई वर्षों तक हमने maintainers और project को support करने के लिए bounties, direct sponsorship, grants जैसे कई तरीके आजमाए। कई बेहतरीन individuals और कुछ companies बेहद उदार रहीं, लेकिन कुछ companies कुछ देशों की GDP से भी ज्यादा revenue कमाते हुए भी Gitea को अपने core products में इस्तेमाल करती थीं और improvements वापस नहीं देती थीं”
    Bruce Perens मुझे खास पसंद नहीं हैं, लेकिन उनका यह कहना समस्या पर बिल्कुल उंगली रखता है: “हमारे पास एक शानदार corporate welfare program है, और users दुनिया की सबसे अमीर companies हैं। इसके उलट, अगर developers उन companies में काम नहीं करते, तो उन्हें लगभग कोई compensation नहीं मिलता”
    दूसरी तरफ, जब founders ने company बनाई तो community ने विरोध किया; कहा जाता है कि समस्या company बनाने से ज्यादा इस बात से थी कि उस company के पास domain और trademark थे। देखने में यह छोटी वजह लगती है, लेकिन अंदर की details नहीं पता
    कुल मिलाकर, hobby developers और FAANG के बाहर यह FOSS के fail होने का case #187 जैसा दिखता है

    • FOSS कोई business model नहीं है। पहले भी नहीं था और आगे भी नहीं होगा
      Free software मूल रूप से एक ethical movement था, और उसे revenue source को प्राथमिकता देने की जरूरत नहीं थी। क्योंकि लक्ष्य sustainable development नहीं, बल्कि user freedom था। “users को software से अपनी इच्छा का काम करने की freedom होनी चाहिए” इस बात में कहीं भी यह नहीं है कि “और उस ethical goal के लिए काम करने वाले कुछ developers को salary भी मिलनी चाहिए”
      OSI के अपने इतिहास के अनुसार, किसी समय लोग यह सोचने लगे कि open development model business के लिए भी intrinsically अच्छा है, Netscape जुड़ गया, और कुछ लोगों ने मिलकर free software को open source के रूप में rebrand कर दिया
      http://web.archive.org/web/20071115150105/https://opensource.org/history/
      FOSS शब्द मुझे American-style corporate Buddhism जैसा लगता है। जैसे mindfulness और meditation को उनके मूल गहरे धार्मिक context से अलग करके self-improvement program बना दिया गया, वैसे ही यह भी ऐसा रूप बन गया जिसे मूल practitioners पहचानना मुश्किल समझें। Free software sustainable development के बारे में नहीं था, बल्कि user freedom नाम की सही चीज करने के बारे में था, और बाकी सब उस उद्देश्य के साधन थे। लेकिन किसी बिंदु पर साधन ही उद्देश्य बन गया, और लोग हैरान होने लगे कि FOSS अपने आप costs क्यों नहीं उठाता
    • कई open source developers अभी भी यह गलतफहमी रखते हैं कि माहौल 15–20 साल पहले जैसा है, जहां दिन में अच्छी नौकरी करने वाले hobby developers द्वारा reputation के लिए बनाया गया software केंद्र में था
      जिसने trend सही पढ़ा वह GitLab है। उसने open source तरीके से product देते हुए भी operating costs निकालने का balance point ढूंढ लिया, और trust तथा revenue दोनों हासिल किए, तो यह अच्छा किया
      अगर open source work से आजीविका कमानी है, तो उसे business की तरह चलाना होगा और उचित business mechanisms इस्तेमाल करने होंगे। नहीं तो अपनी मेहनत कभी न कभी खुद अपने खिलाफ exploitation जैसी बन सकती है। मैं malicious intent की बात नहीं कर रहा, लेकिन fairness balance का मामला है, और अगर आपकी मेहनत आपको सही treatment नहीं दिला पाती, तो वह भी unfair है
    • Copyleft license ऐसे free riding को कुछ हद तक रोकने के लिए ही होता है, लेकिन लगता है अब यह “fashion” में नहीं है
      License में अतिरिक्त copyleft conditions डालने से इनकार करते हुए, अंत में companies से यह उम्मीद करना कि वे goodwill से ऐसा बर्ताव करें मानो वे conditions मौजूद हों, समझना मुश्किल है
      Google जैसी companies permissive licenses पसंद करती हैं, और toybox जैसे common components के MIT/BSD license alternatives को sponsor तक करती हैं
      Forgejo v9 और उसके बाद की versions वास्तव में GPL license वाली लगती हैं
    • मुझे नहीं पता कि यहां यह logic ठीक-ठीक कैसे लागू होता है। यहां जिस “corporate welfare” की बात हो रही है, वह क्या है? Gitea से profit कमाने वाली जगहें बहुत कम हैं, और big tech तो खासकर नहीं
      Big tech वाली horror story open source projects के license पलटने को justify करने में काम आती है, लेकिन यहां फिट नहीं बैठती। आम तौर पर भी यह बहुत ठीक नहीं लगती, लेकिन इस case में तो maintainers ने खुद भी ऐसा कुछ कहा हो, ऐसा नहीं दिखता
      MongoDB, ElasticSearch, Redis जैसे projects open source होने की वजह से popular हुए, और free से compete करना कठिन होने के कारण संभव है कि वर्षों तक competition भी सीमित रहा। फिर बाद में उन्होंने users से मुंह मोड़ लिया। अगर MongoDB 1.0 commercial product होता, तो कोई उसे इस्तेमाल नहीं करता; इसलिए उन्होंने जो पैसा कमाया वह भी शुरू से open source होने की वजह से ही पैदा हुआ
    • FOSS एक distribution strategy है, business model नहीं
  • Forgejo की दिलचस्प बात यह है कि forge federation पर काम चल रहा है
    https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
    आदर्श दुनिया में GitHub और GitLab भी federation सपोर्ट करते, लेकिन शायद ऐसा नहीं होगा
    इसी problem space में विकल्प के तौर पर P2P तरीका अपनाने वाला https://radicle.xyz/ भी है

    • यह अफसोस की बात है कि आजकल “federation” का मतलब व्यवहार में लगभग “ActivityPub implementation” हो गया है। बहुत सारे project अपने data model को ActivityPub पर map करने की जटिल मेहनत, सही mapping पर बहस, और standard extension proposal लिखने में उलझे हुए हैं
      Forgejo instances के बीच उपयोगी federation सिर्फ OIDC और कुछ webhooks से भी काफी हद तक हल हो सकती है। जैसे instances के बीच collaboration, fork, pull request आदि। Forgejo और Mastodon के बीच federation की जरूरत क्यों है, यह समझ नहीं आता, और उसका मतलब क्या होगा यह भी अस्पष्ट है
    • Forgejo website का federation page(https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/) पुराना है और अधिकांश links काम नहीं करते
      पहले 2023 तक annual progress report भी आती थी, लेकिन वह website भी अब accessible नहीं लगती: https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
      फिर भी monthly update में federation का आखिरी उल्लेख अक्टूबर में हुआ था, और तब जोर देकर कहा गया था कि federation Forgejo project की “सबसे ऊंची प्राथमिकता” थी और आगे भी रहेगी
      https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
    • कई वर्षों के अनुभव के बाद मैं इस निष्कर्ष के करीब पहुंच रहा हूं कि Git के ऊपर रखे गए ऐसे UI का खास मतलब नहीं है। Git खुद पहले से distributed है, यानी federation से भी आगे का model है
      Git repository को network पर expose करना HTTP या SSH से बहुत आसान है, और यह email-based code review flow भी support करता है। हालांकि git-appraise की तरह review को repository के अंदर store करने वाला तरीका मुझे काफी पसंद है
      https://github.com/google/git-appraise
      अगर CI/CD pipeline को push से trigger किया जा सके तो उसे भी सरलता से integrate किया जा सकता है। लेकिन हमने Git के ऊपर centralized UI बना दिए हैं, और अब उन्हीं UI को आपस में integrate करने की कोशिश कर रहे हैं। यह देखते हुए कि Git पहले से decentralized है, यह उल्टी दिशा में जाने जैसा लगता है
    • GitLab ActivityPub को experimentally support करता है: https://gitlab.com/gitlab-org/gitlab/-/blob/v17.1.0-ee/doc/development/activitypub/actors/index.md
      संबंधित जानकारी: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
    • मैं federation का सच में इंतजार कर रहा हूं। अगर मैं अपना काम अपने Forgejo पर host करते हुए भी दूसरे instances के साथ discoverability/issue tracking साझा कर सकूं, तो दोनों तरफ के फायदे मिल जाएंगे
      फिलहाल मैं self-hosted Forgejo, github.com, और gitlab.com में mirror कर रहा हूं, और Forgejo instance जरूरी infrastructure से ज्यादा self-hosting hobby का हिस्सा है
      GitLab Cells भी उसी दिशा में जा सकता है, और design document में federation का उल्लेख है
      https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
  • कई सालों में Gogs से Gitea और फिर Forgejo पर आया हूं, और यह वाकई शानदार software है
    90% मामलों में निजी Git repositories को SSH server पर रखना ही काफी है। अगर मकसद सिर्फ Chezmoi repository को ऐसी जगह रखना है जहां से सभी computers पर access हो सके, तो Forgejo वाली family बहुत कुछ extra नहीं जोड़ती
    लेकिन 10% मामलों में, यानी जब कुछ दोस्तों के साथ code privately share करना हो, यह बेहतरीन है। GitHub paid plan से free बेहतर है, और अगर वैसे भी उन 10% projects के लिए इसे चलाना ही है, तो बाकी के लिए भी इसे अपनी निजी canonical Git repository की तरह इस्तेमाल करना अच्छा है

    • अपने projects के लिए मैं Onedev इस्तेमाल कर रहा हूं: https://github.com/theonedev/onedev
      इसमें Kanban और code editor भी हैं
    • पहली बार Git server मैंने कंपनी में इस्तेमाल होने वाले GitLab CE से चलाया था। RAM कम वाले Atom-based server पर चलाया, तो यह इतना धीमा था कि page load timeout हो जाते थे
      Gitea पर बदलने से राहत मिली, और जब Fedora ने अपने repository server के लिए Forgejo चुना तो Forgejo पर ध्यान गया
      मेरी जरूरतें सरल हैं: notes और source code के लिए एक central file repository जैसा। Gitea 1.21 से Forgejo 9 पर migration test किया और कोई friction नहीं आया
      गंभीरता से migration पर विचार कर रहा हूं, लेकिन long term में कौन सा बेहतर support पाएगा और free use के लिए ज्यादा उपयुक्त रहेगा, यह अभी सोच रहा हूं
    • विचारधारा से हटकर, Gitea और Forgejo के अहम फर्क महसूस हुए या नहीं, यह जानना चाहूंगा। लगता है Forgejo ने इस बीच Actions भी जोड़ दिए हैं
    • शुरुआत में Gogs install किया था, लेकिन GitLab CI और दूसरी features की वजह से GitLab पर चला गया। हालांकि यह अपेक्षाकृत बहुत भारी था और updates के साथ बने रहना भी मुश्किल होता गया, इसलिए आखिरकार Gitea और Drone CI पर आ गया। कुछ लोगों को Woodpecker CI भी पसंद आ सकता है
      सच कहूं तो अगला ठिकाना शायद CI/CD के लिए Forgejo Actions(https://forgejo.org/docs/next/user/actions/) के साथ Forgejo होगा, या फिर पूरी तरह गहराई में जाकर Jenkins पर वापस लौटना होगा
  • tagline बहुत explanatory नहीं है। main page को एक-दो बार scroll करने के बाद ही समझ आया कि इसका मकसद क्या है, यानी self-hosted GitHub alternative
    software में “forge” शब्द के कई मतलब निकाले जा सकते हैं, इसलिए इसे शुरुआत में ही ज्यादा साफ कहना बेहतर होगा

    • “forge” शब्द SourceForge के समय से, शायद उससे भी पहले से, इस तरह के hosting package को describe करने के लिए इस्तेमाल होता रहा है
      technically Redmine जैसे उस दौर के systems को भी forge कहा जा सकता था, लेकिन उसके बाद शायद यह term जम गई
    • GitHub को category define करने वाले benchmark की तरह बुलाना मुझे Forgejo की spirit के खिलाफ लगता है। Forgejo अपने दम पर खड़ा है
    • इसे software forge कहना सही expression है। बस term ज्यादा widely known नहीं है
      संदर्भ: https://en.wikipedia.org/wiki/Forge_(software)
    • यह साफ तौर पर self-hosted GitHub alternative है, और मुझे लगता है इसे इसी तरह describe करना सही है। दूसरे comments की तरह, जब असल में इस्तेमाल करते हैं तो यह और स्पष्ट होता है; मूल रूप से यह GitHub interface जैसा है और यही इसकी अच्छी बात है। familiar और इस्तेमाल में आसान
    • मैं यह समझने की कोशिश कर रहा था कि यहां “forge” का मतलब क्या है
      “forge” सुनकर ऐसा tool याद आता है जो raw material को finished product में बदलता है। जैसे लोहे को horseshoe में बदलने वाली blacksmith की workshop
      software analogy में text source code को executable binary में बदलना, यानी compiler या interpreter, ज्यादा सही लगता है
      GitHub और SourceForge source code को एक जगह से दूसरी जगह ले जाते हैं। analogy को जबरदस्ती बढ़ाएं तो यह store और delivery service के combination जैसा है। source code move होता है, transform नहीं होता
      इसलिए पुराने C/C++ developer के नजरिए से forge का self-hosted Git server के लिए term होना काफी अजीब लगता है
  • GitLab CE को चलाते रहने की कोशिश में CPU और memory ज्यादा खाने की समस्या से जूझने के बाद Forgejo पर आया, और निराश नहीं हुआ
    यह rootless container में चलता है और memory व CPU लगभग नहीं के बराबर इस्तेमाल करता है। updates भी सिर्फ एक बार podman pull से आसानी से हो जाते हैं
    अब Actions भी चला रहा हूं, ताकि Jekyll आदि run करके static websites को लगातार update रख सकूं
    अपनी खुद की forge होना अच्छा लगता है, जिसमें GitHub, GitLab जैसी दूसरी forges से repositories और issues आदि import किए जा सकते हैं, और आगे आने वाले ActivityPub-based बड़े Fediverse integration का भी इंतजार है
    decentralized होते हुए भी connected code hosting approach हमेशा से चाहिए थी, और अब लगता है कि हम लगभग वहां पहुंच गए हैं

    • federation support की स्थिति जानना चाहूंगा। अगर instances के बीच pull requests और bug reports संभव हो जाएं, तो collaboration बहुत आसान हो जाएगा
  • कई सालों में GitHub → self-hosted GitLab → Gitea → Forgejo पर आया हूं, और कोई पछतावा नहीं है
    Forgejo शानदार है और federation पूरा होने पर और भी बेहतर लगेगा। कई instances में फैले distributed forks और pull requests संभव हो जाएं तो self-hosted solutions की fragmentation problem हल हो जाएगी
    जब Gitea ने VC funding के सहारे एक for-profit branch बनाई, तो उस पर भरोसा खो गया, और इसी वजह से Forgejo fork हुआ
    GitLab से जो एकमात्र चीज छूटी, वह built-in CI/CD platform था। लेकिन pipelines को Drone CI पर ले जाकर webhooks से trigger कर पाया। हालांकि GitLab pipelines कितनी complex हैं, इसके हिसाब से यह हमेशा possible option नहीं हो सकता
    किसी भी हालत में, कुछ छोटे projects के लिए 5GB RAM खाने वाला GitLab server host करना मुझे पसंद नहीं था। Forgejo peak पर भी करीब 500MB RAM इस्तेमाल करता है

  • यह जानने की उत्सुकता है कि code review experience कैसा है। अंदाज़ा है कि यह Gitea जैसा ही होगा, लेकिन दोनों में से कोई भी इस्तेमाल नहीं किया है
    हाल में GitHub पर काफ़ी गंभीर code review किया था, और code review tool के तौर पर वह खिलौना version के करीब लगा। जब तक पूरे source control model को उसी tool के हिसाब से design न किया जाए, गंभीर engineering work के लिए इसे इस्तेमाल करना मुश्किल लगा; और ऐसा करने पर history management को प्रभावित करने वाले दूसरे पहलुओं की बलि देनी पड़ती है
    मुख्य रूप से Gerrit से परिचित हूँ; उसका basic model समझदारी भरा है, लेकिन कई rough edges हैं और performance issues भी हैं
    अचानक सोचने पर लगता है कि मैंने शायद कभी ऐसा review tool इस्तेमाल नहीं किया जो सच में पसंद आया हो। लगता है क्या industry बस proper tools के बिना ही काम चला रही है
    याददाश्त के मुताबिक GitLab वाला GitHub से थोड़ा बेहतर था, लेकिन details याद नहीं हैं

    • Phabricator और GitHub के साथ nuclear power plant design code design किया है, और वह काफ़ी गंभीर काम लगता है। यह और जानना चाहूँगा कि review को इस्तेमाल लायक बनाने में आपको क्या कमी लगती है
    • क्या आपने GitHub के लिए review tool Codelantis इस्तेमाल किया है, यह जानने की उत्सुकता है
  • “Forgejo क्या है?” इस सवाल का जवाब शायद इस तरह है: “Forgejo self-host किया जा सकने वाला हल्का software forge है। इसे install करना आसान है, maintenance कम है, और यह जो करना चाहिए वह करता है”

    • सोच रहा हूँ कि GitHub, BitBucket, GitLab वगैरह का ज़िक्र किए बिना उन्हें कैसे समझाया जा सकता है
    • Communication सच में बहुत बिखरा हुआ है। नाम भी English-speaking दुनिया में काफ़ी अटपटा है
      बेशक हर चीज़ को English के हिसाब से ढालना ज़रूरी नहीं है, और कहा जाता है कि यह Esperanto है, लेकिन site के बाकी हिस्से वैसे नहीं हैं, इसलिए ज़्यादातर लोग इसे उस तरह नहीं समझेंगे