All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] python: add linters to gitlab CI
@ 2020-10-27 22:38 John Snow
  2020-10-27 22:38 ` [PATCH 1/5] python: add pytest and tests John Snow
                   ` (4 more replies)
  0 siblings, 5 replies; 20+ messages in thread
From: John Snow @ 2020-10-27 22:38 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Peter Maydell, Thomas Huth, Daniel P . Berrangé,
	Eduardo Habkost, Philippe Mathieu-Daudé,
	Markus Armbruster, Wainer dos Santos Moschetta, Alex Bennée,
	Cleber Rosa, John Snow

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

-- 
2.26.2




^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2020-10-28 18:40 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-27 22:38 [PATCH 0/5] python: add linters to gitlab CI John Snow
2020-10-27 22:38 ` [PATCH 1/5] python: add pytest and tests John Snow
2020-10-28  6:19   ` Thomas Huth
2020-10-28 13:23     ` John Snow
2020-10-28 14:09       ` Philippe Mathieu-Daudé
2020-10-28 14:54       ` Thomas Huth
2020-10-28 18:38         ` John Snow
2020-10-27 22:38 ` [PATCH 2/5] python: add excluded dirs to flake8 config John Snow
2020-10-28  8:50   ` Philippe Mathieu-Daudé
2020-10-28 13:42     ` John Snow
2020-10-27 22:38 ` [PATCH 3/5] python: add Makefile for some common tasks John Snow
2020-10-27 22:38 ` [PATCH 4/5] python: add .gitignore John Snow
2020-10-28  8:13   ` Thomas Huth
2020-10-28  9:16     ` Markus Armbruster
2020-10-28  9:22       ` Daniel P. Berrangé
2020-10-28 13:39       ` John Snow
2020-10-28 13:41         ` Daniel P. Berrangé
2020-10-28 13:26     ` John Snow
2020-10-28 18:33     ` John Snow
2020-10-27 22:38 ` [PATCH 5/5] gitlab: add python linters to CI John Snow

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.