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 та майбутня версія "Stretch" 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 Proposal".

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

Залиште відповідь

Ваша електронна адреса не буде опублікований.

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.