Tox is a very well-known tool, written in Python, that allows users to run tests inside various virtual environments created using virtualenv. This approach prevents tests from being truly reproducible. We will see in this talk how virtualenv can be replaced by GNU Guix, a functional package manager, in order to improve tox. We will give real-life examples using Python packages from the OpenStack project.
Using virtualenv in tox raises a few issues:
GNU Guix is a functional package manager (as in "functional programming") based on Nix. It allows users to build packages in a completely isolated environment. We will introduce this tool and show how the "guix environment" command can be used to create an isolated environment similar to a virtualenv.
Last but not least, we will see how virtualenv can be replaced with Guix in tox so that users can benefit from all the features of Guix without changing their usual workflow. We will show some examples using packages from the OpenStack project, such as python-keystoneclient.
Speakers: Cyril Roelandt