[QGIS-Developer] Leveraging Conda-Forge to create QGIS installers ?

Even Rouault even.rouault at spatialys.com
Sat Nov 6 13:46:24 PDT 2021


Hi,

Probably a topic that can raise passions and on which I'm moderately 
legitimate to speak, but shouldn't we seriously consider leveraging the 
Conda / Conda-Forge (https://conda-forge.org/) ecosystem for QGIS 
packaging, especially on the Windows and Mac platforms ? QGIS depends on 
a lot of external dependencies, and building them and updating them is 
really about maintaining a packaging system, and QGIS has two such 
separate and bespoke systems for Windows (OSGeo4W) and Mac 
(QGIS-Mac-Packager).  The ideal vision would be that the QGIS project 
mostly maintains the bits specific to QGIS, but not be the sole 
maintainer of its dependencies such as QT, GDAL (and its many 
dependencies), PDAL, GRASS etc, as it is today. Conda-Forge provides a 
truly collaborative environment and active community that already 
bundles a number of those dependencies, and QGIS is already there (not 
full capabilities yet, due to some dependencies missing. That would be 
one of the points to address). The Conda-Forge community is really 
vibrant (if you look at 
https://github.com/conda-forge/staged-recipes/pulls?q=is%3Apr+is%3Aclosed, 
you can see that 20 packages were added in the last 24 hours!). It is 
also a NumFocus sponsored project. It has support from a number of 
institutions. It is unlikely to disappear anytime soon.

There would certainly work needed to build installers from them. I found 
https://github.com/conda/constructor project where you can build 
standalone installers from Conda packages, but was told it is perhaps 
not super mature.  Even if QGIS needs require a dedicated installer with 
custom bits, leveraging already packaged dependencies would probably be 
a big enough win compared to the current situation where the whole stack 
needs to be built and rebuilt from scratch by only a few knowledgeable 
people, on non-shared infrastructure.

There would be the possibility to pin dependencies at certain known good 
points, for example to base LTR builds on top of them.

I guess also that Conda based installers could help for plugins that 
require installing native or Python dependencies, but that'd be already 
more a secondary advantage.

Another proof that Conda is to be taken seriously: 
https://developers.arcgis.com/python/guide/understanding-conda/

I'm not saying this is a magical solution: there would clearly be a 
significant amount of work and technical hurdles to solve to reach the 
same degree of maturity as our current installers, but it is probably an 
investment worth considering for the long term.

Even

-- 
http://www.spatialys.com
My software is free, but my time generally not.



More information about the QGIS-Developer mailing list