Hi Tom, Here is a suggested alternative approach that I have documented recently https://samweli.github.io/QGIS-Development-Using-Docker
It may address some of the challenges you have mentioned and there is a potential to align both efforts or incorporate improvements from your implementation. Best, Samweli On Fri, Nov 7, 2025 at 3:45 AM Tom Christian via QGIS-Developer < [email protected]> wrote: > Hi All, > > I am interested in learning more about how QGIS developers configure their > development environments, and I would like to get some feedback on an > alternate approach. > > I recently contributed my first changes to QGIS and I found the > development environment quite challenging. While the QGIS Developers Guide > <https://docs.qgis.org/3.40/en/docs/developers_guide/index.html> contains > lots of information I found most of it to be high-level, e.g. how to work > with Git, and there was limited information on gathering required > dependencies and setting build configurations. > > Given the number of dependencies, the risk of conflicts with existing > packages, and my strong preference to avoid VMs, I thought a containerised > build environment was ideal. My work requires frequently switching between > projects and environments. I generally cannot let any one project's > dependencies pollute the system outside of a Conda environment, a > container, or a VM. > > I found the CI Docker configuration > <https://github.com/qgis/QGIS/tree/master/.docker> and thought I could > use this to build and test QGIS. These Dockerfiles should guarantee all > required dependencies AND this is the environment that passes or fails CI > checks on my changes. Building QGIS using the CI Docker configuration was > OK, but CI is not setup for running the build product in a container - > meaning changes cannot quickly be manually / visually tested in this way. > The project would have to be compiled (with the benefit of mounted ccache) > and installed every time the container was started before the application > could run. The long Docker commands are not currently scripted outside of > GitHub Actions Workflows, and build configurations are provided via > matrices, so replicating these processes locally is non-trivial. > > I created this repo > <https://github.com/sparkgeo/QGIS-Container-Development> to better > automate container-based development and testing of QGIS. It contains build > / run / test scripts, .env configurations, and Docker Compose overrides to > work with the QGIS CI Docker configuration with as few changes as possible. > It currently requires a single small commit > <https://github.com/sparkgeo/QGIS-EOPF/commit/64b6f6568ec24f9a064a24869b3d1fb95a6ae0b1> > in > the active QGIS branch to support this approach, which I removed before > creating PRs for the main QGIS repo. > > With this approach, building and running a containerised QGIS development > build is (in theory) as simple as scripts/run.sh. Tests can be executed > with scripts/test.sh. > > > I have some questions: > > 1) are you installing QGIS build dependencies on "bare metal", or perhaps > using a VM? > 2) is there a simpler approach than this for containerised builds, runs, > and tests? > 2a) if not, is there any interest in pursuing this or a similar approach > to simplify containerised development environments? > > > Ultimately I suspect the QGIS project would benefit from lower barriers to > entry and the ability to better isolate build dependencies. > > _______________________________________________ > QGIS-Developer mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer > -- All the Best, Samweli
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
