QGIS 3.0: come, quando e cosa; mezzi

Molti di noi si chiedono:

Quando verrà rilasciato QGIS 3.0?

L'anno scorso (2015) il team del progetto ha iniziato a indagare su quando e come QGIS 3.0 avrebbe dovuto essere rilasciato. Hanno promesso, secondo un post di Anita Graser, che avrebbero chiaramente comunicato agli utenti e agli sviluppatori i loro piani prima di lanciare QGIS 3.0. Recentemente hanno cercato di esporre alcune delle considerazioni per un lancio di QGIS 3.0 e alla fine del post c'è l'opportunità per noi di presentare le nostre idee.

Perché 3.0?

QGis_LogoNormalmente una versione principale è riservata ai tempi in cui viene apportata una grande modifica all'API del software. Questa rottura non è una decisione banale per il progetto QGIS come siamo centinaia di migliaia di utenti che dipendono da QGIS, sia per uso proprio e per i servizi forniti a terzi.

Di tanto in tanto rompendo l'API è necessaria per accogliere l'aggiornamento all'architettura con approcci migliorate, nuove librerie e correzioni a decisioni prese in passato.

Quali sono le conseguenze di rompere l'API?

Una ragione per cui tale violazione delle API in QGIS 3.0 è che avrà un grande impatto, che potrebbe rompere centinaia di plugin sviluppati, che non sarebbero più compatibili con la nuova API e di questi autori hanno a che fare una revisione dei loro sviluppi per garantire la compatibilità con la nuova API.

La portata dei cambiamenti necessari dipende in gran parte:

  • Molti cambiamenti API influenzano la funzionalità corrente.
    Come molti punti plugin autori hanno utilizzato parti della API che avrebbe cambiato.
  • Quali sono le principali modifiche apportate 3.0?

Ci sono quattro aree chiave che sono alla ricerca di cambiamento a 3.0:

Qt4 di aggiornamento QT5: Questo è il set di base di librerie in cui QGIS è costruito nel livello più alto, si parla di livello di piattaforma CORE-funzionale. QT fornisce anche librerie per eseguire la gestione momoria, connettività gestione delle operazioni e la grafica. Il Qt4 (dove QGIS si basa attualmente) non ora in fase di sviluppo da parte dei responsabili per la libreria Qt e potrebbe avere problemi in termini di funzionalità con alcune piattaforme (come OS X) e anche di facilitare la gestione di versioni binarie (ad esempio Debian Testing e la prossima versione di Debian "Stretch"). Il processo di portare a QGIS QT5 ha già un passo avanti (soprattutto ciò che ha reso Matthias Kuhn), insieme con il fumo Marco Bernasocchi su Android "QField", basato interamente su QT5. Tuttavia, ci sono alcune limitazioni per lanciare il nuovo QT5 per il suo impatto sulla QGIS - in particolare con i browser web widget (utilizzati principalmente nel compositore e alcuni altri luoghi in QGIS).

PyQt4 di aggiornamento PyQt5: Queste sono le relative modifiche al linguaggio Python per Qt su cui si basa l'API Python QGIS. Nasce cambiare la biblioteca QT5 C ++, è previsto anche per il trasferimento alla libreria python PyQt5 in modo che possano sfruttare i vantaggi della nuova API in Python QT5.
Aggiornamento Python Python 2.7 3 a: Attualmente tutto gira su Python 2.7. Python 3 è l'ultima versione di python ed è raccomandato da coloro che guidano quel progetto. Python 2 è leggermente incompatibile con Python 3 (in misura quasi proporzionale all'incompatibilità tra QGIS 2 e Qgis 3). Molti sviluppatori hanno reso Python Python 3 ampiamente compatibile con le versioni precedenti di Python 2, ma la compatibilità inversa non è altrettanto buona.
Migliorare la propria API QGIS: Uno dei problemi con cui mantiene la compatibilità API tra le versioni è che devi vivere con le tue opzioni di progettazione a lungo termine. In QGIS, viene fatto ogni sforzo per non rompere l'API all'interno di una serie di versioni minori. Il rilascio di una versione di QGIS per 3.0 con un'API non compatibile con la corrente darà l'opportunità di "ripulire la casa" risolvendo le cose nell'API con le quali ci sono non conformità. È possibile visualizzare un elenco provvisorio di 3.0 proposto modifiche alle API.

Come sostenere cambiare l'API 3.0

Come già accennato, la versione 3.0 una rottura con versione QGIS 2.x causa ed esiste la possibilità che molti plugin, applicazioni esistenti e altri codici sono basati sulla rottura API corrente. Allora, cosa si può fare per attenuare i cambiamenti? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias e altri importanti sviluppatori sono alla ricerca di modi per attenuare il numero di modifiche API rompere pur avanzando il codice di base QGIS essere basata sulla prossima generazione di librerie e la propria API interna. Durante la nostra ultima riunione del comitato direttivo QGIS progetto è stato geofumó attraverso varie possibilità. La seguente tabella riassume ciò Matthias Kuhn riassume delicatamente e in parte hanno cercato di trascrivere in questo articolo secondo quanto Hanno pubblicato sul suo blog:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Data di rilascio Fine febbraio mesi 4 2.14 ¿mesi Ciclo 8?
note: Aggiornamento del nucleo codice QGIS Python python 3 sia compatibile e supporta PyQt5 (attuazione parziale per la chiave consolle funzionalità esempio, plugin core pitone etc.)
Qt4 Si

