QGIS 3.0 - como, quando e o quê; implica

Muitos estão nos perguntando:

Quando QGIS 3.0 será lançado?

No ano passado (2015), a equipe do projeto começou a investigar quando e como QGIS 3.0 deveria ser lançado. Eles prometem, de acordo com uma postagem de Anita Graser, que transmitiam claramente aos usuários e desenvolvedores de seus planos antes de lançar o QGIS 3.0. Recentemente, eles tentaram expor algumas das considerações para o lançamento do QGIS 3.0 e, no final da publicação, há uma oportunidade para apresentar nossas idéias.

Por que 3.0?

QGis_LogoNormalmente, uma versão importante é reservada para momentos em que uma grande mudança é feita para a API do seu software. Esta interrupção não é uma decisão trivial para o projeto QGIS, pois somos centenas de milhares de usuários que dependem do QGIS, tanto para seu próprio uso como para o serviço fornecido a terceiros.

Ocasionalmente, a separação da API é necessária para acomodar a atualização da arquitetura com abordagens aprimoradas, novas bibliotecas e correções às decisões tomadas no passado.

Quais são as conseqüências de quebrar a API?

Uma das razões pelas quais esta quebra da API no QGIS 3.0 é que ele terá um grande impacto, que poderia quebrar as centenas de plugins desenvolvidos que não seriam mais compatíveis com a nova API e os autores destes teriam que fazer uma revisão de seus desenvolvimentos para garantir a compatibilidade com a nova API.

A extensão das mudanças necessárias depende em grande parte:

  • Muitas mudanças na API afeta a funcionalidade atual.
    Como muitos pontos plugins autores usaram partes da API que iria mudar.
  • Quais são as principais mudanças para 3.0?

Há quatro áreas-chave que estão à procura de mudança em 3.0:

Qt4 a atualização QT5: Este é o conjunto básico de bibliotecas em que o QGIS é construído em nível superior; falamos sobre o nível funcional da CORE da plataforma. O QT também fornece bibliotecas para gerenciamento de múmias, operações de conectividade e gerenciamento de gráficos. O Qt4 (no qual o QGIS se baseia atualmente) não está sendo desenvolvido atualmente pelos responsáveis ​​pela biblioteca Qt e pode ter problemas em termos de funcionalidade em algumas plataformas (por exemplo, OS X) e até facilitar o gerenciamento de versões binárias (por exemplo Debian Testing e a próxima versão do Debian "Stretch"). O processo de trazer o QGIS para o QT5 já tem um avanço importante (principalmente o que Matthias Kuhn fez) que, juntamente com Marco Bernasocchi, fumam no Android «QField» baseado inteiramente no QT5. No entanto, existem algumas limitações no lançamento do novo QT5 devido ao seu impacto no QGIS - principalmente nos widgets de navegador da Web (usados ​​principalmente no Composer e também em outros locais no QGIS).

PyQt4 a atualização PyQt5: Estas são as mudanças relativas ao idioma Python para Qt no qual a API QGIS Python se baseia. É proposto alterar a biblioteca do QT5 C ++, também é esperado que mova a biblioteca Python para PyQt5 para que os benefícios da nova API QT5 no Python possam ser explorados.
Atualizando Python Python 2.7 3 para: Atualmente, tudo é executado no Python 2.7. O Python 3 é a versão mais recente do python e é recomendado por quem dirige esse projeto. O Python 2 é ligeiramente incompatível com Python 3 (até uma extensão quase proporcional à incompatibilidade entre QGIS 2 e Qgis 3). Muitos desenvolvedores tornaram o Python Python 3 amplamente compatível com versões anteriores do Python 2, mas a compatibilidade reversa não é tão boa.
Melhorar QGIS própria API: Um dos problemas com os quais a compatibilidade da API é mantida entre as versões é que você precisa conviver com suas opções de design por um longo período. No QGIS, todo esforço é feito para não quebrar a API dentro de uma série de releases menores. A liberação de uma versão do QGIS para 3.0 com uma API não compatível com a atual dará uma oportunidade para "limpar a casa", corrigindo as coisas na API com a qual não há conformidade. Você pode ver uma lista provisória do 3.0 as alterações propostas para a API.

Como suporta a alteração da API 3.0

Como já mencionado, a versão 3.0 uma ruptura com a versão QGIS 2.x causar e há a possibilidade de que muitos plugins, aplicações existentes e outros códigos são baseados na quebra API atual. Então, o que pode ser feito para mitigar as mudanças? Matthias Kuhn, Jürgen Fischer, Nyall Dawson, Martin Dobias e outros desenvolvedores principais foram à procura de maneiras de mitigar o número de mudanças na API quebrando enquanto ainda avançar o QGIS código de base basear-se na próxima geração de bibliotecas e sua própria API interna. Durante o nosso Steering Committee última reunião QGIS Projeto foi geofumó através de várias possibilidades. A tabela a seguir resume o que Matthias Kuhn resumiu suavemente e em parte têm tentado transliterá neste artigo de acordo com o que Eles publicou em seu blog:


