From patchwork Tue Oct 27 22:38:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: John Snow X-Patchwork-Id: 301755 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1EB0C4363A for ; Tue, 27 Oct 2020 22:39:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1D940221F7 for ; Tue, 27 Oct 2020 22:39:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NQuXCza6" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1D940221F7 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:56938 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kXXd6-0005Ow-6Q for qemu-devel@archiver.kernel.org; Tue, 27 Oct 2020 18:39:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kXXbq-0004DU-LO for qemu-devel@nongnu.org; Tue, 27 Oct 2020 18:38:30 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:24973) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kXXbn-0006Mc-8J for qemu-devel@nongnu.org; Tue, 27 Oct 2020 18:38:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1603838305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vHDGPNSRmUevHK/EGRRXiI683Rq8K6v92WRwcrkLB6s=; b=NQuXCza6X7fkN7V6Z02NBSGyLbIAKidwy6NJn+8SFpAWb8tXzyzASxIMM/umczY8YBMW39 0kr3azg2ovRQmGxAXQB8eux/W4/ckduf4FfXmdh0aox2XP1SvhERFE3vjOccoHA29qO8k7 RWEQR70D45eQoDk8eLOmk62lGYECMCo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-217-2qwxmxGROBiv-OeP9Em-7w-1; Tue, 27 Oct 2020 18:38:21 -0400 X-MC-Unique: 2qwxmxGROBiv-OeP9Em-7w-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 58E46186DD33; Tue, 27 Oct 2020 22:38:20 +0000 (UTC) Received: from scv.redhat.com (ovpn-118-238.rdu2.redhat.com [10.10.118.238]) by smtp.corp.redhat.com (Postfix) with ESMTP id CCEC55B4B2; Tue, 27 Oct 2020 22:38:15 +0000 (UTC) From: John Snow To: qemu-devel@nongnu.org Subject: [PATCH 0/5] python: add linters to gitlab CI Date: Tue, 27 Oct 2020 18:38:10 -0400 Message-Id: <20201027223815.159802-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jsnow@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=216.205.24.124; envelope-from=jsnow@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/27 01:06:06 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , Thomas Huth , =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= , Eduardo Habkost , =?utf-8?q?Philippe_Mathieu-Dau?= =?utf-8?b?ZMOp?= , Markus Armbruster , Wainer dos Santos Moschetta , =?utf-8?q?Alex_Benn=C3=A9e?= , Cleber Rosa , John Snow Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" 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 Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé