[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