qgis

QGIS 3.0 - Wie, wann und was; es impliziert

Viele von uns fragen:

Wann wird QGIS 3.0 veröffentlicht?

Im vergangenen Jahr (2015) begann das Projektteam zu untersuchen, wann und wie QGIS 3.0 veröffentlicht werden sollte. Sie versprachen laut einem Beitrag aus Anita Graser, die sie Benutzern und Entwicklern ihrer Pläne vor dem Start von QGIS 3.0 klar vermitteln wollten. Sie haben kürzlich versucht, einige der Überlegungen für eine QGIS 3.0-Version darzulegen, und am Ende des Beitrags haben wir die Möglichkeit, unsere Ideen vorzustellen.

Warum 3.0?

QGis_LogoIn der Regel ist eine Hauptversion für Zeiten reserviert, in denen große Änderungen an der API Ihrer Software vorgenommen werden. Diese Unterbrechung ist keine triviale Entscheidung für das QGIS-Projekt, da wir Hunderttausende von Benutzern sind, die sowohl für unseren eigenen Gebrauch als auch für Dienste, die für Dritte bereitgestellt werden, auf QGIS angewiesen sind.

Gelegentlich bricht die API die Architektur mit verbesserten Ansätzen, neuen Bibliotheken und Korrekturen an Entscheidungen in der Vergangenheit zur Aufnahme benötigt wird, um zu aktualisieren.

Was sind die Folgen der API zu brechen?

Ein Grund, warum diese Verletzung der API in QGIS 3.0 ist, dass es einen großen Einfluss haben wird, die Hunderte von entwickelten Plugins brechen könnte, die nicht mehr mit der neuen API kompatibel wäre und die Autoren von ihnen haben zu tun eine Überprüfung seiner Entwicklung Kompatibilität mit dem neuen API zu gewährleisten.

Das Ausmaß der Veränderungen erforderlich ist, hängt weitgehend von:

  • Viele API-Änderungen wirken sich auf die aktuelle Funktionalität.
    Wie viele Punkte Plugins Autoren haben Teile der API verwendet, die ändern würde.
  • Was sind die wichtigsten Änderungen an 3.0?

Es gibt vier wichtige Bereiche, die für den Wandel bei 3.0 suchen:

 

Qt4 zu QT5 Update: Dies ist der grundlegende Satz von Bibliotheken, auf denen QGIS auf oberster Ebene aufgebaut ist, wir sprechen von der CORE-Funktionsebene der Plattform. QT stellt auch Bibliotheken bereit, um Speicherverwaltung, Konnektivitätsoperationen und Grafikverwaltung durchzuführen. Qt4 (auf dem QGIS derzeit basiert) wird derzeit nicht von den Betreuern der Qt-Bibliothek entwickelt und könnte mit einigen Plattformen (z. B. OS X) Funktionsprobleme haben und es sogar einfacher machen, Binärversionen zu verwalten (z. B. Debian Testing und die nächste Debian-Version). "Strecken"). Der Prozess, QGIS auf QT5 zu bringen, hat bereits einen wichtigen Fortschritt (hauptsächlich das, was Matthias Kuhn getan hat), der zusammen mit Marco Bernasocchi auf dem vollständig auf QT5 basierenden Android „QField“ raucht. Es gibt jedoch einige Einschränkungen, um das neue QT5 zum Laufen zu bringen, da es sich auf QGIS auswirkt – insbesondere bei Webbrowser-Widgets (hauptsächlich in Composer und auch an einigen anderen Stellen in QGIS verwendet).

