<div dir="ltr">Dear PSC,<br><div><br></div><div>Here is the report of the aforementioned QEP:</div><div>( also published here: <a href="https://github.com/qgis/QGIS/pull/124#issuecomment-1020097457">https://github.com/qgis/QGIS/pull/124#issuecomment-1020097457</a>)<br></div><div><br></div><div># Final Report<br><br>## QEP acceptance<br><br>This QEP did not make it during the 2020 votation process.<br>But thanks to the remaining available funds from QGIS.org and OPENGIS.ch being OK to offer the rest of the development,<br>we could start the implementation of a subset of the QEP, the core part (leaving away the gui part).<br><br>## Implementation and changes from the original proposal<br><br>Instead of creating the settings at run time, a different approach using static definitions of the settings was proposed. This reduces the use of literals in the code and helps the dev experience by bringing code completion when looking for settings.<br>The settings are then added to a setting registry. There is a main core registry to which others can be attached such as gui, app, analysis but also providers or plugins one.<br>This nesting of registries allows us to perform introspection.<br><br>### What has been achieved<br><br>The complete implementation of the core part has been achieved (settings, registry and Python bindings).<br>All core settings were migrated.<br><br>Code changes:<br>* core part: <a href="https://github.com/qgis/QGIS/pull/42597">https://github.com/qgis/QGIS/pull/42597</a><br>* introspection: <a href="https://github.com/qgis/QGIS/pull/42860">https://github.com/qgis/QGIS/pull/42860</a><br>* migration of core settings: <a href="https://github.com/qgis/QGIS/pull/42954">https://github.com/qgis/QGIS/pull/42954</a><br><br>### What is missing from the complete proposal or could be added as a follow-up<br><br>* The rest of the settings must be migrated<br>* a CI test should be introduced to avoid usage of old API (`QgsSettings`)<br>* the gui part (providing auto-populated widgets to edit settings: color picker for color settings, combobox for enum, etc.)<br>* adapt the advanced settings editor to take advantage of the introspection and gui part<br>* a tool to automatically populate an ini file out of current value or defaults on request<br>* a migration tool to migrate settings (rename, move, … such as migrating old R/G/B/A settings to proper color ones.)<br></div><div><br></div><div><br></div><div><br></div><div>Thanks a lot to the organization for sponsoring this dev.</div><div>Kind regards,</div><div><br></div><div>Denis</div></div>