qgis

QGIS 3.0 - چگونه ، چه زمانی و چه چیزی. نشان دهنده آن است

بسیاری از ما تعجب می کنیم:

QGIS 3.0 آزاد خواهد شد؟

سال گذشته (2015) تیم پروژه شروع به تحقیق درباره زمان و چگونگی انتشار QGIS 3.0 کرد. آنها قول داده اند، بر اساس یک پست از آنیتا گراسر، اینکه آنها قصد داشتند قبل از راه اندازی QGIS 3.0 برنامه های خود را به وضوح به کاربران و توسعه دهندگان منتقل کنند. آنها اخیراً سعی کرده اند برخی از ملاحظات مربوط به انتشار QGIS 3.0 را افشا کنند و در انتهای پست فرصتی برای ارائه ایده های خود فراهم شده است.

چرا 3.0؟

QGis_Logoمعمولاً یک نسخه اصلی برای مواقعی که تغییر بزرگی در API نرم افزار شما ایجاد می شود ، محفوظ است. این وقفه برای پروژه QGIS یک تصمیم پیش پا افتاده نیست زیرا ما صدها هزار کاربر هستیم که به QGIS وابسته هستیم ، هم برای استفاده شخصی و هم برای خدمات ارائه شده به اشخاص ثالث.

از زمان به زمان شکستن API لازم است تا با به روز رسانی معماری با بهبود رویکردها، کتابخانه های جدید و تصحیح تصمیماتی که در گذشته گرفته شده است.

پیام های شکستن API چیست؟

یکی از دلایلی که این نقض API در QGIS 3.0 است که آن را به یک تاثیر بزرگ، که می تواند صدها پلاگین توسعه یافته است که دیگر نمی خواهد سازگار با API های جدید و نویسندگان از این شکستن به انجام بررسی پیشرفت های خود را برای اطمینان از سازگاری با API جدید.

میزان تغییرات مورد نیاز به میزان زیادی بستگی دارد:

  • چندین تغییر در API بر عملکرد فعلی تاثیر می گذارد.
    در بسیاری از موارد نویسندگان پلاگین بخش هایی از API را استفاده می کنند که تغییر می کنند.
  • تغییرات اصلی برای 3.0 چیست؟

چهار حوزه کلیدی که شما دنبال تغییر در 3.0 هستید وجود دارد:

 

به روز رسانی Qt4 به QT5: این مجموعه پایه ای از کتابخانه ها است که QGIS در سطح بالایی ساخته شده است، ما از سطح عملکردی CORE پلت فرم صحبت می کنیم. QT همچنین کتابخانه هایی را برای انجام مدیریت حافظه، عملیات اتصال و مدیریت گرافیک فراهم می کند. Qt4 (که در حال حاضر QGIS بر اساس آن است) در حال حاضر توسط نگهبانان کتابخانه Qt توسعه نمی یابد و ممکن است مشکلات عملکردی با برخی از سیستم عامل ها (مانند OS X) داشته باشد و حتی مدیریت نسخه های باینری را آسان تر کند (مثلاً تست دبیان و نسخه بعدی دبیان). "کش آمدن"). روند آوردن QGIS به QT5 در حال حاضر پیشرفت مهمی دارد (عمدتاً کاری که ماتیاس کوهن انجام داده است) که همراه با مارکو برناسوچی روی Android "QField" کاملاً مبتنی بر QT5 دود می کنند. با این حال، محدودیت‌هایی در راه‌اندازی و اجرای QT5 جدید به دلیل تأثیر آن بر QGIS وجود دارد - به‌ویژه با ویجت‌های مرورگر وب (عمدتاً در Composer و همچنین چند مکان دیگر در QGIS استفاده می‌شود).

