आर्कगिस के साथ पायथन डेवलपमेंट प्रोजेक्ट टीम के रूप में कार्य करना?


14

हमारे पास पायथन (ArcGIS 10) में एक विकास परियोजना है। इस प्रोजेक्ट में टूलबॉक्स, मैप टेम्प्लेट, लेयर फाइल्स, फाइल जियोडैटेबेस टेम्प्लेट्स (स्क्रिप्ट्स द्वारा मैप में इम्पोर्ट किए जा रहे टेम्प्लेट्स) और कई अन्य चीजों को शामिल किया गया है।

हम ग्रहण को अपने सोर्स एडिटर के रूप में और एसवीएन को हमारे सोर्स कोड रिपोजिटरी के रूप में उपयोग करते हैं।

हालांकि हमें सभी फाइलों (सभी को py फाइलें नहीं हैं) को एक सिंक्रनाइज़ प्रोजेक्ट में रखने की समस्या है। टूलबॉक्स नियमित रूप से कई लोगों द्वारा टूलबॉक्स को संपादित करने से गड़बड़ हो जाता है और फिर टेम्पलेट फाइलें समायोजित हो जाती हैं और फिर अन्य लोगों के लिए अपडेट नहीं होती हैं क्योंकि वे वापस चेक नहीं किए जाते हैं।

किसी कंपनी टूलबॉक्स प्रोजेक्ट पर एक से अधिक अजगर डेवलपर वाले संगठनों में लोग यह कैसे सुनिश्चित करते हैं कि प्रोजेक्ट और सभी अलग-अलग फाइलों को संस्करणबद्ध किया जाए और सही तरीके से प्रबंधित किया जाए? या क्या यह सब कुछ के माध्यम से एक ग्रहण में चला जाता है (टेम्पलेट परतों और स्क्रिप्ट द्वारा GDB का उपयोग करके) परियोजना में और उम्मीद है कि लोग फाइलों को सही ढंग से जांचते हैं?


तो आपके पास वर्तमान में SVN (टेम्पलेट, लेयर फाइल्स, सोर्स कोड, टूलबॉक्स) सब कुछ है? क्या समस्या है कि कुछ लोग ठीक से जाँच नहीं कर रहे हैं?
चाड कूपर

लेयर फाइल और टेम्प्लेट डेटासेट को छोड़कर। हां, जब वे समाप्त हो रहे हैं और ग्रहण में भी वे आपको नहीं देख रहे हैं (जहाँ तक मुझे पता है) मैन्युअल रूप से फ़ाइल के नवीनतम संस्करण (जैसे tbx) को प्राप्त करने के लिए नवीनतम संस्करण में अपडेट करें। मैं बस सोच रहा हूँ कि अगर दूसरों को ऐसा करने का एक बेहतर तरीका मिल गया है तो हम इस समय प्रयास कर रहे हैं
Rob

जवाबों:


5

अगर मुझे पता है कि मैं अन्य डेवलपर्स के साथ काम करने जा रहा हूं, तो आजकल मैं जो पहली चीज करता हूं , वह जेनकिंस जैसे कॉन्टिन्यू इंटीग्रेशन सर्वर को सेटअप करना है ।

यह विचार है कि हर चेक-इन के बाद हमेशा अपने परीक्षण सूट को ट्रिगर किया जाए और अगर यह विफल हो जाता है, तो आपको तुरंत एक स्वचालित ई-मेल मिलेगा। आपके मामले में, यह एक सरल सेलेनियम स्क्रिप्ट हो सकती है । यह एक ब्राउज़र या आर्कबोट्स को स्वचालित करने वाली कुछ स्क्रिप्ट पर क्लिक करता है। सेलेनियम के बारे में कई प्रस्तुतियां हैं ।

जेनकिंस के बारे में अच्छी बात यह है कि, कई प्लगइन्स हैं जो आपको अन्य प्रौद्योगिकियों (बिल्ड सिस्टम, लिंट, आदि) को एकीकृत / लाभ उठाने की अनुमति देते हैं । आप इस बारे में भयानक रिपोर्ट प्राप्त कर सकते हैं कि आपके कोड को परीक्षण द्वारा कितना कवर किया जा रहा है। उन्हें सेटअप करना वास्तव में आसान है

व्यक्तिगत रूप से, SVN के बजाय, मुझे Git और GitHub के साथ एकीकृत करना पसंद है ... ऐसा करने के कई फायदे हैं जैसे प्रमाणीकरण के लिए GitHub पर निर्भर होना।

लेकिन निश्चित रूप से, जेनकिंस को चलाने के लिए पहला कदम है। यदि आपने इसे कभी नहीं किया है, तो एक दिन आरक्षित करें और बहुत सांस लें क्योंकि यह बहुत ही अजीब हो सकता है ... लेकिन एक बार जब आप इसे चलाते हैं, तो यह वास्तव में बहुत बढ़िया है।


7

अगर मैं अच्छी तरह से समझ गया हूं, तो आपकी समस्याओं में से एक यह है कि डेवलपर्स एसवीएन का ठीक से उपयोग नहीं कर रहे हैं और इससे एसवीएन रिपॉजिटरी में सामग्री अस्थिर हो जाती है।

तो शायद आप कुछ चीजों की कोशिश कर सकते हैं:

स्पष्ट रिपॉजिटरी उपयोग नीति सेट करें

सभी डेवलपर्स को रिपॉजिटरी का उपयोग करने का तरीका स्पष्ट करें और कब और क्या करना है। इसलिए रिपॉजिटरी के पास हमेशा प्रोजेक्ट की वर्किंग कॉपी होती है।

वितरित नियंत्रण प्रणाली का उपयोग करें

