2 पॉइंट द्वारा GN⁺ 12 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 2008 में Emacs ने CVS के बाद अगले विकल्प के रूप में Git और Bazaar पर विचार किया, और बेंचमार्क में Git बेहद तेज़ निकला
  • Richard Stallman ने Bazaar को GNU package होने की वजह से चुनने का फैसला पक्का किया, और तकनीकी चर्चा भी इस निर्णय को बदल नहीं सकी
  • 2008~2012 के दौरान GitHub के बढ़ने के समय Emacs योगदानकर्ताओं को Bazaar सीखना पड़ा, और 2012 में Canonical ने डेवलपमेंट टीम को हटा दिया
  • 2013 में Bazaar के रखरखाव में ठहराव और ELPA branch बग ने फिर से चर्चा छेड़ी, और ELPA अंततः Git पर चला गया
  • 2014 में Eric S. Raymond के migration work के बाद Emacs Git पर चला गया, लेकिन उसके तुरंत बाद core contributors के Git सीखने की समस्या सामने आई

2008: Git तेज़ था, लेकिन Bazaar चुना गया

  • मार्च 2008 में Emacs ने CVS से किसी अधिक आधुनिक version control tool पर जाने की कोशिश की, और विकल्प घटकर Git और Bazaar तक रह गए
    • Git, Linux kernel के लिए Linus Torvalds द्वारा बनाया गया tool था
    • Bazaar, Canonical द्वारा मेंटेन किया जाने वाला GNU project था
  • emacs-devel पर 236 messages की चर्चा चली, और कई डेवलपर्स ने दोनों tools का benchmark किया
    • Andreas Schwab ने कहा कि bzr log शुरू होने में 1 मिनट से ज़्यादा लेता है, इसलिए यह “इतना धीमा है कि पूरी तरह अनुपयोगी” है
    • David Kastrup का मानना था कि git log लगभग तुरंत चल जाता है, जबकि Bazaar को file copy, move, और rename की जानकारी explicitly मिलती है, इसलिए वह तो और तेज़ दिखना चाहिए था
  • वास्तविक आँकड़ों में भी Git की बढ़त साफ़ थी
    • git log | head -1 में 0.012 सेकंड लगे, जबकि Bazaar में वही काम 21.5 सेकंड में हुआ
    • एक single-file change commit में Git ने 0.08 सेकंड लिए, जबकि Bazaar ने 17 सेकंड
  • उस समय के lead maintainer Stefan Monnier ने कहा कि Bazaar Git से तेज़ है या धीमा, यह मुख्य मुद्दा नहीं है, लेकिन Emacs के migration के लिए यह “काफी तेज़” होना चाहिए, और कम से कम bzr diff में कुछ सेकंड से ज़्यादा नहीं लगना चाहिए
  • Canonical के Bazaar डेवलपर Jonathan Lange ने initial checkout के लिए wget, tar, bzr init-repo, bzr branch, bzr pull --remember को मिलाकर एक प्रक्रिया सुझाई
    • यह प्रक्रिया git clone की तुलना में लंबी और manual थी