به روز رسانی PyQt4 به PyQt5: این تغییرات نسبی به زبان پایتون برای Qt است که بر اساس آن API QGIS Python است. مطرح می شود تغییر کتابخانه QT5 C ++ است، همچنین انتظار می رود برای انتقال به کتابخانه پایتون PyQt5 به طوری که آنها می توانید استفاده از مزایای API های جدید در پایتون QT5 است.
به روز رسانی Python 2.7 به Python 3: در حال حاضر همه چیز روی پایتون 2.7 اجرا می شود. Python 3 آخرین نسخه پایتون است و توسط کسانی که آن پروژه را هدایت می کنند توصیه می شود. پایتون 2 با پایتون 3 ناسازگار است (تقریباً متناسب با ناسازگاری بین QGIS 2 و Qgis 3). بسیاری از توسعه دهندگان پایتون Python 3 را تا حد زیادی عقب با پایتون 2 سازگار کرده اند ، اما سازگاری به عقب چندان عالی نیست.
بهبود API خود QGIS: یکی از مشکلات حفظ سازگاری API بین نسخه ها این است که باید با انتخاب های طراحی خود برای مدت طولانی زندگی کنید. هر تلاشی در QGIS انجام می شود تا API در یک سری نسخه های جزئی شکسته نشود. انتشار یک نسخه QGIS برای نسخه 3.0 با API که در حال حاضر پشتیبانی نمی‌شود، به ما فرصتی می‌دهد تا با اصلاح مواردی در API که با آن‌ها مطابقت نداریم، «خانه تمیز» را انجام دهیم. شما می توانید یک لیست موقت از تغییرات پیشنهادی برای API 3.0.

چگونه برای حمایت از تغییر API 3.0

همانطور که قبلاً ذکر شد ، نسخه 3.0 با نسخه 2.x QGIS خراب می شود و این احتمال وجود دارد که بسیاری از پلاگین ها ، برنامه های موجود و کد دیگری که مبتنی بر API فعلی هستند ، خراب شوند. بنابراین برای کاهش تغییرات چه کاری می توان انجام داد؟ ماتیاس کوهن ، یورگن فیشر ، نیال داوسون ، مارتین دوبیاس و دیگر توسعه دهندگان برتر در حالی که همچنان به پیشبرد پایگاه کد QGIS مبتنی بر نسل بعدی کتابخانه ها و API داخلی خود می پردازند ، در جستجوی راه هایی برای کاهش تعداد تغییرات شکست API هستند. در آخرین جلسه کمیته راهبری پروژه QGIS ، از طریق امکانات مختلف تولید ژئوفیوم شد. جدول زیر خلاصه ای از آنچه ماتیاس کوهن با لطف جمع بندی کرده است و اینکه ما تا حدودی سعی کرده ایم متن این متن را با توجه به آنچه نوشته شده در وبلاگ خود:


QGIS 2.14 LTR
QGIS 2.16 ؟؟؟ QGIS 3.0
تاریخ انتشار پایان ماه فوریه 4 ماه بعد 2.14 چرخه ماه 8؟
اسکناس به روز رسانی کد پایتون از QGIS هسته سازگار با Python 3 و PyQt5 سازگار است (اجرای جزئی برای عملکرد کلیدی مانند کنسول، پلاگین های هسته پایتون و غیره)
Qt4 Si

در دبیان کشیدگی (به علت یک سال)

(webkit حذف شده)

بله نه
Qt5 نه

MissWizard QWebView - جایگزینی جدید در تمام سیستم عاملها نیست. همچنین QPainter Engine را از دست می دهد.

Si Si
PyQt4 Si Si نه
PyQt5 نه Si Si
پایتون 2 Si Si نه
پایتون 3 نه Si Si
API پاکسازی نه نه Si
پیچ و مهره
PyQt5 -> PyQt4
ارائه ~ 90٪ سازگاری به عقب
نه Si Si
اصلی دودویی مبتنی بر Qt4 مبتنی بر Qt4 مبتنی بر Qt5
اولویت تامین مالی پایتون wrappers

در مورد پیشنهاد متیاس دو چیز مهم وجود دارد:

در مرحله اولاین کار در سری انجام به تکمیل پشتیبانی 2.x QT5، PyQt5 با استفاده از پایتون 3.0، حمایت از Qt4، PyQt4 و پایتون 2.7. این بدان معنی است که تمام تغییرات انجام شده در مرحله اول با نسخه های قبلی 2.x سازگار است. ویژگی های پایتون گنجانیده شود معرفی خواهد شد به طوری که از API PyQt4 قدیمی هنوز هم می تواند به ویژه هنگامی استفاده شود که در برابر QT5، PyQt5، پایتون 3.0 وارد شده است. با استفاده از QGIS وارد برابر Qt4، PyQt4 و پایتون 2.7 سازگاری را پاره کند.
در مرحله دوماین کار به تولید QGIS 3.0، معرفی API های جدید، به طور کامل حذف پایتون 2.7، از جمله حمایت Qt4 و PyQt4. ویژگی های جدید در پایتون ورود به فاز اول خواهد شد حفظ، در نظر گرفتن تمام کد پایتون و تحولات برای نسخه های 2.x از QGIS ادامه کار بر روی نسخه های 3.x از QGIS. در این مرحله انتظار می رود که تغییرات در API QGIS را که ممکن است برخی از پلاگین ها را خراب کند معرفی کند. برای پرداختن به این خواهد مهاجرت AA راهنمایی های ارائه سعی تسهیل مهاجرت از نسخه های 2.x QGIS 3.x QGIS نسخه.

