On 6/28/21 5:38 PM, John Snow wrote:


On Mon, Jun 28, 2021 at 4:31 PM Wainer dos Santos Moschetta <waine...@redhat.com <mailto:waine...@redhat.com>> wrote:


    On 6/25/21 12:45 PM, John Snow wrote:
    > tox is already testing the most recent versions. Let's use pipenv to
    > test the oldest versions we claim to support. This matches the
    stylistic
    > choice to have pipenv always test our oldest supported Python
    version, 3.6.
    Currently tox is testing with 3.6 too. Should we remove that version
    from the test matrix?


Tox will test with 3.6, but against the very latest pylint/mypy. This test will also use 3.6, but against the oldest pylint/mypy we claim to support in the package metadata. I think they are both useful.

The pipenv test will make sure we don't accidentally increase our dependency requirements without noticing. This has some value for other QEMU developers that are used to running and managing their own linters, such as we did for a long time. I don't want to break their environments by accident. (It also makes sure that no 3.7+ isms sneak into the code by accident, too. This has historically been, and I anticipate it will continue to be, a prominent problem in the Python library.)

The tox test gives us a heads up if there are incompatible changes arriving in the bleeding edge for pylint/mypy et al that I will need to be aware of before they are rolled out and wind up on random developer's systems and start causing 'make check' to fail.

I think it's worth keeping both for now, provided the run cost isn't too great. At the moment it seems rather minimal.


While I was reviewing the next patches I started to understand the tox and pipenv testing strategies. I also think they are useful.

Thanks for the details explanation above.

- Wainer

    >
    > The effect of this is that the python-check-pipenv CI job on
    gitlab will
    > now test against much older versions of these linters, which
    will help
    > highlight incompatible changes that might otherwise go unnoticed.
    >
    > Update instructions for adding and bumping versions in
    setup.cfg. The
    > reason for deleting the line that gets added to Pipfile is
    largely just
    > to avoid having the version minimums specified in multiple places in
    > config checked into the tree.
    >
    > (This patch was written by deleting Pipfile and Pipfile.lock, then
    > explicitly installing each dependency manually at a specific
    > version. Then, I restored the prior Pipfile and re-ran `pipenv lock
    > --dev --keep-outdated` to re-add the qemu dependency back to the
    pipenv
    > environment while keeping the "old" packages. It's annoying,
    yes, but I
    > think the improvement to test coverage is worthwhile.)
    >
    > Signed-off-by: John Snow <js...@redhat.com
    <mailto:js...@redhat.com>>
    > ---
    >   python/Pipfile.lock | 113
    +++++++++++++++++++++-----------------------
    >   python/setup.cfg    |   4 +-
    >   2 files changed, 56 insertions(+), 61 deletions(-)

    Reviewed-by: Wainer dos Santos Moschetta <waine...@redhat.com
    <mailto:waine...@redhat.com>>


Thanks!

Reply via email to