GNU tool इस्तेमाल करने का निर्णय

  • किसी ने Emacs maintainers और decision-makers से पूछा, “इस समय पर यह समझाने के लिए कि bzr सही tool नहीं है, और कौन-सी जानकारी चाहिए?”
  • Richard Stallman ने जवाब दिया कि यह मौजूदा पल का निर्णय नहीं, बल्कि दीर्घकालिक निर्णय है, और जिसे बाद में पलटना मुश्किल हो ऐसे अस्थायी फैसले से बेहतर है कि Bazaar developers के सुधार करने तक कुछ महीने इंतज़ार किया जाए
  • Stallman ने एक अलग संदेश में साफ़ कहा, “यह सवाल समाप्त हो चुका है और निर्णय लिया जा चुका है. हम GNU Bzr का उपयोग करेंगे. क्योंकि यह GNU package है.”
  • इस आपत्ति पर कि तकनीकी तर्कों को राजनीतिक निर्णय से मिटाया जा रहा है, Stallman ने GNU packages के एक-दूसरे का समर्थन करने के नियम का हवाला देते हुए कहा कि इससे पूरा GNU system बेहतर काम करता है
  • “क्या Git को GNU system का हिस्सा नहीं बनाया जा सकता?” इस सवाल पर उनका जवाब था कि Git को GNU system में शामिल तो किया जा सकता है, लेकिन Git developers के Git को GNU package बनाना चाहने की संभावना कम है
  • 2008 के benchmarks, 236 messages, और Canonical कर्मचारी द्वारा बताए गए workaround के बावजूद नतीजा नहीं बदला, और Emacs ने GNU package होने की वजह से Bazaar को चुना

2008~2012: Git का फैलाव और Bazaar का बोझ

  • 2008 में GitHub शुरू हुआ और तेज़ी से बढ़ा, लेकिन Emacs contributors को patches भेजने के लिए Bazaar सीखना पड़ा, जिसे वे और कहीं इस्तेमाल नहीं करते थे
  • emacs-devel पर Bazaar समस्याओं से जुड़े threads बार-बार दिखते रहे
    • “Help me unstick my bzr, please”
    • “Can NOT bzr the emacs repos (may be bzr has a memory leak)”
  • 2012 में Canonical ने Bazaar development team को हटा दिया
  • इसके बाद Bazaar की maintenance स्थिति Emacs development process में और बड़ा बोझ बन गई

2013: maintenance ठहराव और Git पर दोबारा चर्चा

  • मार्च 2013 में, Bazaar development लगभग एक साल से रुका होने के बाद John Wiegley ने फिर पूछा कि क्या Emacs Git पर जा सकता है
    • Bazaar development लगभग ठहरा हुआ था
    • ELPA repository जैसे Emacs development को प्रभावित करने वाले प्रमुख bugs कई सालों से bug tracker में पड़े थे और सुलझे नहीं थे
  • इस चर्चा में भी लगभग 200 messages आए
  • Stallman की पहली प्रतिक्रिया यह थी कि Bazaar maintainer कुछ bugs ठीक कर रहे हैं, और उन्होंने खुद भी एक दिन पहले ELPA branch bug fix का अनुरोध किया है, इसलिए वे उचित समय देना चाहते हैं
  • Dmitry Gutov ने पूछा कि यह bug 1.5 साल पुराना है, तो क्या अब बहुत देर नहीं हो चुकी?
  • Stallman ने कहा कि वे यह तय करने की कोशिश कर रहे हैं कि Bazaar का प्रभावी रखरखाव हो रहा है या नहीं, और वे “Yes” उत्तर पाना चाहते हैं
  • Joakim Verona ने कहा कि Bazaar community बहुत मददगार है, लेकिन कई well-known bugs और patches सालों तक upstream में नहीं गए, जिनमें कुछ Emacs developers द्वारा दिए गए थे
  • Stallman ने जवाब दिया कि उनके पास Bazaar mailing list पढ़ने का समय नहीं है, और वे जिस development mailing list को पढ़ते हैं, वह सिर्फ emacs-devel है
  • इस सवाल पर कि Bazaar users को Bazaar की maintenance पर्याप्त है या नहीं, यह तय करने में आवाज़ मिलनी चाहिए या नहीं, Stallman ने कहा कि संबंधित जानकारी तो देखी जाएगी, लेकिन users को “निर्णायक आवाज़” देना उचित नहीं होगा

