diff mbox series

[v3,6/7] .gitlab-ci.yml: check flake8

Message ID 1520910585-19097-7-git-send-email-ricardo.martincoski@gmail.com
State Accepted
Headers show
Series fix Python code style v3 | expand

Commit Message

Ricardo Martincoski March 13, 2018, 3:09 a.m. UTC
Add a test to check Python code style in the whole buildroot tree.

Search files by type in order to help flake8 to find the Python scripts
without .py extension. But don't rely only in the output of 'file' as it
uses heuristics and sometimes it is wrong (specially identifying Python
files as C++ source for the 'file' version currently in the Docker
image).

Include in the output:
 - the list of Python files processed;
 - statistics for each kind of warning;
 - the total number of warnings;
 - the number of Python files processed.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
BEFORE APPLYING, see this note from Yann:
Note: this can only be applied _after_ we regenerate the docker image.
Then we'll have to update the version of the image at the top of the
gitlab-ci.yml file.

Changes v2 -> v3:
  - manually accepted review tag

Changes v1 -> v2:  (suggested by Yann E. MORIN)
  - install flake8 to the base docker image (in the previous patch)

https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/57046920
---
 .gitlab-ci.yml    | 11 +++++++++++
 .gitlab-ci.yml.in | 11 +++++++++++
 2 files changed, 22 insertions(+)

Comments

Yann E. MORIN March 13, 2018, 6:15 p.m. UTC | #1
Ricardo, All,

On 2018-03-13 00:09 -0300, Ricardo Martincoski spake thusly:
> Add a test to check Python code style in the whole buildroot tree.
> 
> Search files by type in order to help flake8 to find the Python scripts
> without .py extension. But don't rely only in the output of 'file' as it
> uses heuristics and sometimes it is wrong (specially identifying Python
> files as C++ source for the 'file' version currently in the Docker
> image).
> 
> Include in the output:
>  - the list of Python files processed;
>  - statistics for each kind of warning;
>  - the total number of warnings;
>  - the number of Python files processed.
> 
> Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>
> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
> BEFORE APPLYING, see this note from Yann:
> Note: this can only be applied _after_ we regenerate the docker image.
> Then we'll have to update the version of the image at the top of the
> gitlab-ci.yml file.

Indeed, so I've marked this patch as "deferred" in patchwork, so it does
not get accidentally applied.

Also, please consider inverting the order of patch 6 and 7: we need
flake8 to succeeds before enabling the automatic check, so we need to
exclude diffconfig first.

Regards,
Yann E. MORIN.

> Changes v2 -> v3:
>   - manually accepted review tag
> 
> Changes v1 -> v2:  (suggested by Yann E. MORIN)
>   - install flake8 to the base docker image (in the previous patch)
> 
> https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/57046920
> ---
>  .gitlab-ci.yml    | 11 +++++++++++
>  .gitlab-ci.yml.in | 11 +++++++++++
>  2 files changed, 22 insertions(+)
> 
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index f44c3a9..9ad4c5f 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -30,6 +30,17 @@ check-DEVELOPERS:
>      script:
>          - "! utils/get-developers | grep -v 'No action specified'"
>  
> +check-flake8:
> +    before_script:
> +        # Help flake8 to find the Python files without .py extension.
> +        - find * -type f -name '*.py' > files.txt
> +        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
> +        - sort -u files.txt | tee files.processed
> +    script:
> +        - python -m flake8 --statistics --count $(cat files.processed)
> +    after_script:
> +        - wc -l files.processed
> +
>  check-package:
>      script:
>          - find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +
> diff --git a/.gitlab-ci.yml.in b/.gitlab-ci.yml.in
> index cb3eb71..95fc025 100644
> --- a/.gitlab-ci.yml.in
> +++ b/.gitlab-ci.yml.in
> @@ -30,6 +30,17 @@ check-DEVELOPERS:
>      script:
>          - "! utils/get-developers | grep -v 'No action specified'"
>  
> +check-flake8:
> +    before_script:
> +        # Help flake8 to find the Python files without .py extension.
> +        - find * -type f -name '*.py' > files.txt
> +        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
> +        - sort -u files.txt | tee files.processed
> +    script:
> +        - python -m flake8 --statistics --count $(cat files.processed)
> +    after_script:
> +        - wc -l files.processed
> +
>  check-package:
>      script:
>          - find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +
> -- 
> 2.7.4
>
Ricardo Martincoski March 14, 2018, 11:16 p.m. UTC | #2
Hello,

On Tue, Mar 13, 2018 at 03:15 PM, Yann E. MORIN wrote:

> On 2018-03-13 00:09 -0300, Ricardo Martincoski spake thusly:
>> ---
>> BEFORE APPLYING, see this note from Yann:
>> Note: this can only be applied _after_ we regenerate the docker image.
>> Then we'll have to update the version of the image at the top of the
>> gitlab-ci.yml file.
> 
> Indeed, so I've marked this patch as "deferred" in patchwork, so it does
> not get accidentally applied.