PyQt4 zu PyQt5 Update: Diese Änderungen beziehen sich auf die Programmiersprache Python für Qt in dem QGIS Python API basiert. Erhebt sich die Bibliothek ++ QT5 C ändern, wird auch zu PyQt5 Python-Bibliothek übertragen erwartet, so dass sie die Vorteile der neuen API in Python QT5 nehmen.
Aktualisieren Python Python 2.7 3 zu: Derzeit läuft alles auf Python 2.7. Python 3 ist die neueste Version von Python und wird von den Projektleitern empfohlen. Python 2 ist leicht inkompatibel mit Python 3 (fast proportional zur Inkompatibilität zwischen QGIS 2 und Qgis 3). Viele Entwickler haben Python Python 3 weitgehend abwärtskompatibel mit Python 2 gemacht, aber die Abwärtskompatibilität ist nicht so gut.
Die Verbesserung der QGIS eigene API: Eines der Probleme bei der Aufrechterhaltung der API-Kompatibilität zwischen Versionen besteht darin, dass Sie auf lange Sicht mit Ihren Designentscheidungen leben müssen. In QGIS wird jede Anstrengung unternommen, um die API in einer Reihe von Nebenversionen nicht zu beschädigen. Die Veröffentlichung einer QGIS-Version für 3.0 mit einer API, die derzeit nicht unterstützt wird, gibt uns die Möglichkeit, „das Haus zu reinigen“, indem wir Dinge in der API beheben, mit denen wir nicht kompatibel sind. Sie können eine vorläufige Liste von sehen 3.0 vorgeschlagenen Änderungen an der API.

Wie unterstützen die 3.0 API Ändern

Wie bereits erwähnt, wird Version 3.0 mit QGIS Version 2.x beschädigt, und es besteht die Möglichkeit, dass viele Plugins, vorhandene Anwendungen und anderer Code, der auf der aktuellen API basiert, beschädigt werden. Was kann also getan werden, um die Änderungen zu mildern? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias und andere Top-Entwickler haben nach Möglichkeiten gesucht, die Anzahl der API-Unterbrechungsänderungen zu verringern und gleichzeitig die QGIS-Codebasis, die auf der nächsten Generation von Bibliotheken und ihrer eigenen internen API basiert, weiterzuentwickeln. Während unserer letzten Sitzung des QGIS-Projektlenkungsausschusses haben wir verschiedene Möglichkeiten geofumed. Die folgende Tabelle fasst zusammen, was Matthias Kuhn liebenswürdig zusammengefasst hat und dass wir teilweise versucht haben, in diesem Artikel entsprechend zu transliterieren Sie veröffentlichte in seinem Blog:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Erscheinungsdatum Ende Februar 4 2.14 Monate ¿Zyklus 8 Monate?
Aufzeichnungen Update des Kern QGIS Python-Code Python 3 kompatibel zu sein und unterstützt PyQt5 (teilweise Umsetzung zum Schlüsselfunktionalität zB Konsole, Python Kern Plugins etc.)
Qt4 Si

Veraltete in Debian Stretch (wegen in einem Jahr)

(-webkit entfernt)

Ja Nein
Qt5 Nein

Misses QWebView - neuer Ersatz nicht auf allen Plattformen. Auch Misses QPainter Motor.

Si Si
PyQt4 Si Si Nein
PyQt5 Nein Si Si
Python 2 Si Si Nein
Python 3 Nein Si Si
Cleanup-API Nein Nein Si
Wickelmaschinen
PyQt5 -> PyQt4
~ 90% bietet Rückwärtskompatibilität
Nein Si Si
Mainstream-Binary basierend Qt4 basierend Qt4 basierend Qt5
Förderschwerpunkt Python-Wrapper

Es gibt zwei wichtige Dinge über den Vorschlag Matthias zu beachten:

In der ersten PhaseDie Arbeit wird in der Serie getan 2.x Unterstützung QT5, PyQt5 mit Python 3.0, unterstützt Qt4, PyQt4 und Python 2.7 abzuschließen. Dies bedeutet, dass alle in der ersten Phase Änderungen 2.x mit früheren Versionen kompatibel sein würden. Python Funktionen werden eingeführt werden eingebaut werden, so dass die alte API PyQt4 noch besonders verwendet werden, wenn sie gegen QT5 kompiliert, PyQt5, Python 3.0. Durch QGIS kompiliert gegen Qt4, PyQt4 und Python 2.7 verwenden würde Kompatibilität nicht brechen.
In der zweiten PhaseEs würde QGIS 3.0, die Einführung der neuen API, vollständig zu entfernen, die Python 2.7, einschließlich der Unterstützung für Qt4 und PyQt4 zu produzieren. Neue Funktionen in Python die erste Phase eintreten werden beibehalten, unter Berücksichtigung aller Python-Code und Entwicklungen für 2.x Versionen von QGIS weiterhin auf den 3.x Versionen von QGIS arbeiten. Diese Phase wird auch die Einführung Änderungen in der QGIS API erwartet, dass einige Plugins brechen. Zur Lösung dieses Problems Führung aa Migration bieten wird, um zu versuchen, die Migration von Versionen Versionen 2.x QGIS 3.x QGIS zu erleichtern.

