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) і нават палягчаць кіраванне бінарнымі версіямі (напрыклад, Debian Testing і наступная версія Debian "Stretch"). Працэс навядзення QGIS у QT5 ужо мае важны прарыў (у асноўным тое, што зрабіў Маціяс Кун), які разам з Марка Бернасочы паліў на Android «QField» цалкам на аснове QT5. Аднак ёсць некаторыя абмежаванні пры запуску новага QT5 з-за яго ўздзеяння на QGIS, асабліва ў дачыненні да віджэтаў вэб-браўзэраў (у асноўным выкарыстоўваецца кампазітар, а таксама некаторыя іншыя месцы ў QGIS).

PyQt4 для абнаўлення PyQt5: Гэтыя змены звязаныя з мовай Python для Qt у API QGIS Python заснавана. Узнікае змяніць бібліятэку QT5 C ++, як чакаецца, таксама перадаць у бібліятэку пітона PyQt5 так, каб яны маглі скарыстацца перавагамі новага API ў Python QT5.
Абнаўленне Python Python 2.7 3 ў: У цяперашні час усё працуе на Python 2.7. 3 Python з'яўляецца апошняй версіяй пітона і рэкамендуецца для тых, хто вядзе гэты праект. Python трохі несумяшчальныя з 2 3 Python (у амаль прапарцыйная несумяшчальнасці паміж QGIS будзе 2 і 3 QGIS меры). Многія распрацоўшчыкі зрабілі пітон Python 3 ў значнай ступені сумяшчальны з больш раннімі версіямі Python 2, але зваротная сумяшчальнасць не так добра.
Паляпшэнне Qgis ўласнай API: Адна з праблем, з захаваннем сумяшчальнасці API паміж версіямі з'яўляецца тое, што вы павінны жыць з варыянтамі дызайну на працягу доўгага тэрміну. У QGIS усё магчымае, каб пазбегнуць парушэнні API ў серыі выпускаў нязначны. QGIS выпусціць версію 3.0 з непадтрымоўванымі API з токам дала магчымасць «чысты дом», фіксуючы рэчы ў API, што мы там з неадпаведнасцю. Вы можаце ўбачыць папярэдні спіс 3.0 прапанаваных змяненняў у API.

Як падтрымаць змены API 3.0

Як ужо згадвалася, версія 3.0 разрыў з QGIS версіі 2.x прычынай і ёсць верагоднасць таго, што многія убудовы, існуючыя прыкладання і іншыя коды заснаваныя на бягучай паломкі API. Так што можа быць зроблена для змякчэння змены? Маціяс Кун, Юрген Фішэр, Найолл Доўсан, Марцін Добиас і іншыя буйныя распрацоўшчыкі шукаюць шляхі, каб змякчыць шэраг змяненняў API парушаючы пры гэтым прасоўванне кода QGIS база грунтуецца на наступным пакаленні бібліятэк і іх уласнага ўнутранага API. Падчас нашага апошняга пасяджэння кіруючага камітэта праекта QGIS быў geofumó праз розныя магчымасці. У наступнай табліцы прыведзены нейкія Маціяс Кун сумуецца мякка і часткова паспрабавалі транслітарацыі ў гэтым артыкуле, у адпаведнасці з тым, што Яны апублікавалі ў сваім блогу:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
дата выпуску канец лютага 4 2.14 месяцаў ¿Цыкл 8 месяцаў?
нататкі Абнаўленне ядра кода QGIS пітон Python 3, каб быць сумяшчальным і падтрымлівае PyQt5 (частковую рэалізацыю ключавых функцый, напрыклад, кансолі, асноўныя пітон убудоў і г.д.)
Qt4 Si

Забароненыя ў Debian Stretch (з-за у год)

(-webkit выдалены)

ды няма
Qt5 няма

Прамашкі QWebView - новая замена не на ўсіх платформах. Таксама сумуе QPainter рухавіка.

Si Si
PyQt4 Si Si няма
PyQt5 няма Si Si
Python 2 Si Si няма
Python 3 няма Si Si
Cleanup API няма няма Si
абгортак
PyQt5 -> PyQt4
~ 90% забяспечвае зваротную сумяшчальнасць
няма Si Si
неспецыялізаваныя Binary На аснове Qt4 На аснове Qt4 На аснове Qt5
фінансаванне прыярытэтных Python абгортак

Ёсць дзве важныя рэчы, каб адзначыць аб прапанове Matthias:

На першым этапеПраца выканана ў серыі для завяршэння 2.x падтрымкі QT5, PyQt5 з дапамогай Python 3.0, падтрымліваючы Qt4, PyQt4 і Python 2.7. Гэта азначае, што ўсе змены, зробленыя на першым этапе будуць сумяшчальныя з больш раннімі версіямі 2.x. Магчымасці Python будзе ўключаны будуць уведзены так, што стары 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 працягваць працаваць на версіі 3.x ў QGIS. Гэтая фаза таксама чакаецца ўнясенне змяненняў у QGIS API, якія могуць парушыць некаторыя ўбудовы. Для вырашэння гэтай праблемы забяспечыць пераход кіраўніцтва аа, каб паспрабаваць аблегчыць міграцыю версій 2.x QGIS 3.x QGIS версіі.

хай пакупнік будзе пільны

Ёсць некалькі трукаў, якія варта задаць, каб гарантаваць, што пераход да QGIS 3.0 гук менш балючым.

  • 1. Sе варта адзначыць, што ў той час як фокус усталяваны, каб мінімізаваць аб'ём працы на пітон сцэнары убудова, гэта не абавязкова будзе на 100%. Там, хутчэй за ўсё, выпадкі, калі код павінен быць адрэгуляваны і ва ўсіх выпадках, па меншай меры, вы, верагодна, павінны быць перагледжаны, з тым, каб пераканацца, што яна працягвае функцыянаваць належным чынам.
    2. Там няма афіцыйна ўстаноўлены фінансавыя рэсурсаў для аплаты распрацоўшчыкаў, якія добраахвотна ўкладваюць свой час для гэтага працэсу міграцыі. З-за гэтага, гэта будзе вельмі цяжка даць дакладныя тэрміны, як доўга ён будзе прымаць кожную частку працэсу. Неабходна ўлічваць гэтую нявызначанасць у планаванні. Вядома, ахвяраванні вітаюцца адкрываецца, каб дапамагчы зрабіць гэта адбылося.
    3. Там могуць быць распрацоўшчыкі і ўстановы, якія там фінансуюць новыя магчымасці для серыі 2.x QGIS, і гэта можа паўплываць на іх працу. Быць уключана ў планах і бюджэтах гэтых праектаў, некаторыя размеркавання для вырашэння міграцыі на платформу 3.x QGIS.
    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 для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца для вашых каментароў.