Could you regenerate the image, please?
I don't have the docker push permission.

Regards,
Ricardo
Yann E. MORIN March 18, 2018, 4:25 p.m. UTC | #3
Ricardo, All,

On 2018-03-14 20:16 -0300, Ricardo Martincoski spake thusly:
> On Tue, Mar 13, 2018 at 03:15 PM, Yann E. MORIN wrote:
> > On 2018-03-13 00:09 -0300, Ricardo Martincoski spake thusly:
> >> ---
> >> BEFORE APPLYING, see this note from Yann:
> >> Note: this can only be applied _after_ we regenerate the docker image.
> >> Then we'll have to update the version of the image at the top of the
> >> gitlab-ci.yml file.
> > 
> > Indeed, so I've marked this patch as "deferred" in patchwork, so it does
> > not get accidentally applied.
> 
> Could you regenerate the image, please?
> I don't have the docker push permission.

Ok, I'm doing it now. Thanks!

Regards,
Yann E. MORIN.
Yann E. MORIN March 30, 2018, 9:12 p.m. UTC | #4
Ricardo, All,

On 2018-03-14 20:16 -0300, Ricardo Martincoski spake thusly:
> On Tue, Mar 13, 2018 at 03:15 PM, Yann E. MORIN wrote:
> > On 2018-03-13 00:09 -0300, Ricardo Martincoski spake thusly:
> >> ---
> >> BEFORE APPLYING, see this note from Yann:
> >> Note: this can only be applied _after_ we regenerate the docker image.
> >> Then we'll have to update the version of the image at the top of the
> >> gitlab-ci.yml file.
> > Indeed, so I've marked this patch as "deferred" in patchwork, so it does
> > not get accidentally applied.
> Could you regenerate the image, please?
> I don't have the docker push permission.

Not sure if you were aware of it, but this has been done a little while
ago now. Tag 20180318.1724 is available:
    https://hub.docker.com/r/buildroot/base/tags/

Regards,
Yann E. MORIN.
Ricardo Martincoski March 30, 2018, 10:38 p.m. UTC | #5
Hello,

On Fri, Mar 30, 2018 at 06:12 PM, Yann E. MORIN wrote:

> Not sure if you were aware of it, but this has been done a little while
> ago now. Tag 20180318.1724 is available:
>     https://hub.docker.com/r/buildroot/base/tags/

Thank you. I was not aware of it.
I am testing it now before I send a patch to bump the image tag.

Regards,
Ricardo
Thomas Petazzoni March 31, 2018, 8:49 p.m. UTC | #6
Hello,

On Tue, 13 Mar 2018 00:09:44 -0300, Ricardo Martincoski wrote:
> Add a test to check Python code style in the whole buildroot tree.
> 
> Search files by type in order to help flake8 to find the Python scripts
> without .py extension. But don't rely only in the output of 'file' as it
> uses heuristics and sometimes it is wrong (specially identifying Python
> files as C++ source for the 'file' version currently in the Docker
> image).
> 
> Include in the output:
>  - the list of Python files processed;
>  - statistics for each kind of warning;
>  - the total number of warnings;
>  - the number of Python files processed.
> 
> Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> Cc: Yann E. MORIN <yann.morin.1998@free.fr>
> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Applied to master, thanks.

Thomas
diff mbox series

Patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f44c3a9..9ad4c5f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,6 +30,17 @@  check-DEVELOPERS:
     script:
         - "! utils/get-developers | grep -v 'No action specified'"
 
+check-flake8:
+    before_script:
+        # Help flake8 to find the Python files without .py extension.
+        - find * -type f -name '*.py' > files.txt
+        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
+        - sort -u files.txt | tee files.processed
+    script:
+        - python -m flake8 --statistics --count $(cat files.processed)
+    after_script:
+        - wc -l files.processed
+
 check-package:
     script:
         - find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +
diff --git a/.gitlab-ci.yml.in b/.gitlab-ci.yml.in
index cb3eb71..95fc025 100644
--- a/.gitlab-ci.yml.in
+++ b/.gitlab-ci.yml.in
@@ -30,6 +30,17 @@  check-DEVELOPERS:
     script:
         - "! utils/get-developers | grep -v 'No action specified'"
 
+check-flake8:
+    before_script:
+        # Help flake8 to find the Python files without .py extension.
+        - find * -type f -name '*.py' > files.txt
+        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
+        - sort -u files.txt | tee files.processed
+    script:
+        - python -m flake8 --statistics --count $(cat files.processed)
+    after_script:
+        - wc -l files.processed
+
 check-package:
     script:
         - find . -type f \( -name '*.mk' -o -name '*.hash' \) -exec ./utils/check-package {} +