3 पॉइंट द्वारा GN⁺ 2025-12-02 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • व्यक्तिगत परियोजनाओं और वेबसाइट को GitHub से Codeberg पर माइग्रेट करने की प्रक्रिया और परिणाम का विस्तृत विवरण
  • Forgejo के “migrate from GitHub” फीचर की मदद से repositories, issues, PR, wiki और releases को पूरी तरह ट्रांसफर किया
  • लिंक पुनर्निर्देशन और GitHub repository stubs को ऑटोमेशन स्क्रिप्ट से संभालकर माइग्रेशन की स्थिति को साफ़ दिखाया
  • CI/CD माइग्रेशन में Codeberg के Forgejo Actions का उपयोग किया और वातावरणीय सीमाओं के अनुसार lightweight workflows तैयार किए
  • वेबसाइट को git-pages और Grebedoc की मदद से बिना किसी डाउनटाइम के माइग्रेट किया, और पूरी माइग्रेशन वीकेंड के भीतर पूरी हो गई

माइग्रेशन का अवलोकन

  • GitHub Pages पर होस्ट की जा रही साइट और 45 repositories को Codeberg पर माइग्रेट किया गया
    • यह सिर्फ क्लिक करने से खत्म होने वाला काम नहीं था; कई चरणों में मैनुअल काम करना पड़ा
    • पूरी प्रक्रिया सप्ताहांत में पूरी हुई और बिना किसी समस्या के की गई
  • इस प्रक्रिया का मकसद यह दिखाना था कि अन्य डेवलपर्स भी आसानी से माइग्रेट कर सकते हैं

चरण 1: रिपॉज़िटरी माइग्रेशन

  • Codeberg, Forgejo आधारित है और इसमें “migrate from GitHub” फीचर उपलब्ध है
    • GitHub से Personal Access Token (PAT) बनाकर issues आदि metadata को साथ में लाया जा सकता है
    • GitHub API के rate limit के कारण एक साथ कई repositories import करने पर failure हो सकता था
  • issues, PR, wiki और release पूरी तरह माइग्रेट हुए, जिससे GitHub references की जरूरत नहीं रही

चरण 2: लिंक पुनर्निर्देशन

  • लोकल repositories के अंदर के GitHub लिंक को Codeberg पते में बैच में बदलना
    • sed और find commands से text-based auto replace किया गया
  • प्रत्येक repository का git remote URL बदलकर Codeberg किया और सभी repositories में push किया

चरण 3: GitHub repository stubs का हैंडलिंग

  • GitHub repositories में migration नोटिस वाला README जोड़ा और description तथा homepage लिंक Codeberg पर बदल दिए
    • कई repositories पर बैच में लागू करने के लिए automation script लिखी
    • gh repo archive command से repositories को archive किया गया

चरण 4: CI/CD माइग्रेशन

  • Codeberg के CI दस्तावेज़ों में energy consumption को न्यूनतम रखने का सिद्धांत बताया गया है
    • इसलिए केवल जरूरी परियोजनाओं (वेबसाइट, docs build आदि) के लिए ही CI रखा
  • Codeberg में Woodpecker और Forgejo Actions दो CI विकल्प हैं
    • GitHub Actions के समान होने के कारण Forgejo Actions चुना
  • मुख्य अंतर
    • अधिकांश Actions सीधे काम करते हैं
    • केवल Linux runners उपलब्ध हैं, macOS और Windows उपलब्ध नहीं
    • pre-installed software कम है और resources सीमित हैं
    • lazy runners का उपयोग करने पर load balancing और eco-friendly execution संभव होता है
  • CI performance बेहतर करने के लिए हमने LaTeX pre-installed Docker image का उपयोग किया, लेकिन version issue के कारण default Ubuntu image पर वापस आना पड़ा

चरण 5: वेबसाइट re-hosting

  • GitHub Pages पर चल रही साइट को Codeberg Pages पर शिफ्ट करने की कोशिश की, लेकिन यह फीचर maintenance mode में था
    • जटिलता और परफॉर्मेंस कारण अपडेट में देरी हो रही थी
  • विकल्प के तौर पर git-pages और Grebedoc का उपयोग चुना
    • DNS बदलने से पहले upload सपोर्ट होने से बिना डाउनटाइम के migration संभव रहा
    • server-side redirection और custom headers सपोर्ट उपलब्ध था
    • पुराने लिंक (eldred.fr/fortISSimO) को बनाए रखते हुए migration पूरा हुआ
  • Codeberg भविष्य में git-pages पर चरणबद्ध माइग्रेशन की योजना बना रहा है
  • GitHub Pages से बेहतर satisfaction मिलने पर हमने git-pages developer Patreon support में contribute किया

समय

  • रिपॉज़िटरी माइग्रेशन (1~3 चरण): आधा दिन
  • CI माइग्रेशन (4 चरण): आधा दिन
  • वेबसाइट माइग्रेशन (5 चरण): technical debt साफ़ करने सहित कई दिन
  • कुल मिलाकर सप्ताहांत के भीतर पूरा, अपेक्षा से कहीं सरल कार्य