Karl Fogel की आलोचना और delegation का सवाल

  • Producing Open Source Software के लेखक और शुरुआती Subversion developers में से एक Karl Fogel ने Stallman के निर्णय-तरीके और delegation की कमी की आलोचना की
  • Fogel का कहना था कि अगर Stallman के पास Bazaar development की स्थिति को करीब से देखने का समय नहीं है, तो वे यह भी सक्षम ढंग से नहीं तय कर सकते कि Bazaar अभी भी Emacs के लिए अच्छा विकल्प है या नहीं
  • उनका तर्क था कि अगर उनके पास इस मूल्यांकन के लिए समय और मानसिक क्षमता नहीं है, तो उन्हें यह काम Emacs maintainers को सौंप देना चाहिए
  • Fogel ने कहा कि एक bug के बारे में एक व्यक्ति से पूछना किसी project की सेहत का प्रतिनिधि संकेतक नहीं हो सकता, और thread में मौजूद दूसरे लोग पहले ही इससे कहीं गहरी जाँच कर चुके हैं
  • Stallman ने जवाब दिया, “क्योंकि Emacs से भी ज़्यादा दाँव पर लगा है”
    • मुख्य मुद्दा यह था कि अगर GNU का एक प्रतिनिधि project GNU tool छोड़ देता है, तो इसका दूसरे GNU packages को क्या संकेत जाएगा
  • Fogel ने फिर कहा कि Stallman या तो Bazaar की maintenance स्थिति पर भरोसा करने लायक मूल्यांकन में समय लगाएँ, या यह काम ऐसे व्यक्ति को सौंपें जो ऐसा कर सके
  • Stallman ने सिर्फ इतना कहा कि उनके पास पहले से योजना है और वह चल रही है, लेकिन न कोई ठोस विवरण, न समय-सीमा, न delegation दिया

ELPA पहले Git पर गया

  • 2013 की चर्चा में Stefan Monnier ने कहा कि Bazaar रखना हो या Git, Monotone, Darcs, Mercurial, OpenCM, Fossil आदि में बदलना हो, उन्हें इससे बहुत फ़र्क नहीं पड़ता
  • Stefan के लिए उस समय सबसे ज़रूरी काम ELPA branch को Bazaar से बाहर निकालना था
    • क्योंकि Bazaar, ELPA branch को ठीक से संभाल नहीं पा रहा था
  • Leo Liu ने इशारा किया कि ज़्यादातर GNU projects Bazaar का उपयोग नहीं करते
  • उनका मानना था कि Bazaar bugs ठीक करना Bazaar के लिए फ़ायदेमंद हो सकता है, लेकिन पूरे GNU के लिए नुकसानदेह हो सकता है
    • तर्क यह था कि अगर volunteers के free time का 20% Bazaar से जूझने में चला जाए, तो लागत इतनी बढ़ जाती है कि लोग GNU projects में भाग लेना कम कर सकते हैं
  • उसी साल के अंत में Stefan Monnier ने Bazaar में टूट चुके ELPA branch को Git पर ले गए
    • ELPA branch में checkout के दौरान conflict होने वाला bug था, और उसे ठीक करने वाला कोई बचा नहीं था
    • Stefan को ELPA के लिए Git और trunk के लिए Bzr वाला two-tool setup पसंद नहीं था, लेकिन उन्हें कोई और रास्ता नहीं दिखा
    • उन्होंने साफ़ कहा कि इस बदलाव को Git बनाम Bazaar की खूबियों-खामियों की बहस या trunk को Git पर ले जाने की चर्चा तक न बढ़ाया जाए
  • ELPA के Git पर जाने के बाद अगली चर्चा के लिए आधार बन गया: “अगर ELPA के लिए Git पर्याप्त है, तो क्या trunk के लिए भी पर्याप्त नहीं है?”

