mbox series

[v10,0/3] devtools: scripts to count and track symbols

Message ID 20210831145017.856776-1-mdr@ashroe.eu (mailing list archive)
Headers
Series devtools: scripts to count and track symbols |

Message

Ray Kinsella Aug. 31, 2021, 2:50 p.m. UTC
  Scripts to count and track the lifecycle of DPDK symbols.

The symbol-tool script reports on the growth of symbols over releases
and list expired symbols. The notify-symbol-maintainers script
consumes the input from symbol-tool and generates email notifications
of expired symbols.

v2: reworked to fix pylint errors
v3: sent with the correct in-reply-to
v4: fix typos picked up by the CI
v5: fix terminal_size & directory args
v6: added list-expired, to list expired experimental symbols
v7: fix typo in comments
v8: added tool to notify maintainers of expired symbols
v9: removed hardcoded emails addressed and script names
v10: added ability to identify and notify the original contributors

Ray Kinsella (3):
  devtools: script to track symbols over releases
  devtools: script to send notifications of expired symbols
  maintainers: add new abi scripts

 MAINTAINERS                           |   2 +
 devtools/notify-symbol-maintainers.py | 256 ++++++++++++++
 devtools/symbol-tool.py               | 482 ++++++++++++++++++++++++++
 3 files changed, 740 insertions(+)
 create mode 100755 devtools/notify-symbol-maintainers.py
 create mode 100755 devtools/symbol-tool.py
  

Comments

Aaron Conole Sept. 1, 2021, 12:31 p.m. UTC | #1
Ray Kinsella <mdr@ashroe.eu> writes:

> Scripts to count and track the lifecycle of DPDK symbols.
>
> The symbol-tool script reports on the growth of symbols over releases
> and list expired symbols. The notify-symbol-maintainers script
> consumes the input from symbol-tool and generates email notifications
> of expired symbols.
>
> v2: reworked to fix pylint errors
> v3: sent with the correct in-reply-to
> v4: fix typos picked up by the CI
> v5: fix terminal_size & directory args
> v6: added list-expired, to list expired experimental symbols
> v7: fix typo in comments
> v8: added tool to notify maintainers of expired symbols
> v9: removed hardcoded emails addressed and script names
> v10: added ability to identify and notify the original contributors
>
> Ray Kinsella (3):
>   devtools: script to track symbols over releases
>   devtools: script to send notifications of expired symbols
>   maintainers: add new abi scripts
>
>  MAINTAINERS                           |   2 +
>  devtools/notify-symbol-maintainers.py | 256 ++++++++++++++
>  devtools/symbol-tool.py               | 482 ++++++++++++++++++++++++++
>  3 files changed, 740 insertions(+)
>  create mode 100755 devtools/notify-symbol-maintainers.py
>  create mode 100755 devtools/symbol-tool.py

I get a whole mess of flake8 issues from this series (mostly 'backslash
is redundant' and whitespace issues).  I'm using flake8 because it
pretty well enforces PEP8 style guide.  I would like to see it
addressed, but also I see that many of the python files in the DPDK tree
don't actually pass.  Example::

  $ flake8 ./usertools/dpdk-devbind.py | wc -l
  34
  $ flake8 ./usertools/dpdk-devbind.py | sed 's@./usertools/dpdk-devbind.py[:0-9]* @@' | sort -u
  E128 continuation line under-indented for visual indent
  E302 expected 2 blank lines, found 1
  E305 expected 2 blank lines after class or function definition, found 1
  E501 line too long (105 > 79 characters)
  E501 line too long (80 > 79 characters)
  E501 line too long (82 > 79 characters)
  E501 line too long (83 > 79 characters)
  E501 line too long (84 > 79 characters)
  E501 line too long (85 > 79 characters)
  E501 line too long (86 > 79 characters)
  E501 line too long (91 > 79 characters)
  E502 the backslash is redundant between brackets
  E722 do not use bare 'except'

Looks like we repeat the same kinds of errors everywhere (this is on
multiple tools).  Some of our in-tree python is better than others (like
app/test/autotest.py which only has 1 flake).

Maybe we can address this.  Other comments inline on the patches.
  
Stephen Hemminger Sept. 1, 2021, 5:17 p.m. UTC | #2
On Wed, 01 Sep 2021 08:31:27 -0400
Aaron Conole <aconole@redhat.com> wrote:

>   $ flake8 ./usertools/dpdk-devbind.py | sed 's@./usertools/dpdk-devbind.py[:0-9]* @@' | sort -u
>   E128 continuation line under-indented for visual indent
>   E302 expected 2 blank lines, found 1
>   E305 expected 2 blank lines after class or function definition, found 1
>   E501 line too long (105 > 79 characters)
>   E501 line too long (80 > 79 characters)
>   E501 line too long (82 > 79 characters)
>   E501 line too long (83 > 79 characters)
>   E501 line too long (84 > 79 characters)
>   E501 line too long (85 > 79 characters)
>   E501 line too long (86 > 79 characters)
>   E501 line too long (91 > 79 characters)

Current practice on many projects has allowed lines up to 100 characters.
  
Aaron Conole Sept. 1, 2021, 7:04 p.m. UTC | #3
Stephen Hemminger <stephen@networkplumber.org> writes:

> On Wed, 01 Sep 2021 08:31:27 -0400
> Aaron Conole <aconole@redhat.com> wrote:
>
>>   $ flake8 ./usertools/dpdk-devbind.py | sed 's@./usertools/dpdk-devbind.py[:0-9]* @@' | sort -u
>>   E128 continuation line under-indented for visual indent
>>   E302 expected 2 blank lines, found 1
>>   E305 expected 2 blank lines after class or function definition, found 1
>>   E501 line too long (105 > 79 characters)
>>   E501 line too long (80 > 79 characters)
>>   E501 line too long (82 > 79 characters)
>>   E501 line too long (83 > 79 characters)
>>   E501 line too long (84 > 79 characters)
>>   E501 line too long (85 > 79 characters)
>>   E501 line too long (86 > 79 characters)
>>   E501 line too long (91 > 79 characters)
>
> Current practice on many projects has allowed lines up to 100 characters.

It is probably okay to run with '--ignore=E501' (which will squelch the
character limit).
  
Ray Kinsella Sept. 3, 2021, 11:17 a.m. UTC | #4
On 01/09/2021 20:04, Aaron Conole wrote:
> Stephen Hemminger <stephen@networkplumber.org> writes:
> 
>> On Wed, 01 Sep 2021 08:31:27 -0400
>> Aaron Conole <aconole@redhat.com> wrote:
>>
>>>   $ flake8 ./usertools/dpdk-devbind.py | sed 's@./usertools/dpdk-devbind.py[:0-9]* @@' | sort -u
>>>   E128 continuation line under-indented for visual indent
>>>   E302 expected 2 blank lines, found 1
>>>   E305 expected 2 blank lines after class or function definition, found 1
>>>   E501 line too long (105 > 79 characters)
>>>   E501 line too long (80 > 79 characters)
>>>   E501 line too long (82 > 79 characters)
>>>   E501 line too long (83 > 79 characters)
>>>   E501 line too long (84 > 79 characters)
>>>   E501 line too long (85 > 79 characters)
>>>   E501 line too long (86 > 79 characters)
>>>   E501 line too long (91 > 79 characters)
>>
>> Current practice on many projects has allowed lines up to 100 characters.
> 
> It is probably okay to run with '--ignore=E501' (which will squelch the
> character limit).


I added # noqa : E501 in the appropriate places, as we can't depend on folks using --ignore=E501.