माइग्रेशन के बाद

  • वेबसाइट पूरी तरह ठीक चल रही है, GitHub पर सिर्फ़ master शाखा ही बाकी रखा गया
    • स्थायी लिंक (permalink) अभी भी काम कर रहे हैं
  • GitHub repository हटाने का काम redirection न होने के कारण अभी hold पर है
  • GitHub account को अन्य projects में योगदान (contribution) के लिए बनाए रखा गया है
  • Codeberg पर migration होने से contributors कम हो सकते हैं, लेकिन कुछ users पहले ही Codeberg account बना कर लगातार योगदान दे रहे हैं

आभार

  • Catherine ‘whitequark’ : git-pages और Grebedoc का संचालन
  • SERVFAIL network टीम: DNS उपलब्ध कराने के लिए
  • Codeberg तथा Forgejo contributors: migration foundation उपलब्ध कराने के लिए

1 टिप्पणियां

 
GN⁺ 2025-12-02
Hacker News राय
  • इस migration कहानी में जो बात सबसे ज़्यादा ध्यान खींचती है, वह तकनीकी हिस्सा नहीं है, बल्कि यह है कि ‘feature parity’ असली बाधा नहीं है
    Codeberg रोज़मर्रा के workflow के लिए काफ़ी है, लेकिन GitHub ने जो network effect और inertia बनाया है, उसकी कमी है

    • Tangled.org जैसे प्रोजेक्ट इस समस्या को कुछ हद तक हल करने की कोशिश कर रहे हैं
      यह Bluesky जैसे protocol पर आधारित है, ताकि Git कहीं भी host हो, identity और connectivity बनी रहे
    • Codeberg में मुझे सबसे बड़ी असुविधा issue search feature के कमज़ोर होने की लगी
      पहले निश्चित रूप से देखे गए issue को फिर से ढूँढना मुश्किल होता है। performance हाल में ठीक हुई है, लेकिन अगर किसी project में सैकड़ों issue हों, तो पहले test migration करना बेहतर होगा
    • GitHub के पास बहुत बड़ा documentation और examples का संग्रह है, इसलिए नए जुड़ने वाले लोग भी आसानी से ढल सकते हैं
      CI/CD जैसी चीज़ें पूरी टीम को जानना ज़रूरी नहीं, एक व्यक्ति भी अच्छी तरह जानता हो तो काफ़ी है
  • Codeberg, Gitea का fork है, और Gitea, Gogs का fork है
    दोनों fork तकनीकी कारणों से ज़्यादा दार्शनिक कारणों से शुरू हुए थे, और Gogs बनाने वाले Joe Chen का इसमें बड़ा योगदान रहा

    • वास्तव में Codeberg, Forgejo पर आधारित वेबसाइट है
      Gitea को इसलिए fork किया गया क्योंकि एक developer ने repository permissions पर एकाधिकार कर लिया था, और Forgejo, Gitea के trademark को वापस लेने के लिए बनाया गया fork है
    • मज़ाक में यह भी कहा जाता है कि कभी Codeberg community भी छोटे वैचारिक मतभेदों पर विभाजित हो सकती है
  • मैं जानना चाहता हूँ कि क्या किसी ने Codeberg और F-Droid को साथ में इस्तेमाल किया है
    यह जानना है कि क्या GitHub की तरह यह अपने-आप release detect कर सकता है

    • F-Droid नहीं, लेकिन Codeberg support जोड़ने वाले project बढ़ रहे हैं
      लगता है कि अब threshold effect तक पहुँच गया है
  • पिछले कुछ दिनों में मैंने कई project को GitHub से दूर जाते देखा है
    सोच रहा हूँ कि क्या कोई घटना या trend चल रहा है

    • GitHub की availability problems, Microsoft की AI की जबरन integration, और Azure migration पर ज़्यादा ध्यान देने की वजह से feature improvements के पीछे रह जाने जैसी बातें कारण हो सकती हैं
    • Zig का migration announcement अच्छा संदर्भ है
    • लगता है GitHub एक तरह के trust thermocline से गुज़र रहा है
      open source community की नाराज़गी जमा होती गई और शायद अब सीमा तक पहुँच गई है
      Microsoft की कुल मिलाकर AI और advertising से जुड़ी controversy और Windows 10 support ख़त्म होना भी असर डालते दिखते हैं
      यह संबंधित concept पहली बार इस Twitter thread में रखा गया था
    • व्यक्तिगत रूप से मैं GitHub के AI के अति-उपयोग से थक गया हूँ
      Rails-आधारित पुराने दिनों में यह ज़्यादा अच्छा लगता था
    • यह कुछ-कुछ Summer of the Shark जैसी घटना भी लगती है
      हो सकता है कि यह वास्तविकता से ज़्यादा ध्यान खींचने वाली अस्थायी घटना हो
  • मैं जानना चाहता हूँ कि GitHub के विकल्पों में छोटी टीमों या solo developers के लिए क्या उपयुक्त है
    Codeberg FOSS-केंद्रित है, इसलिए commercial use के लिए शायद उपयुक्त नहीं लगता

    • Codeberg की बुनियाद Forgejo को self-host किया जा सकता है
      GitLab में बहुत features हैं, लेकिन उसका maintenance भारी है
      इसके अलावा Gitea, Gogs, Phorge जैसी कई FOSS forge भी हैं
    • GitHub की असली ताकत technology नहीं, बल्कि social network है
    • मुझे sourcehut पसंद है
      यह GitHub UI की नकल नहीं करता, और इसका local जैसा तेज़ immediate interface मुझे अच्छा लगता है
    • अगर कोई खास कारण न हो, तो GitHub का इस्तेमाल जारी रखना तर्कसंगत है
      सिर्फ़ “Microsoft पसंद नहीं है” इस वजह से migrate करने की ज़रूरत नहीं
    • व्यक्तिगत उपयोग के लिए मैं Migadu जैसी कम-लागत private hosting ढूँढ रहा था, लेकिन कुछ उपयुक्त नहीं मिला
      आख़िरकार मैंने नए project Codeberg पर डाले, और कुछ को GCP पर private mirror के रूप में बनाए रखा है
      इस बारे में मैंने Ask HN thread भी पोस्ट किया था, लेकिन कोई प्रतिक्रिया नहीं मिली
  • eldred.fr की ब्लॉग पोस्ट को देखें तो लेखक के कारण तर्कसंगत हैं, लेकिन user के नज़रिए से महसूस होने वाला सुधार लगभग नहीं है
    Codeberg इस्तेमाल करके देखा तो

    • “यह जाँच की जा रही है कि आप bot नहीं हैं” जैसी animated verification screen बार-बार दिखती है
    • GitHub login button छोटा करके छिपाया गया है
    • UI लगभग GitHub जैसा ही है, और README नीचे होने से असुविधा होती है
      उदाहरण: https://codeberg.org/dnkl/foot
      README को main page पर रखना बेहतर लगता है
    • आख़िरकार बिना किसी differentiation वाली copy strategy आकर्षक नहीं लगती
    • “bot verification” के लिए Anubis नाम का open solution इस्तेमाल किया जाता है
      paid version में image customization भी संभव है
    • GitHub को लगभग वैसा ही follow करना user familiarity के लिए लिया गया फ़ैसला है
      अगर बहुत अलग बनाया जाए तो उल्टा विरोध ज़्यादा होता है
      GitHub login button छिपाना community-केंद्रित निर्णय है, और चाहें तो इसे PR के ज़रिए propose भी किया जा सकता है
    • ऐसी समस्याएँ शायद उल्टा service की गहरी समस्याओं को दिखाने वाला संकेत भी हो सकती हैं
    • मैं GitHub की AI training controversy और centralization से थककर Codeberg पर आया
      उद्देश्य GitHub जैसे ही features रखते हुए एक ethical alternative ढूँढना था
  • अगर GitHub का AI scan समस्या नहीं है, तो क्या गैर-राजनीतिक कारणों से migrate करने की ज़रूरत है

    • हाल में GitHub की availability कम हुई है, लेकिन यह कितना असुविधाजनक है, यह व्यक्ति-व्यक्ति पर निर्भर करता है
  • मैं जानना चाहता हूँ कि क्या Codeberg मुफ़्त CI runners देता है
    अनुमान है कि GitHub हर साल CI पर 100 million dollar से ज़्यादा खर्च करता है

    • Codeberg documentation(docs.codeberg.org/ci) के अनुसार, capacity सीमित है और request के बाद approval लेना पड़ता है
    • व्यक्तिगत रूप से मैं Woodpecker instance को Codeberg के साथ इस्तेमाल कर रहा हूँ और यह अच्छी तरह काम कर रहा है
    • Codeberg, CI/CD की energy cost पर ज़ोर देता है
      लेकिन environmental cost का उल्लेख करना उल्टा users की भागीदारी को हतोत्साहित कर सकता है
      engineers के लिए इसे performance optimization problem की तरह पेश करना ज़्यादा असरदार होगा
    • मुझे लगता है कि ऐसी CI infrastructure ही GitHub का moat है
  • Codeberg ने पहले एक spam incident को “अत्यंत-दक्षिणपंथी नफ़रत अभियान” बताकर बढ़ा-चढ़ाकर पेश किया और खुद की तारीफ़ की, यह देखकर निराशा हुई
    बस prevention failure स्वीकार करना काफ़ी था, लेकिन उसे राजनीतिक frame में पेश किया गया
    संबंधित लिंक: issue, HN discussion, blog post

    • ऐसा रवैया अत्यधिक self-glorification जैसा लगता है
    • लेकिन अगर spam में नस्लवादी शब्दों का इस्तेमाल हुआ था, तो Codeberg की प्रतिक्रिया उचित थी
      अगर इसी वजह से सम्मान खो गया, तो समस्या project में नहीं बल्कि उस नज़रिए में है
  • मैं भी एक समय Codeberg पर repository migrate करके फिर GitHub पर वापस आ गया था
    GitHub की कई features मुझे पसंद नहीं हैं, लेकिन Codeberg में collaboration को खींच लाने की ताकत कम है
    एक solo maintainer के लिए visibility और network effect बेहद ज़रूरी हैं