2014: Eric S. Raymond का migration work और वास्तविक बदलाव

  • अगस्त 2014 तक Eric S. Raymond ने Emacs repository conversion script तैयार कर रखी थी
  • उन्होंने कहा कि कठिन काम पूरा हो चुका है, और बटन दबाने से पहले सिर्फ लगभग 8 घंटे की सूचना चाहिए
  • वास्तविक migration नवंबर 2014 में हुआ
  • 13 नवंबर को ESR ने “Commits are open. Have at it.” वाला छह-शब्दों का संदेश भेजा
  • इस migration को कुछ लोगों ने heroic कहा
  • 2008 के 236 messages, 2013 के 200 messages, Stefan की maintenance, बार-बार की Bazaar समस्याएँ, और एक dead version control system के बाद Emacs आखिर Git पर चला गया

migration के बाद: core contributors को भी Git नया सीखना पड़ा

  • migration के तुरंत बाद कुछ दिनों में यह सामने आया कि कई core contributors ने पहले कभी Git इस्तेमाल नहीं किया था
  • emacs-devel पर Git इस्तेमाल करने के तरीकों पर threads चलने लगे
    • This Is The Git Help Mailing List
    • “git pull fails with merge conflicts. How can this possibly happen?”
    • “A simple git workflow for the rest of us”
    • “need help adjusting workflow to git”
    • “Good book on Git”
    • “Obscure error/warning/information message from git pull” पर 124 messages आए
  • एक महत्वपूर्ण text editor को लंबे समय तक विकसित करने वाले लोग बुनियादी Git सवाल पूछ रहे थे, क्योंकि जब बाकी दुनिया Git पर जा रही थी, तब Emacs लंबे समय तक Bazaar पर ही रुका रहा

