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 на највисоко ниво, зборуваме за ОСНО-функционалното ниво на платформата. QT, исто така, обезбедува библиотеки за извршување на управување со меморијата, операции за поврзување и управување со графика. Qt4 (на кој се базира QGIS во моментов) во моментов не се развива од одговорните за библиотеката Qt и може да има проблеми во однос на функционалноста со некои платформи (на пример, OS X), па дури и да го олесни управувањето со бинарни верзии (на пример, Тестирање на Дебијан и претстојната верзија на „Рашири“ на Дебијан). Процесот на доведување на QGIS до QT5 веќе има важен напредок (главно она што го направи Матијас Кун) кој заедно со Марко Бернасоки пушат на Андроид «QField» целосно базиран на QT5. Сепак, постојат некои ограничувања при лансирање на новиот QT5 поради неговото влијание врз QGIS - особено со графичките контроли на веб-прелистувачот (главно користени во Композитор, а исто така и на некои други места во QGIS).

Ажурирај PyQt4 во PyQt5: Овие промени се однесуваат на јазикот Пајтон за Qt во API на QGIS Пајтон се базира. Се јавува промена на QT5 C ++ библиотеката, исто така, се очекува да се префрли на PyQt5 Пајтон библиотека, така што тие можат да ги искористат предностите на нови API во Python QT5.
2.7: Ажурирање на Python 3 во Пајтон Во моментов сè работи на Пајтон 2.7. Python 3 е најновата верзија на python и ја препорачуваат оние што го водат тој проект. Пајтон 2 е малку некомпатибилен со Пајтон 3 (скоро пропорционален на некомпатибилноста помеѓу QGIS 2 и Qgis 3). Многу програмери го направија Python Python 3 во голема мера заостанат компатибилен со Python 2, но компатибилноста наназад не е толку голема.
Подобрување на QGIS API себе: Еден од проблемите со одржување на компатибилноста на API помеѓу верзиите е тоа што мора да живеете долгорочно со вашите опции за дизајн. Во QGIS се прават сите напори да не се скрши API во рамките на низа помали изданија. Објавување верзија на QGIS за 3.0 со API што не е компатибилен со сегашниот, ќе даде можност да се „исчисти куќата“ со тоа што ќе се поправат работите во API со кои се согласуваме дека постои несогласување. Може да видите привремен список на предложените промени за 3.0 API.

Како да ја поддржите промената на 3.0 API

Како што веќе споменавме, верзијата 3.0 ќе се расипе со QGIS верзија 2.x и постои можност да се расипат многу додатоци, постојни апликации и друг код што се базираат на тековниот API. Па, што може да се направи за да се ублажат промените? Матијас Кун, Јирген Фишер, Ниал Досон, Мартин Добијас и други врвни развивачи бараа начини да ги ублажат бројот на промени во паузите на API, продолжувајќи да ја унапредуваат базата на кодови QGIS базирана на следната генерација на библиотеки и сопствен внатрешен API. За време на нашиот последен состанок на Управувачкиот комитет на проектот QGIS, ние геофумиравме низ различни можности. Следната табела резимира што Матиах Кун милостиво го сумираше и дека делумно се обидовме да го преведеме во овој напис според тоа објавено на вашиот блог:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Датум на издавање Крај на февруари 4 месеци подоцна 2.14 Циклус 8 месеци?
Сметки Ажурирајте го Python кодот од јадрото QGIS како Python 3 компатибилен и компатибилен со PyQt5 (делумна имплементација за клучните функционалности, на пр. Конзола, python core додатоци итн.)
Qt4 Si

Заостанато во дебелиот раст (поради една година)

(отстранети webkit)

Да Не
Qt5 Не

Пропушта 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
Приоритет за финансирање Патонски омоти

Постојат две важни работи кои треба да се имаат предвид во врска со предлогот на Матијас:

Во првата фазаРаботата се врши во серијата да заврши 2.x поддршка QT5, PyQt5 користење Пајтон 3.0, поддршка Qt4, PyQt4 и Python 2.7. Ова значи дека сите промени направени во првата фаза ќе бидат компатибилни со претходните верзии на 2.x. Пајтон карактеристики ќе бидат вклучени ќе бидат воведени, така што старите API PyQt4 се уште може да се користи особено кога состави против QT5, PyQt5, python 3.0. Кога го користите QGIS компајлиран против Qt4, PyQt4 и Python 2.7, нема да има компатибилност со дефект.
Во втората фазаТоа ќе работат за да се произведе QGIS 3.0, воведување на нови API, целосно отстранување на Python 2.7, вклучувајќи поддршка за Qt4 и PyQt4. Нови можности во Пајтон да влезат во првата фаза ќе се одржува, земајќи ги предвид сите код Пајтон и случувања за 2.x верзии на QGIS продолжи да работи на верзија на QGIS 3.x. Во оваа фаза, исто така, се очекува да внесете промени во QGIS API што може да ги скрши некои приклучоци. За да одговориме на ова, ќе обезбедиме водич за миграција за да се обидеме да го олесниме процесот на миграција од 2.x QGIS верзиите до верзии 3.x QGIS.

Имиња на закани

Постојат неколку трикови кои треба да се постават за да се обезбеди дека миграцијата кон QGIS 3.0 звучи помалку болно.

  • 1. С.Треба да се напомене дека додека пристапот наведен погоре се обидува да го минимизира обемот на работа на питоматско скриптирање во приклучоци, тоа не мора да биде 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 Предлог:

Поставете 3.0 одеднаш со подолг прозорец на QT5, Python 3.0 и PyQt5, и побарајте од програмерите да ја завршат својата работа на 3.0. Продолжете со верзии на 2.x во редовни интервали додека 3.0 не е подготвен.

Алтернативни предлози

Имате алтернативен предлог? QGIS е заинтересиран да знае за можните алтернативи. Ако сакате да доставите предлог, испратете на tim@qgis.org со предметот „Предлог QGIS 3.0“.

На QGIS блог, каде што излезе оваа публикација.

Остави одговор

Вашата е-маил адреса нема да бидат објавени.

Оваа страница користи Akismet за намалување на спам. Дознајте како се обработуваат податоците од вашиот коментар.