[QGIS-Developer] QGIS Server 3 status

Régis Haubourg regis.haubourg at gmail.com
Thu Oct 12 23:58:49 PDT 2017


Hi Anita,

among the news, Paul is currently tackling OGC conformity issues.
see :
https://github.com/qgis/QGIS/pull/5044
https://github.com/qgis/QGIS/pull/5084
https://github.com/qgis/QGIS/pull/5145
https://github.com/qgis/QGIS/pull/5150
https://github.com/qgis/QGIS/pull/5157
https://github.com/qgis/QGIS/pull/5303

We still have some harder issues due to crashes of the OGC testing
platform.

All tests are made using the "basic" level test (see
http://cite.opengeospatial.org/teamengine/about/wms/1.3.0/site/)

When all will be green at this level, we'll run the platform with the other
testing levels so that we have a good overview of our path for a full
conformity of WMS 1.3.

We'll prepare a dedicated blog post toi describe what were the issues and
what we did to fix them.

Cheers!
Régis

2017-10-12 22:56 GMT+02:00 Anita Graser <anitagraser at gmx.at>:

> Thanks everyone so far! Please keep the info coming. I'll draft a blog
> post on the weekend.
>
> Regards,
> Anita
>
> On Thu, Oct 5, 2017 at 9:34 AM, Alessandro Pasotti <apasotti at gmail.com>
> wrote:
>
>> Hi Règis,
>>
>> thanks for the nice summary!
>>
>> Maybe it would be interesting for python devs to stress out how QGIS
>> server 3 brings the bindings and the plugins to a new level: while the
>> original filter-style python plugins, are still available, the new
>> service-oriented plugin-based architecture allows Python developers to
>> create new services (for example WPS) by implementing a new `QgsService`
>> directly in Python. Overriding existing services is also possible.
>>
>> The server API has now full python bindings and a QGIS server can be
>> easily implemented directly in Python and wrapped into your favourite
>> framework (see this simple wsgi experiment:
>> https://gist.github.com/elpaso/0cd7fb6a0518dc46c45557d9133438b8 ).
>>
>> For more examples of the API, I think there are some basic examples in
>> the official Python tests: https://github.com/qgis/QGIS/b
>> lob/master/tests/src/python/test_qgsserver_services.py#L79
>>
>>
>> Cheers
>>
>>
>>
>>
>>
>> On Wed, Oct 4, 2017 at 10:49 PM, Régis Haubourg <regis.haubourg at gmail.com
>> > wrote:
>>
>>> Well, from a user point of view, that's a bit hard since all this is 90
>>> % refactoring.. which is supposed to be transparent for users.
>>>
>>> We have the trust and multithreaded features, that should (and early
>>> testers today found it slower today) and the ability to code new services
>>> using python.
>>> We can also show some numbers about OGC conformity tests and the goal of
>>> reaching OGC certification (WMS only by now).
>>>
>>> Alessandro, René-Luc and David, do you have some user oriented examples
>>> for the new modular API ?
>>>
>>>
>>>
>>> 2017-10-04 22:18 GMT+02:00 Anita Graser <anitagraser at gmx.at>:
>>>
>>>> Great overview, thanks for drafting Régis!
>>>>
>>>> Some additional ideas: Could we add a section with the key improvements
>>>> from an user perspective?
>>>>
>>>> I'm particularly intrigued by the services / plugins part. Could you
>>>> elaborate?
>>>>
>>>> Regards,
>>>> Anita
>>>>
>>>>
>>>>
>>>> On Wed, Oct 4, 2017 at 9:42 PM, Régis Haubourg <
>>>> regis.haubourg at gmail.com> wrote:
>>>>
>>>>> Hi again,
>>>>> here is my very first draft:
>>>>>
>>>>>  Several images can be pulled from the joined slides given at
>>>>> Foss4G-EU here https://drive.google.com/file/
>>>>> d/0BzatQbprJ-hjWF95VzdHbGRsVEk/view?usp=sharing
>>>>>
>>>>> René-Luc, David, Paul, don't hesitate to amend that!
>>>>>
>>>>> ------------------------------------------------------------
>>>>> --------------------------------
>>>>>
>>>>>
>>>>> *Qgis server refactoring is done!*
>>>>> As you may know, QGIS is jumping to a new major version (yes!).
>>>>> Doing so was made necessary because of the need to switch to python 3,
>>>>> QT5, but also because we needed to break the QGIS API in several places.
>>>>>
>>>>> A year ago, a tiny troll
>>>>> <https://github.com/qgis/qgis3.0_api/issues/63>from switzerland rang
>>>>> a bell about the strong need for love server code base required.
>>>>>
>>>>> Indeed, the API was locked by some old methods of QGIS server. In
>>>>> short, QGIS server was reparsing the qgs project file in his own way, and
>>>>> created dependencies to part of QGIS we needed to drop.
>>>>>
>>>>> As outsourcing the server code base was not an option, so we had to
>>>>> refactor it.
>>>>>
>>>>> The involved parties decided to get engaged in a code sprint
>>>>> <https://github.com/qgis/QGIS/wiki/QGIS3---QGIS-Server-code-sprint-Notes> in
>>>>> the city of Lyon , France dedicated to sharing their vision, planning the
>>>>> work and finally making all the following
>>>>> <https://github.com/qgis/QGIS-Enhancement-Proposals/issues/74> happen
>>>>> :
>>>>>
>>>>>
>>>>>
>>>>> *# Deep, complex and unrewarding tasks:*
>>>>>
>>>>> - Remove all singleton calls
>>>>>
>>>>> - Cut all the dependencies to the old qgis project parser
>>>>>
>>>>> - Minimize dependencies to GUI library. Since fonts are necessary to
>>>>> render maps, totally removing them was not feasable.
>>>>>
>>>>> *# Higher level refactoring*
>>>>>
>>>>> All services (WMS GetMap, WFS GetFeature, GetLegendGraphics, WCS,
>>>>> GetPrint etc..) have been rewritten. Some like WMS were entirely rewritten.
>>>>> Kudos to the dev's
>>>>>
>>>>>
>>>>> *# New features and architecture stuff*
>>>>>
>>>>> - QGIS Server Services as plugins like providers. (slide 10 would be
>>>>> a nice figure here)
>>>>>
>>>>> - Multi-thread rendering  <https://github.com/qgis/QGIS/pull/3886>-
>>>>> like in the desktop
>>>>>
>>>>> - A new option to trust layer metadata
>>>>> <https://github.com/qgis/QGIS/pull/5094> and speed up project loading
>>>>>
>>>>>
>>>>> *# Infrastructure tasks*
>>>>>
>>>>> - Build a OGC compliancy platform
>>>>> <http://oslandia.com/en/2017/06/16/qgis-server-ogc-cite-compliance-testing/> and
>>>>> integrate it to a continuous integration platform. Conformity reports are
>>>>> now pushed to tests.qgis.org *XXX waiting for Richard to expose them
>>>>> in the website*
>>>>>
>>>>> - Add unit tests... and again more unit tests
>>>>>
>>>>> - Stress QGIS server against security leaks
>>>>> <http://oslandia.com/en/2017/06/14/qgis-server-security-aspect/> (SQL
>>>>> injections and other malicious attacks)
>>>>>
>>>>> - Start profiling and bench marking performances. This work still need
>>>>> some love - and funding - to be achieved
>>>>>
>>>>>
>>>>> A presentation
>>>>> <https://git.osgeo.org/gogs/foss4g-europe/foss4g-europe-2017-paris/src/master/presentations/2017-07-20/general_track/foss4g-europe-2017-QGIS_3_Refactoring_and_enhancement-DMarteau-PBlottiere.pdf> was
>>>>> given at FOSS4G-EU in July.
>>>>>
>>>>> *Congratulations* to the developers who worked hard on that work.
>>>>>
>>>>> Now this deserves to be well tested, please report back any issues!
>>>>>
>>>>>
>>>>>
>>>>> 2017-10-04 15:17 GMT+02:00 Anita Graser <anitagraser at gmx.at>:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Oct 4, 2017 at 1:23 PM, Régis Haubourg <
>>>>>> regis.haubourg at gmail.com> wrote:
>>>>>>
>>>>>>> Hi
>>>>>>>
>>>>>>> Yes, refactoring is now complete! see :
>>>>>>> https://github.com/qgis/QGIS-Enhancement-Proposals/issues/74
>>>>>>> #issuecomment-334123595
>>>>>>>
>>>>>>> Anita, I'll draft an article tonight if you still agree to review
>>>>>>> it, that would be great!
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ​Sure!
>>>>>>
>>>>>> Anita
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> QGIS-Developer mailing list
>>> QGIS-Developer at lists.osgeo.org
>>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>
>>
>>
>>
>> --
>> Alessandro Pasotti
>> w3:   www.itopen.it
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20171013/d7f7b60e/attachment-0001.html>


More information about the QGIS-Developer mailing list