यदि आप Git या Mercurial जैसी वितरित नियंत्रण प्रणाली का उपयोग करते हैं , तो प्रत्येक उपयोगकर्ता अपनी रिपॉजिटरी के लिए प्रतिबद्ध हो सकता है और केवल अपने संस्करणों को एक केंद्रीकृत पर भेज सकता है जब उन्हें यकीन है कि यह काम करेगा, तो आप शायद प्रत्येक उपयोगकर्ता के लिए प्रतिबद्ध विंडो भी सेट कर सकते हैं ताकि वे डॉन 'प्रत्येक अन्य कोड पर कदम।

यह कहते हुए, आपके मामले में मैं मर्क्यूरियल के लिए जाऊंगा, क्योंकि यह पायथन में विकसित हुआ है और आप इसे अपनी आवश्यकताओं के अनुरूप बनाने के लिए हुक बना सकते हैं। और क्योंकि SVN से सीखने की अवस्था यह काफी आसान है ... शुरू करने के लिए एक अच्छा बिंदु है hginit ट्यूटोरियल, कि वास्तव में SVN फिर से शिक्षा नामक एक खंड है।


2

मुझे लगता है कि आपको किसी प्रभारी और अधिक जवाबदेही की आवश्यकता है। मेरा सुझाव टूलबॉक्स के लिए प्रशासक की नियुक्ति या भर्ती करना होगा। सार्वजनिक टूलबॉक्स और उसके स्थान पर सब कुछ केवल व्यवस्थापक को छोड़कर पढ़ें। व्यवस्थापक यह सुनिश्चित करने के लिए ज़िम्मेदार हो सकता है कि एसवीएन अंतरिक्ष के बाहर वस्तुओं के मामले में परीक्षण किया गया, जाँच (या प्रबंधित - किया गया)। चूंकि व्यवस्थापक को यह देखने का मौका मिलेगा कि लोग क्या कर रहे हैं, उसे पता चल जाएगा कि किसी को प्रशिक्षण की आवश्यकता है, यानी वह अनुचित तरीके से काम करने वाले लोगों को पकड़ सकता है।


2

यह एक प्रौद्योगिकी समस्या के बजाय लोगों की समस्या है। टूलबॉक्स और टेम्पलेट फ़ाइलों को स्रोत नियंत्रण के बाहर संपादित किया जा रहा है, इसलिए इस पर कोई नियंत्रण नहीं है। ये फाइलें बाइनरी फाइलों के होते हुए भी संस्करण नियंत्रण में होनी चाहिए और आप इन्हें अलग या तुलना नहीं कर सकते। अंगूठे के एक सामान्य नियम के रूप में, कुछ भी जो आपके कोड से उत्पन्न नहीं होता है, और कोड को चलाने या संकलित करने के लिए आवश्यक है, स्रोत नियंत्रण के लिए होना चाहिए।

इस तरह से पूरी परियोजना स्रोत नियंत्रण में होगी, और हमेशा एक कार्यशील प्रतिलिपि होगी। डेवलपर्स को अपने स्थानीय संस्करण में टूलबॉक्स और टेम्पलेट को लॉक करने के बाद संपादित करना चाहिए और जब उनकी स्थानीय प्रतिलिपि काम कर रही हो तो उसे वापस करना चाहिए।

के रूप में

... अन्य लोगों के लिए अपडेट नहीं किया गया क्योंकि उन्हें वापस चेक नहीं किया गया है

यह लोगों की समस्या है, और जब तक आपके सभी डेवलपर्स यह नहीं समझते कि यह क्यों महत्वपूर्ण है, कोई भी तकनीक मदद करने वाली नहीं है।


2

टूलबॉक्स नियमित रूप से कई लोगों द्वारा टूलबॉक्स को संपादित करने से गड़बड़ हो जाता है

इस विशेष समस्या के लिए, हम अपने टूलबॉक्स को एक आर्कस्डे डेटाबेस में रखते हैं। मैंने अन्य प्रकार के डेटाबेस के साथ प्रयास नहीं किया है! जब तक दो व्यक्ति एक ही उपकरण को एक ही समय में संपादित नहीं करते, तब तक यह बहुत अच्छा काम करता है। फ़ाइल टूलबॉक्स (.tbx) की तुलना में वास्तव में कम समस्याएं।


क्या आप कह रहे हैं कि आप टूल बॉक्स को SDE में संस्करणित करते हैं ताकि एक ही समय में कई लोग विभिन्न उपकरणों को संपादित कर सकें? आपको इस दृष्टिकोण से कोई समस्या नहीं है?
सिंडी जयकुमार

नहीं, मुझे नहीं लगता कि आप एक टूलबॉक्स संस्करण कर सकते हैं। आप बस SDE में एक टूलबॉक्स बनाएँ। और कई लोग एक ही समय में विभिन्न उपकरणों को संपादित कर सकते हैं। दो समस्याएं, स्पष्ट रूप से अगर कोई एक ही टूल को संपादित करता है और जैसे आर्क टूलबॉक्स टूलबॉक्स (एसडीई) के उद्घाटन के समय सामग्री को लोड करता है और इसे मेमोरी में रखता है, अगर कोई और उपकरण टूलबॉक्स (एसडीई) के उद्घाटन के बाद से संपादित किया गया है। । बाद में इसे कम से कम किया जा सकता है जैसे कि यह ज्ञात है, आप आर्कपार्ट को फिर से शुरू कर सकते हैं या आप एसडीई कनेक्शन को बंद कर सकते हैं और इसे फिर से खोल सकते हैं। उम्मीद है कि यह स्पष्ट है।
जेब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.