1 टिप्पणियां

 
Lobste.rs की राय
  • rms के नेतृत्व वाले प्रोजेक्ट में काम करो तो सच में दिमाग खराब हो जाए

    • आह, अब why-cooperation-with-rms-is-impossible.au की फ्लैशबैक आ रही है
  • यह सच में कमाल का इतिहास है। बहुत पहले मैंने किसी विश्वविद्यालय में Mark Shuttleworth को मूल Bazaar समझाते हुए एक प्रस्तुति देते देखा था, और distributed version control system का विचार मुझे सच में बहुत दिलचस्प लगा था
    उसके बाद bzr का rewritten version आया और मैं पूरी तरह उसमें डूब गया। मुझे लगा यह Git से कहीं ज़्यादा समझ में आने वाला है, और मैंने कई साल उस प्रोजेक्ट में झोंक दिए—mailing list पर सक्रिय रहा, plugins बनाए, और code diff algorithm को C में फिर से लिखकर उसे तेज़ बनाने की कोशिश भी की
    आखिरकार यह साफ़ हो गया कि Git ही विजेता है, लेकिन इसे स्वीकार करने में काफ़ी समय लगा

  • इस सारांश के मुताबिक Richard Stallman ने 2013 तक भी Emacs प्रोजेक्ट के Git में migration पर रोक लगाई हुई थी। उसके बाद लिखा है कि 2013 के अंत और 2014 के अंत में Emacs दो चरणों में Git पर गया, लेकिन 2013 की शुरुआत के बाद Stallman का ज़िक्र नहीं आता
    उसने सालों तक Bazaar का समर्थन किया था, तो क्या उसके बाद mailing list thread में उसने सच में कोई विरोधी पोस्ट नहीं लिखी? या फिर इस बीच Emacs प्रोजेक्ट पर उसका अधिकार खत्म हो गया था?
    लेख में लिंक किए गए 2014 के thread में मुझे उसके नाम वाला कोई email नहीं दिखा, लेकिन हो सकता है कुछ दूसरे thread रहे हों जिनका लिंक नहीं दिया गया। मुझे लगा शायद यह वही दौर था जब विवादों की वजह से Stallman ने कहीं से इस्तीफ़ा दिया था, लेकिन ऐसा नहीं था—मैं किसी और घटना को याद कर रहा था। Wikipedia के मुताबिक Stallman ने 2019 में Free Software Foundation छोड़ा था, और GNU Project भी उसने नहीं छोड़ा था

  • मुझे ठीक-ठीक नहीं पता कि कोई प्रोजेक्ट आधिकारिक GNU प्रोजेक्ट कैसे बनता है। क्या यह license की वजह से है? Git और Linux दोनों GPLv2-only हैं और Bazaar GPLv2+ है। क्या यह copyright assignment की वजह से है? या repository, issue tracker, mailing list वगैरह की hosting की वजह से? या “GNU” prefix वाले नाम की वजह से, जो endorsement जैसा काम करता है?
    साफ़ दिखता है कि कहीं कोई महत्वपूर्ण भेद है, लेकिन वह क्या है और क्यों महत्वपूर्ण है, यह मुझे समझ नहीं आता
    और इसमें बार-बार आने वाली off-by-one error भी है:

    On November 13th, ESR posted a seven-word message:

    Commits are open. Have at it.

    [...]

    Six years of debate, [...] and it ended with seven words.
    अरे, symmetry बैठाने का कितना बढ़िया मौका हाथ से निकल गया

    • मतलब वह software जो GNU के अंतर्गत स्पष्ट रूप से शामिल है। उसकी सूची यहाँ है: https://www.gnu.org/software/software.html#allgnupkgs
    • “bazaar” में अक्षर a कितनी बार आता है? :)
  • 2014 के आसपास मैं mysql में कुछ करना चाह रहा था, लेकिन repository clone करने और release branch checkout करने में ही पूरा दिन नाकाम रहने के बाद मैंने हार मान ली थी; अब वह बात पहले से कहीं कम शर्मनाक लगती है
    उससे पहले मैं CVS, Subversion, Mercurial कई-कई साल इस्तेमाल कर चुका था, इसलिए मुझे लगा था कि या तो network की समस्या है या मेरे कंप्यूटर की। यह लेख पढ़ने तक मुझे पता नहीं था कि bzr के असली benchmarks इतने भयानक थे, या यह कि Canonical bzr का इतना इस्तेमाल करने के बावजूद bzr टीम को पहले ही निकाल चुका था
    कुछ साल बाद जब मैं mysql में किसी और काम के लिए गया, तब तक वह Git पर migrate हो चुका था, और शुरुआत से पहले ही फँस न जाने की वजह से मैं कुछ दिलचस्प काम कर सका

    Since I had no interesting books to read today, nor interesting films to watch, I decided to scavenge for the most intriguing content one can find online. I ended up reading the Linux kernel mailing lists, but those discussions seemed to be 18+, so I settled for the comparatively civil emacs-devel.
    यह अब तक देखा गया सबसे शानदार “नहीं, यह लेख AI ने नहीं लिखा है” disclaimer है

  • शानदार लेख है। मैं हमेशा देखना चाहता था कि ऐसी mailing list drama कैसे आगे बढ़ती है, लेकिन खुद उसमें कूद पड़ने की हिम्मत कभी नहीं हुई। कहानी का निर्माण और चुने गए अंश दोनों बहुत अच्छे हैं

  • उलझी हुई कहानी को मज़ेदार ढंग से समेटा गया है। बस मुझे लगता है कि शीर्षक “The Most Emacs Bzr Saga” की जगह “The Most Bzr Emacs Saga” होना चाहिए
    “Emacs” को विशेषण की तरह इस्तेमाल करना पूरी तरह असंभव तो नहीं है, लेकिन फिर भी थोड़ा अटपटा लगता है

  • Bazaar वही version control system था जिसे मैंने सबसे पहले इस्तेमाल किया था। उस समय मैं Ubuntu के जरिए Linux में नया-नया आया था, और Canonical source code host करने के लिए Launchpad इस्तेमाल करता था
    उससे पहले मैंने कभी कहीं code upload नहीं किया था, इसलिए Launchpad और Bazaar का इस्तेमाल करना मुझे काफ़ी शानदार लगा। बेशक, मेरे प्रोजेक्ट इतने छोटे थे कि मुझे performance की कोई समस्या महसूस ही नहीं हुई