QGIS 2.14 LTR
QGIS 2.16 ??? QGIS 3.0
Data de lançamento Final de fevereiro 4 meses depois 2.14 Ciclo 8 Meses?
notas Atualize o código Python do núcleo QGIS para ser compatível com Python 3 e compatível com PyQt5 (implementação parcial para funcionalidade de chave, por exemplo, console, plugins do núcleo de python, etc.)
Qt4 Si

Desempregado no Debian Stretch (devido em um ano)

(Webkit removido)

Sim Não
Qt5 Não

Misses QWebView - nova substituição não em todas as plataformas. Também Misses QPainter Engine.

Si Si
PyQt4 Si Si Não
PyQt5 Não Si Si
Python 2 Si Si Não
Python 3 Não Si Si
API cleanup Não Não Si
Wrappers
PyQt5 -> PyQt4
~ 90% proporciona compatibilidade para trás
Não Si Si
dominante Binary Qt4 base Qt4 base Qt5 base
prioridade de financiamento wrappers Python

Há duas coisas importantes a nota sobre o Matthias proposta:

Na primeira faseO trabalho é feito na série para completar 2.x apoio QT5, PyQt5 usando Python 3.0, apoiando Qt4, PyQt4 e Python 2.7. Isto implica que todas as alterações feitas na primeira fase seria compatível com versões anteriores 2.x. serão introduzidas funcionalidades Python serão incorporados de forma que a antiga API PyQt4 ainda pode ser usado especialmente quando compilado contra QT5, PyQt5, Python 3.0. Usando QGIS compilados contra Qt4, PyQt4 e Python 2.7 não iria quebrar a compatibilidade.
Na segunda faseEle iria trabalhar para produzir QGIS 3.0, introduzindo a nova API, remover completamente o Python 2.7, incluindo suporte para Qt4 e PyQt4. Os novos recursos do python que entram na primeira fase será mantido, tendo em conta todo o código python e desenvolvimentos para versões 2.x de QGIS continuar a trabalhar sobre as versões 3.x de QGIS. Esta fase também é esperado para introduzir mudanças na API QGIS que podem quebrar alguns plugins. Para abordar esta irá fornecer a migração orientação aa para tentar facilitar a migração de versões 2.x QGIS 3.x qgis versões.

Caveat.emptor

Existem alguns truques para ser feitas para garantir que a migração para o QGIS 3.0 soar menos dolorosa.

  • 1. Se deve-se notar que enquanto o foco está configurado para minimizar a quantidade de trabalho em plugins de script Python, isso não é necessariamente um 100%. Haverá casos mais prováveis ​​onde o código tem de ser ajustado e em todos os casos, pelo menos, você provavelmente terá que ser revisto, a fim de garantir que continua a funcionar correctamente.
    2. Não há formalmente estabelecida recursos financeiros para pagar os desenvolvedores que, voluntariamente, investem seu tempo para este processo de migração. Devido a isso, será muito difícil dar tempo exato de quanto tempo vai demorar cada parte do processo. Deve ter em conta esta incerteza no planejamento. Claro doações boas-vindas abre para ajudar a fazer isso acontecer.
    3. Pode haver desenvolvedores e instituições lá fora, que estão a financiar novos recursos para a série 2.x QGIS e isso pode afetar seu trabalho. Ser incluídos nos planos e orçamentos desses projectos, alguns alocação de abordar a migração para a plataforma 3.x QGIS.
    4. Se a equipe do QGIS trabalhar em uma "mudança total", haverá um tempo relativamente curto durante o qual o QGIS ficará instável e em constante mudança devido às atualizações contínuas do QGIS 3.0.
    4 Se ele se desenvolver de maneira "evolutiva", existe o risco de o desenvolvimento do 3.0 demorar mais, a menos que haja um grupo fiel de desenvolvedores trabalhando nisso e preparando-os para migrar.

    Propostas

À luz de todas as informações acima, um dos dois cursos de ação são propostas:

proposta 1:

2.16 liberar uma versão de rascunho e, em seguida, começar a trabalhar na versão 3.0 como uma prioridade, com um desenvolvimento janela meses 8. As alterações feitas na versão 2.16 procuram ser compatível com a versão 3.0 (veja python3 / pytq5).

proposta 2:

Cumplicidade uma vez 3.0 com uma janela de duração mais prolongada em QT5, Python 3.0 e PyQt5 e pedir os desenvolvedores a fazer o seu trabalho em 3.0. Continue com versões 2.x com a frequência habitual até 3.0 está pronto.

propostas alternativas

Você tem uma proposta alternativa? A QGIS se importa nada sobre possíveis alternativas. Se você deseja apresentar uma proposta, envie Tim@qgis.org com o assunto "Proposta QGIS 3.0".

Deve seguir o QGIS blogueDe onde veio esta publicação.

Deixar uma resposta

Seu endereço de email não será publicado.

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.