प्रभावी सहयोग, विशेष रूप से ओपन सोर्स सॉफ्टवेयर विकास में, प्रभावी संगठन के साथ शुरू होता है। यह सुनिश्चित करने के लिए कि कुछ भी छूट न जाए, सामान्य नियम, "एक मुद्दा, एक पुल अनुरोध" अंगूठे का एक अच्छा नियम है।
"दस्तावेज़ीकरण में सभी टूटे हुए लिंक को ठीक करें" जैसे बड़े दायरे के साथ एक मुद्दे को खोलने के बजाय, ओपन सोर्स प्रोजेक्ट्स में कई छोटे और अधिक प्रबंधनीय मुद्दों के साथ योगदानकर्ताओं को आकर्षित करने के लिए अधिक भाग्य होगा।
पिछले उदाहरण में, आप खंड या पृष्ठ के अनुसार टूटे हुए लिंक का दायरा बढ़ा सकते हैं। यह अधिक योगदानकर्ताओं को एक बड़े और अधिक थकाऊ योगदान के प्रयास में एक व्यक्ति की प्रतीक्षा करने के बजाय अपने समय की छोटी खिड़कियों में कूदने और समर्पित करने की अनुमति देता है।
छोटे दायरे वाले मुद्दे भी परियोजना अनुरक्षकों को यह देखने में मदद करते हैं कि काम कहाँ पूरा किया गया है और कहाँ नहीं। इससे इस बात की संभावना कम हो जाती है कि समस्या का कुछ हिस्सा छूट गया है, मान लिया गया है कि पूरा हो गया है, और बाद में बग या सुरक्षा कमजोरियों की ओर जाता है।
यह सब अच्छा और अच्छा है। लेकिन क्या होगा यदि आप पहले से ही कई बड़े पैमाने पर मुद्दों को खोल चुके हैं, कुछ पीआर पहले ही सबमिट या मर्ज किए जा चुके हैं, और आपको वर्तमान में पता नहीं है कि काम कहां से शुरू हुआ या कहां रुक गया?
आपकी परियोजना की स्थिति को वापस नियंत्रण में लाने में थोड़ा समय लगेगा। शुक्र है, एक गन्दा भंडार को स्कैन करने, क्रमबद्ध करने और समझने में आपकी सहायता के लिए कई कमांड लाइन टूल हैं। यहां उन लोगों का एक छोटा चयन है जिनका मैं उपयोग करता हूं।
इंटरएक्टिव खोज और vim
के साथ बदलें
आप विम में एक फ़ाइल खोल सकते हैं, फिर अंतःक्रियात्मक रूप से खोज सकते हैं और इसके साथ प्रतिस्थापित कर सकते हैं:
:%s/\<word\>/newword/gc
%
वर्तमान फ़ाइल की सभी पंक्तियों को देखने के लिए इंगित करता है, s
विकल्प के लिए है, \<word\>
पूरे शब्द से मेल खाता है, और g
"वैश्विक" के लिए हर घटना के लिए है। c
अंत में आपको प्रत्येक परिवर्तन के किए जाने से पहले उसे देखने और उसकी पुष्टि करने देगा। आप इसे c
. के बिना स्वचालित रूप से और बहुत तेज़ी से चला सकते हैं , लेकिन यदि आपने पैटर्न-मिलान त्रुटि की है तो आप स्वयं को जटिल बनाने के जोखिम में डालते हैं।
नोड मॉड्यूल के साथ मार्कडाउन फाइलों में डेड लिंक्स ढूंढें
मार्कडाउन-लिंक-चेक नोड मॉड्यूल में एक अच्छा सीएलआई दोस्त है।
मैं इसका उपयोग इतनी बार करता हूं कि मैंने इसे बैश उपनाम फ़ंक्शन में बदल दिया। ऐसा करने के लिए, इसे अपने .bashrc
. में जोड़ें :
# Markdown link check in a folder, recursive
function mlc () {
find $1 -name \*.md -exec markdown-link-check -p {} \;
}
फिर mlc <filename>
. के साथ रन करें ।
उपनिर्देशिका को git रिपॉजिटरी के साथ या उसके बिना सूचीबद्ध करें find
सभी उपनिर्देशिकाओं को प्रिंट करें जो git रिपॉजिटरी हैं, या दूसरे शब्दों में, एक .git
है उनमें:
find . -maxdepth 1 -type d -exec test -e '{}/.git' ';' -printf "is git repo: %p\n"
उन सभी उपनिर्देशिकाओं को प्रिंट करने के लिए जो git रिपॉजिटरी नहीं हैं, परीक्षण को !
से नकारें :
find . -maxdepth 1 -type d -exec test '!' -e '{}/.git' ';' -printf "not git repo: %p\n"
एक से अधिक git रिपॉजिटरी को xargs
वाली सूची से खींचें
मैंने शुरुआत में इसे बैश स्क्रिप्ट के साथ अपने लैपटॉप को स्वचालित रूप से फिर से बनाने के हिस्से के रूप में उपयोग किया था, लेकिन जब आप क्लाउड इंस्टेंस या डॉकरफाइल के साथ काम कर रहे हों तो यह बहुत आसान है।
फ़ाइल को देखते हुए, repos.txt
प्रत्येक पंक्ति पर एक भंडार के एसएसएच लिंक के साथ (और आपकी एसएसएच कुंजी सेट अप), चलाएं:
xargs -n1 git clone < repos.txt
यदि आप कई रिपॉजिटरी को खींचना और धक्का देना चाहते हैं, तो मैंने पहले लिखा था कि अपने रिपॉजिटरी को प्रबंधित करने के लिए बैश वन-लाइनर का उपयोग कैसे करें।
समस्याओं को jot
के साथ नंबर के आधार पर सूचीबद्ध करें
मैं OWASP वेब सुरक्षा परीक्षण गाइड रिपॉजिटरी के लिए एक सह-लेखक और अनुरक्षक हूं, जहां मैंने हाल ही में एक बड़ा मुद्दा उठाया था (हाँ, यह "दस्तावेज़ीकरण में सभी टूटे हुए लिंक को ठीक करें" - आपने कैसे अनुमान लगाया?) और इसे तोड़ दिया। कई छोटे, अधिक प्रबंधनीय मुद्दों में। एक पूरे सैंतीस छोटे, अधिक प्रबंधनीय मुद्दे।
मैं उन सभी मुद्दों की गणना करना चाहता था जो मूल बन गए थे, लेकिन सैंतीस अंक संख्या (#275 से #312) टाइप करने का विचार बहुत थकाऊ और समय लेने वाला लग रहा था। इसलिए, प्राकृतिक प्रोग्रामर फैशन में, मैंने उन सभी नंबरों को टाइप करने के लिए उतना ही समय बिताया और इसके बजाय इसे स्वचालित करने का एक तरीका तैयार किया।
jot
उपयोगिता (apt install athena-jot
) एक छोटा टूल है जो कुछ नंबरों का प्रिंट आउट लेने में बहुत मददगार होता है। बस यह बताएं कि आप कितने चाहते हैं, और कहां से शुरू करें और कहां रुकें।
# jot [ reps [ begin [ end ] ] ]
jot 37 275 312
यह प्रत्येक नंबर को, 275 से 312 तक, एक नई लाइन पर प्रिंट करता है। इन्हें इश्यू नंबर नोटेशन में बनाने के लिए कि GitHub और कई अन्य प्लेटफ़ॉर्म स्वचालित रूप से पहचानते हैं और लिंक में बदल जाते हैं, आप आउटपुट को awk
पर पाइप कर सकते हैं ।
jot 37 275 312 | awk '{printf "#"$0", "}'
#275, #276, #277, #278, #279, #280, #281, #282, #283, #284, #285, #286, #287, #288, #289, #290, #291, #292, #293, #295, #296, #297, #298, #299, #300, #301, #302, #303, #304, #305, #306, #307, #308, #309, #310, #311, #312
आप jot
. का भी उपयोग कर सकते हैं मुख्य रूप से विकास या परीक्षण उद्देश्यों के लिए यादृच्छिक या अनावश्यक डेटा उत्पन्न करने के लिए।
सीएलआई-पावर्ड ओपन सोर्स ऑर्गनाइजेशन
एक सुव्यवस्थित ओपन सोर्स रिपोजिटरी एक सुव्यवस्थित ओपन सोर्स प्रोजेक्ट है। आसान संदर्भ के लिए इस पोस्ट को सहेजें, और अच्छे के लिए अपनी नई सीएलआई महाशक्तियों का उपयोग करें! ?