Caveat Emptor به

چند ترفند وجود دارد که باید در نظر گرفته شود تا اطمینان حاصل شود که مهاجرت به QGIS 3.0 کمتر دردناک است.

  • 1. Sلازم به ذکر است که اگرچه رویکرد ارائه شده در بالا سعی در به حداقل رساندن میزان کار روی برنامه نویسی پایتون در پلاگین ها دارد ، اما این لزوماً 100٪ نخواهد بود. به احتمال زیاد مواردی وجود دارد که کد باید دستکاری شود و حداقل در همه موارد ، برای اطمینان از عملکرد صحیح آن ، باید تجدید نظر شود.
    2. هیچ منبع مالی مشخصاً تأسیس شده ای وجود ندارد که بتواند به توسعه دهندگانی که داوطلبانه وقت خود را برای این روند مهاجرت سرمایه گذاری می کنند پرداخت کند. به همین دلیل ، ارائه چارچوب زمانی دقیق برای مدت زمان طولانی هر قسمت از مراحل کار بسیار دشوار خواهد بود. این عدم اطمینان باید در برنامه ریزی ها لحاظ شود. البته کمک های مالی برای کمک به تحقق این امر خوش آمدید.
    3. ممکن است توسعه دهندگان و موسساتی در آنجا وجود داشته باشند که ویژگی های جدید سری QGIS 2.x را تأمین می کنند و این ممکن است بر کار شما تأثیر بگذارد. لازم است که در برنامه ها و بودجه های این پروژه ها ، تخصیص مشخصی برای مواجهه با مهاجرت به سیستم عامل QGIS 3.x لحاظ شود.
    4. اگر تیم QGIS روی یک "تغییر کلی" کار کند، زمان نسبتاً کوتاهی وجود خواهد داشت که در طی آن QGIS به دلیل به روز رسانی های مداوم QGIS 3.0 ناپایدار و دائماً در حال تغییر است.
    4. اگر به روشی «تکاملی» توسعه دهید، این خطر را دارید که توسعه 3.0 ممکن است بیشتر طول بکشد، مگر اینکه یک گروه وفادار از توسعه دهندگان داشته باشید که روی آن کار کنند و آن را برای پورت آماده کنند.

    پیشنهادات

با توجه به تمام اطلاعات فوق، یکی از دو خط عمل پیشنهاد شده است:

پیشنهاد 1:

نسخه موقت 2.16 را آزاد کنید و سپس به عنوان اولویت با نسخه توسعه 3.0 کار کنید ، و یک پنجره توسعه 8 ماهه داشته باشید. تغییرات ایجاد شده در نسخه 2.16 به دنبال سازگاری با نسخه 3.0 است (به python3 / pytq5 مراجعه کنید).

پیشنهاد 2:

Lunging یک بار 3.0 با یک پنجره مدت زمان طولانی تر بر روی QT5، پایتون 3.0 و PyQt5 و توسعه دهندگان برای انجام کار خود را در 3.0. با 2.x نسخه با فرکانس معمول ادامه دهید تا 3.0 آماده باشد.

پیشنهادهای جایگزین

آیا پیشنهادی جایگزین دارید؟ QGIS علاقه مند است از گزینه های احتمالی آگاهی یابد. اگر می خواهید پیشنهادی ارسال کنید ، لطفا به آدرس ارسال کنید tim@qgis.org با موضوع "پیشنهاد QGIS 3.0".

مناسب است به دنبال وبلاگ QGIS، جایی که این انتشار از آن آمده است.

گلگی آلوارز

نویسنده، محقق، متخصص در مدل های مدیریت زمین. وی در مفهوم سازی و اجرای مدل هایی مانند: سیستم ملی مدیریت املاک SINAP در هندوراس، مدل مدیریت شهرداری های مشترک در هندوراس، مدل یکپارچه مدیریت کاداستر - ثبت در نیکاراگوئه، سیستم مدیریت منطقه SAT در کلمبیا مشارکت داشته است. . سردبیر وبلاگ دانش Geofumadas از سال 2007 و خالق آکادمی AulaGEO که شامل بیش از 100 دوره در زمینه GIS - CAD - BIM - Digital Twins است.

مقالات مرتبط

دیدگاهتان را بنویسید:

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

بازگشت به دکمه بالا