Gewährleistungsausschluss

Es gibt ein paar Tricks gefragt werden, um sicherzustellen, dass die Migration zu QGIS 3.0 klingt weniger schmerzhaft.

  • 1. S.Es sollte beachtet werden, dass der oben beschriebene Ansatz zwar versucht, den Arbeitsaufwand für Python-Skripte in Plugins zu minimieren, dies jedoch nicht unbedingt 100% sein muss. Es wird höchstwahrscheinlich Fälle geben, in denen der Code optimiert werden muss, und zumindest in allen Fällen muss er wahrscheinlich überarbeitet werden, um sicherzustellen, dass er weiterhin ordnungsgemäß funktioniert.
    2. Es gibt keine offiziell eingerichtete finanzielle Ressource, um Entwickler zu bezahlen, die freiwillig ihre Zeit für diesen Migrationsprozess investieren. Aus diesem Grund wird es sehr schwierig sein, genaue Zeitrahmen für die Dauer jedes Teils des Prozesses anzugeben. Diese Unsicherheit muss bei der Planung berücksichtigt werden. Natürlich sind Spenden willkommen, um dies zu erreichen.
    3. Möglicherweise gibt es Entwickler und Institutionen, die neue Funktionen für die QGIS 2.x-Serie finanzieren. Dies kann sich auf Ihre Arbeit auswirken. In die Pläne und Budgets dieser Projekte muss eine bestimmte Zuweisung aufgenommen werden, um der Migration auf die QGIS 3.x-Plattform zu begegnen.
    4. Wenn das QGIS-Team an einer „totalen Änderung“ arbeitet, wird es eine relativ kurze Zeit geben, in der QGIS aufgrund laufender Updates auf QGIS 3.0 instabil ist und sich ständig ändert.
    4. Wenn Sie auf „evolutionäre“ Weise entwickeln, laufen Sie Gefahr, dass die 3.0-Entwicklung länger dauert, es sei denn, Sie haben eine loyale Gruppe von Entwicklern, die daran arbeiten und sie für die Portierung vorbereiten.

    Vorschläge

Angesichts all dieser Informationen wird eine der beiden Handlungsfelder vorgeschlagen:

1 Vorschlag:

Geben Sie eine vorläufige Version 2.16 frei und arbeiten Sie dann vorrangig an Version 3.0 mit einem Entwicklungsfenster von 8 Monaten. In Version 2.16 vorgenommene Änderungen sollen mit Version 3.0 kompatibel sein (siehe python3 / pytq5).

2 Vorschlag:

Starten Sie 3.0 sofort mit einem längeren Fenster auf QT5, Python 3.0 und PyQt5 und fragen Sie Entwickler, um ihre Arbeit auf 3.0 zu machen. Fahren Sie mit 2.x Versionen in regelmäßigen Abständen fort, bis 3.0 bereit ist.

Alternative Vorschläge

Haben Sie einen alternativen Vorschlag? QGIS ist daran interessiert, mögliche Alternativen zu kennen. Wenn Sie einen Vorschlag einreichen möchten, senden Sie bitte an Tim@qgis.org mit dem Betreff „QGIS 3.0 Proposal“.

Sollte folgt der QGIS BlogWoher kam dieser Veröffentlichung.

Golgi Alvarez

Schriftsteller, Forscher, Spezialist für Landmanagementmodelle. Er war an der Konzeption und Implementierung von Modellen beteiligt, wie z. B.: Nationales System der Vermögensverwaltung SINAP in Honduras, Modell der Verwaltung gemeinsamer Gemeinden in Honduras, Integriertes Modell der Katasterverwaltung - Register in Nicaragua, System der Verwaltung des Territoriums SAT in Kolumbien . Herausgeber des Geofumadas-Wissensblogs seit 2007 und Schöpfer der AulaGEO-Akademie, die mehr als 100 Kurse zu den Themen GIS, CAD, BIM und digitale Zwillinge umfasst.

Ähnliche Artikel

Hinterlassen Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

Nach oben-Taste