QGIS 3.0 - कैसे, कब और क्या; यह संकेत मिलता है
कई लोग खुद से पूछ रहे हैं:
QGIS 3.0 को कब जारी किया जाएगा?
पिछले साल (2015) प्रोजेक्ट टीम ने जांच की शुरूआत की कि कब और कैसे रिलीज़ होना चाहिए QGIS 3.0। उन्होंने वादा किया था, से एक पोस्ट के अनुसार अनीता ग्रासर, कि वे QGIS 3.0 लॉन्च करने से पहले उपयोगकर्ताओं और डेवलपर्स को अपनी योजनाओं को स्पष्ट रूप से बताएंगे। उन्होंने हाल ही में एक QGIS 3.0 रिलीज के लिए कुछ विचारों को उजागर करने की कोशिश की है और पोस्ट के अंत में हमारे लिए अपने विचारों को प्रस्तुत करने का एक अवसर है।
क्यों 3.0?
आमतौर पर एक प्रमुख संस्करण ऐसे समय के लिए आरक्षित होता है जब आपके सॉफ़्टवेयर के एपीआई में बड़ा बदलाव किया जाता है। यह ब्रेक QGIS प्रोजेक्ट के लिए एक तुच्छ निर्णय नहीं है क्योंकि हम सैकड़ों हजारों उपयोगकर्ता हैं जो QGIS पर निर्भर हैं, दोनों हमारे अपने उपयोग के लिए और तीसरे पक्ष को प्रदान की गई सेवाओं के लिए।
कभी-कभी एपीआई को तोड़ना आवश्यक है कि वास्तुकला को अद्यतन, नए पुस्तकालयों के सुधार और अतीत में किए गए फैसले के सुधार के साथ अपडेट किया जा सके।
एपीआई को तोड़ने के क्या परिणाम हैं?
इसका एक कारण यह QGIS 3.0 में एपीआई के इस उल्लंघन है कि यह एक बड़ा प्रभाव है, जो विकसित करने वाले प्लग इन अब नई एपीआई के साथ संगत होगा के सैकड़ों और इन के लेखकों को तोड़ सकते थे करने के लिए है होगा नए एपीआई के साथ संगतता सुनिश्चित करने के लिए उनके विकास की समीक्षा
आवश्यक परिवर्तनों की सीमा इस पर काफी हद तक निर्भर करता है:
- एपीआई में कितने परिवर्तन मौजूदा कार्यक्षमता को प्रभावित करते हैं
प्लगिन लेखकों ने एपीआई के कुछ हिस्सों का इस्तेमाल किया है, जो कि वे बदलते हैं, कितने बिंदु पर। -
3.0 के मुख्य बदलाव क्या होंगे?
चार प्रमुख क्षेत्रों में आप 3.0 में परिवर्तन करना चाहते हैं:
QT4 को अपडेट करें QT5: यह पुस्तकालयों का मूल सेट है जिसे क्यूजीआईएस शीर्ष स्तर पर बनाया गया है, हम मंच के कोर-कार्यात्मक स्तर की बात करते हैं। क्यूटी स्मृति प्रबंधन, कनेक्टिविटी संचालन और ग्राफिक्स प्रबंधन करने के लिए पुस्तकालय भी प्रदान करता है। Qt4 (जो वर्तमान में QGIS पर आधारित है) वर्तमान में Qt पुस्तकालय अनुरक्षकों द्वारा विकसित नहीं किया जा रहा है और इसमें कुछ प्लेटफ़ॉर्म (जैसे OS X) के साथ कार्यक्षमता संबंधी समस्याएँ हो सकती हैं और यहां तक कि बाइनरी संस्करणों (जैसे डेबियन परीक्षण और अगली डेबियन रिलीज़) को प्रबंधित करना आसान बना सकता है। "फैलाव")। क्यूजीआईएस को क्यूटी5 में लाने की प्रक्रिया में पहले से ही एक महत्वपूर्ण प्रगति है (मुख्य रूप से मैथियास कुह्न ने जो किया है) कि मार्को बर्नसोची के साथ मिलकर पूरी तरह से क्यूटी 5 पर आधारित एंड्रॉइड "क्यूफिल्ड" पर धूम्रपान करते हैं। हालांकि, क्यूजीआईएस पर इसके प्रभाव के कारण नए क्यूटी5 को चलाने और चलाने में कुछ सीमाएं हैं - विशेष रूप से वेब ब्राउज़र विजेट्स के साथ (मुख्य रूप से संगीतकार में और क्यूजीआईएस में कुछ अन्य स्थानों पर भी)।
PyQt4 को PyQt5 में अपडेट करें: इन परिवर्तनों QGIS अजगर एपीआई में क्यूटी के लिए अजगर भाषा से जुड़े हुए हैं आधारित है। QT5 सी ++ पुस्तकालय बदल उठता है, भी PyQt5 अजगर पुस्तकालय के लिए स्थानांतरण करने के लिए इतना है कि वे अजगर QT5 में नए एपीआई के लाभों का लाभ ले सकते उम्मीद है।
2.7: पायथन के लिए पायथन 3 को अद्यतन करना वर्तमान में सब कुछ पायथन 2.7 पर चलता है। पायथन 3 पायथन का नवीनतम संस्करण है और यह उस परियोजना के अग्रणी लोगों द्वारा अनुशंसित है। अजगर 2 पायथन 3 के साथ थोड़ा असंगत है (लगभग QGIS 2 और Qgis 3 के बीच असंगतता के समानुपाती)। कई डेवलपर्स ने अजगर पायथन 3 को बड़े पैमाने पर पिछड़े 2 पायथन के साथ संगत किया है, लेकिन पिछड़ी संगतता इतनी महान नहीं है।
QGIS API को स्वयं सुधारना: संस्करणों के बीच एपीआई संगतता बनाए रखने में समस्याओं में से एक यह है कि आपको लंबी अवधि के लिए अपने डिजाइन विकल्पों के साथ रहना होगा। क्यूजीआईएस में हर संभव प्रयास किया जाता है कि एपीआई को मामूली रिलीज की एक श्रृंखला में न तोड़ा जाए। 3.0 के लिए एक क्यूजीआईएस संस्करण जारी करने से एक एपीआई जो वर्तमान में समर्थित नहीं है, हमें एपीआई में उन चीजों को ठीक करके "क्लीन हाउस" का अवसर देगा, जिनका हम अनुपालन नहीं कर रहे हैं। आप की एक अनंतिम सूची देख सकते हैं 3.0 API के लिए प्रस्तावित परिवर्तन.
3.0 API को बदलने का समर्थन कैसे करें
जैसा कि पहले ही उल्लेख किया गया है, संस्करण 3.0 QGIS संस्करण 2.x के साथ टूट जाएगा और एक मौका है कि कई प्लगइन्स, मौजूदा एप्लिकेशन और अन्य कोड जो वर्तमान एपीआई पर आधारित हैं, टूट जाएंगे। तो परिवर्तनों को कम करने के लिए क्या किया जा सकता है? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias, और अन्य शीर्ष डेवलपर्स QGIS कोडबेस को अगली पीढ़ी के पुस्तकालयों और इसके स्वयं के आंतरिक API पर आधारित होने से पहले जारी रखते हुए API ब्रेक परिवर्तनों की संख्या को कम करने के तरीकों की तलाश कर रहे हैं। QGIS प्रोजेक्ट स्टीयरिंग कमेटी की हमारी पिछली बैठक के दौरान इसे विभिन्न संभावनाओं के माध्यम से परिभाषित किया गया था। निम्नलिखित तालिका संक्षेप में बताती है कि माथियास कुह्न ने क्या संक्षेप में संक्षेप में प्रस्तुत किया है और हमने इस लेख में आंशिक रूप से क्या करने की कोशिश की है आपके ब्लॉग पर पोस्ट किया:
QGIS 2.14 एलटीआर |
QGIS 2.16 ??? | QGIS 3.0 | |
Fecha डे lanzamiento | फरवरी की समाप्ति | 4 महीने बाद 2.14 | साइकिल 8 महीने? |
विधेयकों | Python 3 संगत और PyQt5 संगत होने के लिए कोर क्यूजीआईएस के अजैक्स कोड को अपडेट करें (प्रमुख कार्यक्षमता जैसे कंसोल, पायथन कोर प्लगइंस इत्यादि के लिए आंशिक कार्यान्वयन आदि) | ||
Qt4 | Si
डेबियन स्ट्रेच में पदावनत (एक वर्ष में) (वेबकिट निकाल दिया गया) |
हाँ | नहीं |
Qt5 | नहीं
मिस्ड QWebView - सभी प्लेटफ़ॉर्म पर नये प्रतिस्थापन नहीं। इसके अलावा QPainter इंजन की भी याद आती है |
Si | Si |
PyQt4 | Si | Si | नहीं |
PyQt5 | नहीं | Si | Si |
अजगर 2 | Si | Si | नहीं |
अजगर 3 | नहीं | Si | Si |
एपीआई क्लीनअप | नहीं | नहीं | Si |
रैपर PyQt5 -> PyQt4 प्रदान करता है ~ 90% पश्चगामी संगतता |
नहीं | Si | Si |
मुख्यधारा बाइनरी | Qt4 आधारित | Qt4 आधारित | Qt5 आधारित |
वित्तपोषण प्राथमिकता | पायथन रैपरर्स |
मतियास के प्रस्ताव के बारे में ध्यान रखने के लिए दो महत्वपूर्ण बातें हैं:
पहले चरण में, यह काम 2.x श्रृंखला में किया जाता है ताकि QT5, PyQt5 के लिए समर्थन पूरा किया जा सके, Python 3.0 का उपयोग कर, Qt4, PyQt4 और पायथन 2.7 का समर्थन किया जा सके। इसका अर्थ है कि पहले चरण में किए गए सभी परिवर्तन पहले 2.x संस्करणों के साथ संगत होंगे। यह शामिल होगा कि अजगर की कार्यक्षमताओं को पेश किया जाएगा ताकि पुराने PyQt4 एपीआई का उपयोग विशेष रूप से तब किया जा सकता है जब QT5, PyQt5, पायथन 3.0 के विरुद्ध संकलित हो। Qt4, PyQt4 और पायथन 2.7 के खिलाफ संकलित QGIS का उपयोग करते समय कोई ब्रेक संगतता नहीं होगी।
दूसरे चरण मेंयह QGIS 3.0 निर्माण करने के लिए, नई एपीआई शुरू करने, पूरी तरह से अजगर 2.7 निकालने के लिए, Qt4 और PyQt4 के लिए समर्थन सहित काम करेगा। पहले चरण में प्रवेश अजगर में नई सुविधाएँ बनाए रखा जाएगा, खाते में सभी अजगर कोड और QGIS की 2.x संस्करणों के लिए घटनाक्रम QGIS की 3.x संस्करणों पर काम करना जारी लेने। इस चरण में यह भी उम्मीद है कि कुछ प्लगइन्स को तोड़ सकते हैं जो कि QGIS API में परिवर्तनों को पेश करने की उम्मीद है। पता करने के लिए इस संस्करण के प्रवास 2.x QGIS 3.x QGIS संस्करणों की सुविधा के लिए प्रयास करने के लिए मार्गदर्शन आ प्रवास प्रदान करेगा।
चेतावनी एपिटर
यह सुनिश्चित करने के लिए कि जो कुछ क्यूजीआईएस 3.0 के लिए माइग्रेशन कम दर्दनाक है, वहाँ कुछ चालें हैं।
- 1. एसयह ध्यान दिया जाना चाहिए कि जबकि ऊपर दिया गया दृष्टिकोण प्लगइन्स में अजगर स्क्रिप्टिंग पर काम की मात्रा को कम करने की कोशिश करता है, यह आवश्यक रूप से 100% नहीं होगा। ज्यादातर ऐसे मामले होंगे जहां कोड को कम करना होगा और सभी मामलों में कम से कम यह सुनिश्चित करने के लिए इसे संशोधित करना होगा ताकि यह ठीक से काम करता रहे।
2. डेवलपर्स को भुगतान करने के लिए औपचारिक रूप से स्थापित वित्तीय संसाधन नहीं है जो इस प्रवासन प्रक्रिया के लिए स्वेच्छा से अपना समय निवेश करते हैं। इस वजह से, प्रक्रिया के प्रत्येक भाग में कितना समय लगेगा, इसके लिए सटीक समय सीमा देना बहुत मुश्किल होगा। इस अनिश्चितता को नियोजन में ध्यान में रखा जाना चाहिए। बेशक ऐसा करने में मदद के लिए दान का स्वागत है।
3. वहाँ डेवलपर्स और संस्थान हो सकते हैं जो QGIS 2.x श्रृंखला के लिए नई सुविधाएँ प्रदान कर रहे हैं और यह आपके काम को प्रभावित कर सकता है। इन परियोजनाओं की योजनाओं और बजट में शामिल होना आवश्यक है, क्यूजीआईएस 3.x प्लेटफ़ॉर्म पर प्रवास का सामना करने के लिए एक निश्चित आवंटन।
4. यदि क्यूजीआईएस टीम "कुल परिवर्तन" पर काम करती है, तो अपेक्षाकृत कम समय होगा जिसके दौरान क्यूजीआईएस अस्थिर होगा और क्यूजीआईएस 3.0 के चल रहे अपडेट के कारण लगातार बदल रहा है।
4. यदि आप 'विकासवादी' तरीके से विकास करते हैं, तो आप जोखिम उठाते हैं कि 3.0 के विकास में अधिक समय लग सकता है जब तक कि आपके पास इस पर काम करने वाले डेवलपर्स का एक वफादार समूह न हो और इसे पोर्ट करने के लिए तैयार न हो।प्रस्तावों
उपरोक्त सभी सूचनाओं के प्रकाश में, कार्रवाई की दो पंक्तियों में से एक का प्रस्ताव है:
1 प्रस्ताव:
एक अंतरिम संस्करण 2.16 जारी करें और फिर 3.0 महीने की विकास खिड़की के साथ, प्राथमिकता के रूप में संस्करण 8 पर काम करना शुरू करें। 2.16 संस्करण में किए गए परिवर्तन संस्करण 3.0 के साथ संगत होना चाहते हैं (python3 / pytq5 देखें)।
2 प्रस्ताव:
QT3.0, पायथन 5 और PyQt3.0 पर एक लंबी अवधि वाली विंडो के साथ एक बार में 5 लॉन्च करें, और डेवलपर्स को अपने कार्य को 3.0 पर करने के लिए कहें। 2 के तैयार होने तक 3.0.x संस्करणों के साथ नियमित अंतराल पर जारी रखें।
वैकल्पिक प्रस्ताव
क्या आपके पास कोई वैकल्पिक प्रस्ताव है? क्यूजीआईएस संभावित विकल्पों के बारे में जानने में रुचि रखता है। यदि आप एक प्रस्ताव प्रस्तुत करना चाहते हैं, तो कृपया भेजें tim@qgis.org विषय "क्यूजीआईएस 3.0 प्रस्ताव" के साथ।
का पालन करना चाहिए QGIS ब्लॉग, जहां यह प्रकाशन बाहर आया था।