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, на котором основан QGIS Python API. Предлагается изменить библиотеку QT5 C ++, также предполагается переместить библиотеку Python в PyQt5, чтобы можно было использовать преимущества нового API QT5 в Python.
Обновление Python 2.7 до Python 3: В настоящее время все работает на Python 2.7. Python 3 - последняя версия Python, рекомендованная руководителями этого проекта. Python 2 немного несовместим с Python 3 (почти пропорционально несовместимости между QGIS 2 и Qgis 3). Многие разработчики сделали Python 3 в значительной степени обратно совместимым с Python 2, но обратная совместимость не так уж велика.
Совершенствование самого API QGIS: Одна из проблем, связанных с поддержанием совместимости 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 месяцев?
Примечания Обновите код python для ядра QGIS, чтобы быть совместимым с Python 3 и совместимым с PyQt5 (частичная реализация для ключевых функций, таких как консоль, плагины ядра python и т. Д.).
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. На этом этапе также ожидается внесение изменений в API QGIS, которые могут сломать некоторые плагины. Чтобы решить эту проблему, мы предоставим руководство по миграции, чтобы попытаться облегчить процесс миграции из версий 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».

Если следовать Блог QGIS, Откуда появилась эта публикация.

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

Писатель, исследователь, специалист по моделям землеустройства. Он участвовал в разработке концепции и реализации таких моделей, как: Национальная система управления имуществом SINAP в Гондурасе, Модель управления совместными муниципалитетами в Гондурасе, Интегрированная модель управления кадастром - Реестр в Никарагуа, Система управления территорией SAT в Колумбии. . Редактор блога знаний Geofumadas с 2007 года и создатель Академии AulaGEO, включающей более 100 курсов по темам ГИС, САПР, BIM и цифровых двойников.

Статьи по теме

Оставить комментарий

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

Поэтому проверить
Закрыть
Вернуться к началу кнопки