Deprecato in Debian Stretch (dovuta in un anno)

(-webkit rimosso)

non
Qt5 non

Misses QWebView - nuova sostituzione non su tutte le piattaforme. Misses anche QPainter motore.

Si Si
PyQt4 Si Si non
PyQt5 non Si Si
Python 2 Si Si non
Python 3 non Si Si
API Cleanup non non Si
wrapper
PyQt5 -> PyQt4
~ 90% fornisce la compatibilità all'indietro
non Si Si
corrente principale binario Sulla base Qt4 Sulla base Qt4 Sulla base Qt5
priorità di finanziamento wrapper Python

Ci sono due cose importanti da notare sui Matthias proposta:

Nella prima faseIl lavoro è svolto in serie per completare 2.x supporto QT5, PyQt5 utilizzando Python 3.0, sostenendo Qt4, PyQt4 e Python 2.7. Ciò implica che tutte le modifiche apportate nella prima fase sarebbero compatibili con le versioni precedenti 2.x. caratteristiche pitone saranno incorporati, saranno introdotti in modo che il vecchio API PyQt4 può ancora essere utilizzato specialmente se compilato contro QT5, PyQt5, Python 3.0. Utilizzando QGIS compilati contro Qt4, PyQt4 e Python 2.7 non sarebbe rompere la compatibilità.
Nella seconda faseSarebbe lavorare per produrre QGIS 3.0, introducendo la nuova API, rimuovere completamente il pitone 2.7, incluso il supporto per Qt4 e PyQt4. Le nuove funzionalità di pitone che entrano nella prima fase saranno mantenute, tenendo conto di tutto il codice Python e sviluppi per versioni 2.x di QGIS continuare a lavorare sulle versioni 3.x di QGIS. Si prevede anche questa fase di introdurre modifiche API QGIS che potrebbero rompere alcuni plugin. Per far fronte a questo fornirà una guida di migrazione aa cercare di facilitare la migrazione delle versioni 2.x QGIS QGIS 3.x versioni.

Caveat emptor

Ci sono alcuni trucchi per essere chiesto di assicurare che la migrazione verso QGIS 3.0 suono meno doloroso.

  • 1. Se dovrebbe notare che mentre il focus è impostato per minimizzare la quantità di lavoro sui plugin pitone scripting, questo non sarà necessariamente un 100%. Ci saranno più probabili i casi in cui il codice deve essere regolato e in ogni caso almeno, è probabilmente essere rivisto al fine di garantire che esso continua a funzionare correttamente.
    2. Non v'è alcun formalmente istituito risorse finanziarie per pagare gli sviluppatori che investono volontariamente il loro tempo per questo processo di migrazione. A causa di questo, sarà molto difficile dare tempo esatto quanto tempo ci vorrà ciascuna parte del processo. Si dovrebbero prendere in considerazione questa incertezza nella pianificazione. Naturalmente donazioni di benvenuto si apre per contribuire a rendere questo accada.
    3. Ci possono essere gli sviluppatori e gli istituti di là fuori che stanno finanziando nuove funzionalità per la serie 2.x QGIS e questo può influenzare il loro lavoro. Essere inclusi in piani e budget di questi progetti, alcuni allocazione per affrontare la migrazione alla piattaforma 3.x QGIS.
    4. Se il team di QGIS lavora su un "cambiamento totale", ci sarà un tempo relativamente breve durante il quale QGIS sarà instabile e in costante cambiamento a causa degli aggiornamenti in corso su QGIS 3.0.
    4. Se si sviluppa in modo "evolutivo", c'è il rischio che lo sviluppo di 3.0 possa richiedere più tempo a meno che non ci sia un gruppo fedele di sviluppatori che lavora su di esso e che si appresta a migrare.

    Proposte

Alla luce di tutte le informazioni di cui sopra, una delle due linee di azione sono proposti:

proposta 1:

2.16 rilasciare una versione provvisoria e poi iniziare a lavorare sulla versione 3.0 come una priorità, con uno sviluppo finestra mesi 8. Le modifiche apportate nella versione 2.16 cercano di essere compatibile con la versione 3.0 (vedi python3 / pytq5).

proposta 2:

Lunging volta 3.0 con una finestra di durata più estesa sul QT5, Python 3.0 e PyQt5 e chiedere agli sviluppatori di fare il loro lavoro in 3.0. Continuare con le versioni 2.x con la solita frequenza fino a quando 3.0 è pronto.

proposte alternative

Hai una proposta alternativa? Un QGIS si preoccupa nulla di possibili alternative. Se si desidera presentare una proposta, si prega di inviare tim@qgis.org con oggetto "Proposta QGIS 3.0".

Dovrebbero seguire la blog QGIS, Dove è venuto questa pubblicazione.

Lascia un commento

L'indirizzo email non verrà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.