<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Anita,</p>
    <p>Maybe you could add a section about "testing wanted / needed" at
      the end of the blog post?<br>
    </p>
    <p>I think after such a lot of refactoring, users can expect
      incompatibilities with the previous 2x version. Thats why a call
      for testing should be included. Otherwise existing QGIS server
      users maybe just upgrade without noticing and run into issues.</p>
    <p>We just recently came across an incompatibility in the
      GetProjectSettings command where the new version behaves
      differently than the old version regarding the visibility state of
      groups - issue report still pending. Issue was discovered by Eric
      Lemoine (Camptocamp).</p>
    <p>Greetings,</p>
    <p>Andreas<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 17.10.2017 22:36, Anita Graser
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAFFV8FhuvGGCLukkrFqo5JQq4As5PVT4vb1FPbHWSfWcGXtFkQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_default" style="font-size:small">
          <div style="font-size:12.8px">I've extended Régis' draft with
            some of the more recent information. Please let me know what
            you think. I'll try to publish in a couple of days.</div>
          <div style="font-size:12.8px"><br>
          </div>
          <div style="font-size:12.8px">-- start --</div>
          <div style="font-size:12.8px"><b><br>
            </b></div>
          <div style="font-size:12.8px"><b>QGIS server refactoring is
              done!<br>
            </b><br>
            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
              href="http://blog.qgis.org/2016/02/10/qgis-3-0-plans/"
              target="_blank" moz-do-not-send="true">http://blog.qgis.org/2016/02/<wbr>10/qgis-3-0-plans/</a>) </div>
          <span class="gmail-im">
            <div style="font-size:12.8px"><br>
              A year ago, a <a
                href="https://github.com/qgis/qgis3.0_api/issues/63"
                target="_blank" moz-do-not-send="true">tiny troll </a>from
              switzerland rang a bell about the strong need for love
              server code base required. <span style="font-size:12.8px">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.</span></div>
            <div style="font-size:12.8px">   <br>
              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 <a
href="https://github.com/qgis/QGIS/wiki/QGIS3---QGIS-Server-code-sprint-Notes"
                target="_blank" moz-do-not-send="true">code sprint</a> in
              the city of Lyon , France dedicated to sharing their
              vision, planning the work and finally making all the <a
                href="https://github.com/qgis/QGIS-Enhancement-Proposals/issues/74"
                target="_blank" moz-do-not-send="true">following</a> happen:</div>
          </span>
          <div style="font-size:12.8px">
            <div><br>
            </div>
            <div><b>Higher level refactoring</b></div>
            <div><br>
            </div>
            <div>All services (WMS GetMap, WFS GetFeature,
              GetLegendGraphics, WCS, GetPrint etc..) have been
              rewritten. Some like WMS were entirely rewritten. Kudos to
              the devs!</div>
            <div><br>
            </div>
            <div><b style="font-size:12.8px">New features</b><br>
            </div>
            <div><br>
            </div>
            <div style="font-size:12.8px">- <a
                href="https://github.com/qgis/QGIS/pull/3886"
                target="_blank" moz-do-not-send="true">Multi-thread
                rendering</a> like in the desktop</div>
            <div style="font-size:12.8px"><br>
            </div>
            <div style="font-size:12.8px"><span style="font-size:12.8px">-
                A new option to </span><a
                href="https://github.com/qgis/QGIS/pull/5094"
                target="_blank" style="font-size:12.8px"
                moz-do-not-send="true">trust layer metadata</a><span
                style="font-size:12.8px"> and thus speed up project
                loading</span><br>
            </div>
            <div style="font-size:12.8px"><br>
            </div>
            <div style="font-size:12.8px"><span style="font-size:12.8px">-
                WFS 1.1 support <a
                  href="https://github.com/qgis/QGIS/pull/5297"
                  target="_blank" moz-do-not-send="true">https://github.com/<wbr>qgis/QGIS/pull/5297</a> </span><br>
            </div>
            <div style="font-size:12.8px"><span style="font-size:12.8px"><br>
              </span></div>
            <div style="font-size:12.8px">- Full Python bindings for the
              server API</div>
            <div style="font-size:12.8px"><br>
            </div>
            <div><span style="font-size:12.8px"></span>- Server Services
              as plugins like providers</div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div><span class="gmail-im"><b style="font-size:12.8px">Deep,
                  complex and unrewarding tasks<br>
                </b>
                <div style="font-size:12.8px"><br>
                </div>
                <div style="font-size:12.8px">- Remove all singleton
                  calls</div>
                <div style="font-size:12.8px"><br>
                </div>
              </span>
              <div style="font-size:12.8px">- Cut all the dependencies
                to the old QGIS project file parser</div>
              <span class="gmail-im">
                <div style="font-size:12.8px"><br>
                </div>
                <div style="font-size:12.8px">- Minimize dependencies to
                  GUI library. Since fonts are necessary to render maps,
                  totally removing them was not feasable. </div>
              </span></div>
            <div><br>
            </div>
            <span class="gmail-im">
              <div><b style="font-size:12.8px">Infrastructure tasks</b><br>
              </div>
              <div><br>
              </div>
              <div>- <a
href="http://oslandia.com/en/2017/06/16/qgis-server-ogc-cite-compliance-testing/"
                  target="_blank" moz-do-not-send="true">Build a OGC
                  compliancy platform</a> and integrate it to a
                continuous integration platform. Conformity reports are
                now pushed to <a href="http://tests.qgis.org/"
                  target="_blank" moz-do-not-send="true">tests.qgis.org</a> </div>
              <div><i style="background-color:rgb(255,0,0)"><br>
                </i></div>
            </span>
            <div>- Add unit tests ... and again more unit tests</div>
            <div><br>
            </div>
            <div class="gmail-adL"><span class="gmail-im">
                <div>-<a
                    href="http://oslandia.com/en/2017/06/14/qgis-server-security-aspect/"
                    target="_blank" style="" moz-do-not-send="true"> Stress
                    QGIS server against security leaks</a> (SQL
                  injections and other malicious attacks)</div>
                <div><br>
                </div>
                <div>- Start profiling and bench marking performances.
                  This work still need some love - and funding - to be
                  achieved</div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>A <a
href="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"
                    target="_blank" moz-do-not-send="true">presentation</a> was
                  given at FOSS4G-EU in July. <br>
                </div>
                <div><br>
                </div>
                <div><b>Congratulations</b> to the developers who worked
                  hard on that work. </div>
                <div><br>
                </div>
                <div>Now this deserves to be well tested, please report
                  back any issues!</div>
              </span></div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
QGIS-Developer mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-Developer@lists.osgeo.org">QGIS-Developer@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
    </blockquote>
    <br>
  </body>
</html>