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/blob/master/tests/src/python/test_qgsserver_services.py#L79 Cheers On Wed, Oct 4, 2017 at 10:49 PM, Régis Haubourg <regis.haubo...@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 <anitagra...@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.haubo...@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 <anitagra...@gmx.at>: >>> >>>> >>>> >>>> On Wed, Oct 4, 2017 at 1:23 PM, Régis Haubourg < >>>> regis.haubo...@gmail.com> wrote: >>>> >>>>> Hi >>>>> >>>>> Yes, refactoring is now complete! see : https://github.com/qgis/QGIS-E >>>>> nhancement-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@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
_______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer