mbox series

[0/5] python: add linters to gitlab CI

Message ID 20201027223815.159802-1-jsnow@redhat.com
Headers show
Series python: add linters to gitlab CI | expand

Message

John Snow Oct. 27, 2020, 10:38 p.m. UTC
based-on: <20201020193555.1493936-1-jsnow@redhat.com>
          [PATCH v3 00/15] python: create installable package

This series serves as an addendum to the python package series; it adds
easy invocations for running the linters with the correct options for
the purposes of preventing regressions in our python libraries and
tools.

It adds (to ./python):

- make venv: Use pipenv to recreate a venv as laid out precisely by
  Pipfile.lock; this requires *precisely* Python 3.6.

- make check: Run linters using pytest framework using user's current
  environment (Which may well be their own venv, their OS environment,
  whatever.) It only requires *a* python; at the moment, 3.6, 3.7, and
  3.8 are supported. There are some known problems with 3.9 as of yet.

- make venv-check: Run the linters using the venv laid out by
  Pipfile.lock specifically.

Then, it adds a very simple gitlab test to run this on top of the
Fedora32 build. I chose Fedora as the host for this test only because
Fedora's package ecosystem makes it very easy to install multiple
versions of Python, which allows us to test against our minimum required
version explicitly to detect against any accidental breakages that slip
in from developers coding against 3.7, 3.8, 3.9, etc.

This is the simplest thing I could come up with that fulfilled a few
design goals I had in mind:

1. It can be run locally with an arbitrary environment

2. It can be run locally with a precise environment, matching how it
will be executed in the CI environment

3. It can be invoked from the python directory in a standalone manner.

4. It runs on our CI infrastructure, preventing regressions in the
python code.

John Snow (5):
  python: add pytest and tests
  python: add excluded dirs to flake8 config
  python: add Makefile for some common tasks
  python: add .gitignore
  gitlab: add python linters to CI

 .gitlab-ci.yml                         | 10 ++++
 python/.gitignore                      |  9 ++++
 python/Makefile                        | 35 +++++++++++++
 python/Pipfile.lock                    | 71 ++++++++++++++++++++++++--
 python/setup.cfg                       |  7 +++
 python/tests/test_lint.py              | 28 ++++++++++
 tests/docker/dockerfiles/fedora.docker |  2 +
 7 files changed, 157 insertions(+), 5 deletions(-)
 create mode 100644 python/.gitignore
 create mode 100644 python/Makefile
 create mode 100644 python/tests/test_lint.py