The goal is to improve Drive builds by being independant of the host. It implies a complete review of how builds are made. We thought to use Python virtualenv on every plateform, but we found several issues here and there which led us to use a lower level of virtualization: pyenv. Think of it as a docker for Python.
This tool coupled to the Jenkins pipeline and we will benefit:
- parallel builds to speed up tests on the 3 main OS (GNU/Linux, macOS and Windows)
- complete isolated development environments
- reproductible builds (using envars to specify Python and PyQt versions)
- easily test a new Python version
Another good points I think of:
- protection of the master branch
- Test and Push
- one unified simple script to deploy all we need: build env, tests and release
- all other Jenkins jobs will be simplifyied thanks to the previous point