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) і навіть полегшити керування бінарними версіями (наприклад, Debian Testing і наступний випуск Debian «Розтягнути»). Процес переведення QGIS до QT5 вже має важливий прогрес (в основному те, що зробив Матіас Кун), який разом з Марко Бернасочі розробляє Android "QField", повністю заснований на QT5. Однак існують певні обмеження щодо запуску нового QT5 через його вплив на QGIS – зокрема, на віджети веб-браузера (в основному використовуються в Composer, а також у кількох інших місцях у QGIS).

PyQt4 для поновлення PyQt5: Ці зміни пов'язані з мовою Python для Qt в API QGIS Python засноване. ЦЕ МОЖЕ змінити бібліотеку QT5 C ++, як очікується, також передати в бібліотеку пітона PyQt5 так, щоб вони могли скористатися перевагами нового API в Python QT5.
Оновлення Python Python 2.7 3 в: На даний момент все працює на Python 2.7. Python 3 є останньою версією python і рекомендується керівниками цього проекту. Python 2 трохи несумісний з Python 3 (майже пропорційний несумісності між QGIS 2 і Qgis 3). Багато розробників зробили python Python 3 переважно зворотньо сумісним з Python 2, але зворотна сумісність не така вже й велика.
Поліпшення Qgis власного API: Однією з проблем із підтримкою сумісності API між версіями є те, що вам доведеться довго жити зі своїм вибором дизайну. QGIS докладає всіх зусиль, щоб не зламати API у серії незначних випусків. Випуск версії QGIS для версії 3.0 з API, який наразі не підтримується, дасть нам можливість «навести порядок», виправивши речі в API, які ми несумісні. Ви можете побачити попередній список Зміни, запропоновані для API 3.0.

Як підтримувати зміну API 3.0

Як уже зазначалося, версія 3.0 зламається з QGIS версії 2.x, і існує ймовірність того, що багато плагінів, існуючих програм та іншого коду, що базуються на поточному API, зламаються. То що можна зробити, щоб пом’якшити зміни? Маттіас Кун, Юрген Фішер, Найл Доусон, Мартін Добіас та інші провідні розробники шукали способи зменшити кількість змін API-перерв, продовжуючи вдосконалювати базу кодів QGIS на основі наступного покоління бібліотек та власного внутрішнього API. Під час нашого останнього засідання Керівного комітету проекту QGIS воно було розраховано на різні можливості. Наступна таблиця узагальнює те, що люб'язно узагальнив Маттіас Кун, і що ми частково спробували транслітерувати в цій статті відповідно до того, що Опубліковано в вашому блозі:


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

Є дві важливі речі, про які слід пам'ятати про пропозицію Матіаса:

На першому етапіРобота виконана в серії для завершення 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Слід зазначити, що, хоча вищезазначений підхід намагається мінімізувати обсяг роботи над сценаріями python у плагінах, це не обов'язково буде 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».

The QGIS блогЗвідки вийшла ця публікація.

Гольджі Альварес

Письменник, дослідник, спеціаліст із моделей землеустрою. Він брав участь у концептуалізації та впровадженні таких моделей, як: Національна система управління майном SINAP в Гондурасі, Модель управління спільними муніципалітетами в Гондурасі, Інтегрована модель управління кадастром - реєстр в Нікарагуа, Система адміністрування території SAT в Колумбії. . Редактор блогу знань Geofumadas з 2007 року та творець Академії AulaGEO, яка включає більше 100 курсів на теми GIS - CAD - BIM - Digital Twins.

Статті по темі

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

Догори кнопки