public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch 0/3] BaseTools: PatchCheck to align with wiki and report error for EFI_D_*
@ 2016-10-17  8:28 Yonghong Zhu
  2016-10-17  8:28 ` [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line Yonghong Zhu
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Yonghong Zhu @ 2016-10-17  8:28 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Jordan Justen

These patches address the following 2 bugs:
https://bugzilla.tianocore.org/show_bug.cgi?id=113
https://bugzilla.tianocore.org/show_bug.cgi?id=145

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>

Yonghong Zhu (3):
  BaseTools: Update PatchCheck for max length of subject and message
    line
  BaseTools: Update PatchCheck to handle the two [] as prefix
  BaseTools: Update PatchCheck to report error for EFI_D_*

 BaseTools/Scripts/PatchCheck.py | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

-- 
2.6.1.windows.1



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

* [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line
  2016-10-17  8:28 [Patch 0/3] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* Yonghong Zhu
@ 2016-10-17  8:28 ` Yonghong Zhu
  2016-10-17 16:40   ` Jordan Justen
  2016-10-17  8:28 ` [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix Yonghong Zhu
  2016-10-17  8:28 ` [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_* Yonghong Zhu
  2 siblings, 1 reply; 12+ messages in thread
From: Yonghong Zhu @ 2016-10-17  8:28 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Jordan Justen

This patch update PatchCheck.py:
1. The subject line of the commit message should be < 72 characters.
2. The other lines of the commit message should be < 76 characters.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Scripts/PatchCheck.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
index 455c130..07fca68 100755
--- a/BaseTools/Scripts/PatchCheck.py
+++ b/BaseTools/Scripts/PatchCheck.py
@@ -1,9 +1,9 @@
 ## @file
 #  Check a patch for various format issues
 #
-#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials are licensed and made
 #  available under the terms and conditions of the BSD License which
 #  accompanies this distribution. The full text of the license may be
 #  found at http://opensource.org/licenses/bsd-license.php
@@ -14,11 +14,11 @@
 #
 
 from __future__ import print_function
 
 VersionNumber = '0.1'
-__copyright__ = "Copyright (c) 2015, Intel Corporation  All rights reserved."
+__copyright__ = "Copyright (c) 2015 - 2016, Intel Corporation  All rights reserved."
 
 import email
 import argparse
 import os
 import re
@@ -195,11 +195,11 @@ class CommitMessageCheck:
 
         if count <= 0:
             self.error('Empty commit message!')
             return
 
-        if count >= 1 and len(lines[0]) > 76:
+        if count >= 1 and len(lines[0]) >= 72:
             self.error('First line of commit message (subject line) ' +
                        'is too long.')
 
         if count >= 1 and len(lines[0].strip()) == 0:
             self.error('First line of commit message (subject line) ' +
@@ -208,11 +208,11 @@ class CommitMessageCheck:
         if count >= 2 and lines[1].strip() != '':
             self.error('Second line of commit message should be ' +
                        'empty.')
 
         for i in range(2, count):
-            if (len(lines[i]) > 76 and
+            if (len(lines[i]) >= 76 and
                 len(lines[i].split()) > 1 and
                 not lines[i].startswith('git-svn-id:')):
                 self.error('Line %d of commit message is too long.' % (i + 1))
 
         last_sig_line = None
-- 
2.6.1.windows.1



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

* [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix
  2016-10-17  8:28 [Patch 0/3] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* Yonghong Zhu
  2016-10-17  8:28 ` [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line Yonghong Zhu
@ 2016-10-17  8:28 ` Yonghong Zhu
  2016-10-17 16:48   ` Jordan Justen
  2016-10-17  8:28 ` [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_* Yonghong Zhu
  2 siblings, 1 reply; 12+ messages in thread
From: Yonghong Zhu @ 2016-10-17  8:28 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Jordan Justen

The bug is that only remove the first [] when it does the char count,
however sometimes we use [edk2][patch] as prefix, this patch fix this bug.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Scripts/PatchCheck.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
index 07fca68..05f8f6e 100755
--- a/BaseTools/Scripts/PatchCheck.py
+++ b/BaseTools/Scripts/PatchCheck.py
@@ -434,10 +434,18 @@ class CheckOnePatch:
                            [\s\S\r\n]+
                        )
                    ''',
                    re.IGNORECASE | re.VERBOSE | re.MULTILINE)
 
+    subject_prefix_re = \
+        re.compile(r'''^
+                       \s* (\[
+                        [^\[\]]* # Allow all non-brackets
+                       \])* \s*
+                   ''',
+                   re.VERBOSE)
+
     def find_patch_pieces(self):
         if sys.version_info < (3, 0):
             patch = self.patch.encode('ascii', 'ignore')
         else:
             patch = self.patch
@@ -470,18 +478,11 @@ class CheckOnePatch:
             self.stat = mo.group('stat')
             self.commit_msg = mo.group('commit_message')
 
         self.commit_subject = pmail['subject'].replace('\r\n', '')
         self.commit_subject = self.commit_subject.replace('\n', '')
-
-        pfx_start = self.commit_subject.find('[')
-        if pfx_start >= 0:
-            pfx_end = self.commit_subject.find(']')
-            if pfx_end > pfx_start:
-                self.commit_prefix = self.commit_subject[pfx_start + 1 : pfx_end]
-                self.commit_subject = self.commit_subject[pfx_end + 1 :].lstrip()
-
+        self.commit_subject = self.subject_prefix_re.sub('', self.commit_subject, 1)
 
 class CheckGitCommits:
     """Reads patches from git based on the specified git revision range.
 
     The patches are read from git, and then checked.
-- 
2.6.1.windows.1



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

* [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
  2016-10-17  8:28 [Patch 0/3] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* Yonghong Zhu
  2016-10-17  8:28 ` [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line Yonghong Zhu
  2016-10-17  8:28 ` [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix Yonghong Zhu
@ 2016-10-17  8:28 ` Yonghong Zhu
  2016-10-17 16:58   ` Jordan Justen
  2 siblings, 1 reply; 12+ messages in thread
From: Yonghong Zhu @ 2016-10-17  8:28 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Jordan Justen

In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For new
code, they should use DEBUG_* macro.

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Scripts/PatchCheck.py | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
index 05f8f6e..3ac0769 100755
--- a/BaseTools/Scripts/PatchCheck.py
+++ b/BaseTools/Scripts/PatchCheck.py
@@ -337,10 +337,15 @@ class GitDiffCheck:
         if self.hunk_filename is not None:
             lines.append('File: ' + self.hunk_filename)
         lines.append('Line: ' + line)
 
         self.error(*lines)
+
+    DEBUG_macro_re = re.compile(r'''^
+                                    \s*DEBUG\s*\(\(
+                                ''',
+                                re.VERBOSE)
 
     def check_added_line(self, line):
         eol = ''
         for an_eol in self.line_endings:
             if line.endswith(an_eol):
@@ -354,10 +359,13 @@ class GitDiffCheck:
                                   line)
         if '\t' in line:
             self.added_line_error('Tab character used', line)
         if len(stripped) < len(line):
             self.added_line_error('Trailing whitespace found', line)
+        if self.DEBUG_macro_re.match(line):
+            if 'EFI_D_' in line:
+                self.added_line_error('EFI_D_* format is used, recommend to use DEBUG_* format', line)
 
     split_diff_re = re.compile(r'''
                                    (?P<cmd>
                                        ^ diff \s+ --git \s+ a/.+ \s+ b/.+ $
                                    )
-- 
2.6.1.windows.1



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

* Re: [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line
  2016-10-17  8:28 ` [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line Yonghong Zhu
@ 2016-10-17 16:40   ` Jordan Justen
  2016-10-18  0:49     ` Zhu, Yonghong
  0 siblings, 1 reply; 12+ messages in thread
From: Jordan Justen @ 2016-10-17 16:40 UTC (permalink / raw)
  To: Yonghong Zhu, edk2-devel; +Cc: Liming Gao

On 2016-10-17 01:28:36, Yonghong Zhu wrote:
> This patch update PatchCheck.py:
> 1. The subject line of the commit message should be < 72 characters.
> 2. The other lines of the commit message should be < 76 characters.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
> 

Can you remove the blank line after 'Fixes:'? The end of the commit
message has various tags, like Fixes, Cc, Contributed-under,
Signed-off-by, Reviewed-by, etc. They can be one tag per line and
grouped together.

Patch 1 Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
> index 455c130..07fca68 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -1,9 +1,9 @@
>  ## @file
>  #  Check a patch for various format issues
>  #
> -#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
>  #
>  #  This program and the accompanying materials are licensed and made
>  #  available under the terms and conditions of the BSD License which
>  #  accompanies this distribution. The full text of the license may be
>  #  found at http://opensource.org/licenses/bsd-license.php
> @@ -14,11 +14,11 @@
>  #
>  
>  from __future__ import print_function
>  
>  VersionNumber = '0.1'
> -__copyright__ = "Copyright (c) 2015, Intel Corporation  All rights reserved."
> +__copyright__ = "Copyright (c) 2015 - 2016, Intel Corporation  All rights reserved."
>  
>  import email
>  import argparse
>  import os
>  import re
> @@ -195,11 +195,11 @@ class CommitMessageCheck:
>  
>          if count <= 0:
>              self.error('Empty commit message!')
>              return
>  
> -        if count >= 1 and len(lines[0]) > 76:
> +        if count >= 1 and len(lines[0]) >= 72:
>              self.error('First line of commit message (subject line) ' +
>                         'is too long.')
>  
>          if count >= 1 and len(lines[0].strip()) == 0:
>              self.error('First line of commit message (subject line) ' +
> @@ -208,11 +208,11 @@ class CommitMessageCheck:
>          if count >= 2 and lines[1].strip() != '':
>              self.error('Second line of commit message should be ' +
>                         'empty.')
>  
>          for i in range(2, count):
> -            if (len(lines[i]) > 76 and
> +            if (len(lines[i]) >= 76 and
>                  len(lines[i].split()) > 1 and
>                  not lines[i].startswith('git-svn-id:')):
>                  self.error('Line %d of commit message is too long.' % (i + 1))
>  
>          last_sig_line = None
> -- 
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


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

* Re: [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix
  2016-10-17  8:28 ` [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix Yonghong Zhu
@ 2016-10-17 16:48   ` Jordan Justen
  2016-10-18  0:53     ` Zhu, Yonghong
  0 siblings, 1 reply; 12+ messages in thread
From: Jordan Justen @ 2016-10-17 16:48 UTC (permalink / raw)
  To: Yonghong Zhu, edk2-devel; +Cc: Liming Gao

A small (not too important) suggestion for the patch subject might be:

BaseTools/PatchCheck.py: Update to handle the two [] as prefix

On 2016-10-17 01:28:37, Yonghong Zhu wrote:
> The bug is that only remove the first [] when it does the char count,
> however sometimes we use [edk2][patch] as prefix, this patch fix this bug.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
> 

Remove blank line after 'Fixes:'.

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
> index 07fca68..05f8f6e 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -434,10 +434,18 @@ class CheckOnePatch:
>                             [\s\S\r\n]+
>                         )
>                     ''',
>                     re.IGNORECASE | re.VERBOSE | re.MULTILINE)
>  
> +    subject_prefix_re = \
> +        re.compile(r'''^
> +                       \s* (\[
> +                        [^\[\]]* # Allow all non-brackets
> +                       \])* \s*
> +                   ''',
> +                   re.VERBOSE)
> +
>      def find_patch_pieces(self):
>          if sys.version_info < (3, 0):
>              patch = self.patch.encode('ascii', 'ignore')
>          else:
>              patch = self.patch
> @@ -470,18 +478,11 @@ class CheckOnePatch:
>              self.stat = mo.group('stat')
>              self.commit_msg = mo.group('commit_message')
>  
>          self.commit_subject = pmail['subject'].replace('\r\n', '')
>          self.commit_subject = self.commit_subject.replace('\n', '')
> -
> -        pfx_start = self.commit_subject.find('[')
> -        if pfx_start >= 0:
> -            pfx_end = self.commit_subject.find(']')
> -            if pfx_end > pfx_start:
> -                self.commit_prefix = self.commit_subject[pfx_start + 1 : pfx_end]

Since we no longer set self.commit_prefix, and you remove the other
references to it in the script?

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

> -                self.commit_subject = self.commit_subject[pfx_end + 1 :].lstrip()
> -
> +        self.commit_subject = self.subject_prefix_re.sub('', self.commit_subject, 1)
>  
>  class CheckGitCommits:
>      """Reads patches from git based on the specified git revision range.
>  
>      The patches are read from git, and then checked.
> -- 
> 2.6.1.windows.1
> 


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

* Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
  2016-10-17  8:28 ` [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_* Yonghong Zhu
@ 2016-10-17 16:58   ` Jordan Justen
  2016-10-18  2:02     ` Zhu, Yonghong
  0 siblings, 1 reply; 12+ messages in thread
From: Jordan Justen @ 2016-10-17 16:58 UTC (permalink / raw)
  To: Yonghong Zhu, edk2-devel; +Cc: Liming Gao

On 2016-10-17 01:28:38, Yonghong Zhu wrote:
> In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For new
> code, they should use DEBUG_* macro.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
>

Remove blank line. I think you meant 143, not 145.

Instead of looking for DEBUG and EFI_D_, I think we should just look
for EFI_D_. It is possible that the user might put the EFI_D_ on a
separate line. What do you think?

Should we add 'warning' support to the script first, and then flag
this as a warning rather than an error? (I don't think this is too
important, because getting an error from the script will not currently
prevent the patch from being merged.)

-Jordan

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
> index 05f8f6e..3ac0769 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -337,10 +337,15 @@ class GitDiffCheck:
>          if self.hunk_filename is not None:
>              lines.append('File: ' + self.hunk_filename)
>          lines.append('Line: ' + line)
>  
>          self.error(*lines)
> +
> +    DEBUG_macro_re = re.compile(r'''^
> +                                    \s*DEBUG\s*\(\(
> +                                ''',
> +                                re.VERBOSE)
>  
>      def check_added_line(self, line):
>          eol = ''
>          for an_eol in self.line_endings:
>              if line.endswith(an_eol):
> @@ -354,10 +359,13 @@ class GitDiffCheck:
>                                    line)
>          if '    ' in line:
>              self.added_line_error('Tab character used', line)
>          if len(stripped) < len(line):
>              self.added_line_error('Trailing whitespace found', line)
> +        if self.DEBUG_macro_re.match(line):
> +            if 'EFI_D_' in line:
> +                self.added_line_error('EFI_D_* format is used, recommend to use DEBUG_* format', line)
>  
>      split_diff_re = re.compile(r'''
>                                     (?P<cmd>
>                                         ^ diff \s+ --git \s+ a/.+ \s+ b/.+ $
>                                     )
> -- 
> 2.6.1.windows.1
> 


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

* Re: [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line
  2016-10-17 16:40   ` Jordan Justen
@ 2016-10-18  0:49     ` Zhu, Yonghong
  0 siblings, 0 replies; 12+ messages in thread
From: Zhu, Yonghong @ 2016-10-18  0:49 UTC (permalink / raw)
  To: Justen, Jordan L, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong

I will remove the blank line after 'Fixes:' when I push this patch. thanks for the comment.

Best Regards,
Zhu Yonghong

-----Original Message-----
From: Justen, Jordan L 
Sent: Tuesday, October 18, 2016 12:40 AM
To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>
Subject: Re: [edk2] [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line

On 2016-10-17 01:28:36, Yonghong Zhu wrote:
> This patch update PatchCheck.py:
> 1. The subject line of the commit message should be < 72 characters.
> 2. The other lines of the commit message should be < 76 characters.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
> 

Can you remove the blank line after 'Fixes:'? The end of the commit message has various tags, like Fixes, Cc, Contributed-under, Signed-off-by, Reviewed-by, etc. They can be one tag per line and grouped together.

Patch 1 Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py 
> b/BaseTools/Scripts/PatchCheck.py index 455c130..07fca68 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -1,9 +1,9 @@
>  ## @file
>  #  Check a patch for various format issues  # -#  Copyright (c) 2015, 
> Intel Corporation. All rights reserved.<BR>
> +#  Copyright (c) 2015 - 2016, Intel Corporation. All rights 
> +reserved.<BR>
>  #
>  #  This program and the accompanying materials are licensed and made  
> #  available under the terms and conditions of the BSD License which  
> #  accompanies this distribution. The full text of the license may be  
> #  found at http://opensource.org/licenses/bsd-license.php
> @@ -14,11 +14,11 @@
>  #
>  
>  from __future__ import print_function
>  
>  VersionNumber = '0.1'
> -__copyright__ = "Copyright (c) 2015, Intel Corporation  All rights reserved."
> +__copyright__ = "Copyright (c) 2015 - 2016, Intel Corporation  All rights reserved."
>  
>  import email
>  import argparse
>  import os
>  import re
> @@ -195,11 +195,11 @@ class CommitMessageCheck:
>  
>          if count <= 0:
>              self.error('Empty commit message!')
>              return
>  
> -        if count >= 1 and len(lines[0]) > 76:
> +        if count >= 1 and len(lines[0]) >= 72:
>              self.error('First line of commit message (subject line) ' +
>                         'is too long.')
>  
>          if count >= 1 and len(lines[0].strip()) == 0:
>              self.error('First line of commit message (subject line) ' 
> + @@ -208,11 +208,11 @@ class CommitMessageCheck:
>          if count >= 2 and lines[1].strip() != '':
>              self.error('Second line of commit message should be ' +
>                         'empty.')
>  
>          for i in range(2, count):
> -            if (len(lines[i]) > 76 and
> +            if (len(lines[i]) >= 76 and
>                  len(lines[i].split()) > 1 and
>                  not lines[i].startswith('git-svn-id:')):
>                  self.error('Line %d of commit message is too long.' % 
> (i + 1))
>  
>          last_sig_line = None
> --
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

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

* Re: [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix
  2016-10-17 16:48   ` Jordan Justen
@ 2016-10-18  0:53     ` Zhu, Yonghong
  0 siblings, 0 replies; 12+ messages in thread
From: Zhu, Yonghong @ 2016-10-18  0:53 UTC (permalink / raw)
  To: Justen, Jordan L, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong

Thanks for the comment, when I push the patch I will do the update.

Best Regards,
Zhu Yonghong


-----Original Message-----
From: Justen, Jordan L 
Sent: Tuesday, October 18, 2016 12:49 AM
To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>
Subject: Re: [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix

A small (not too important) suggestion for the patch subject might be:

BaseTools/PatchCheck.py: Update to handle the two [] as prefix

On 2016-10-17 01:28:37, Yonghong Zhu wrote:
> The bug is that only remove the first [] when it does the char count, 
> however sometimes we use [edk2][patch] as prefix, this patch fix this bug.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=113
> 

Remove blank line after 'Fixes:'.

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py 
> b/BaseTools/Scripts/PatchCheck.py index 07fca68..05f8f6e 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -434,10 +434,18 @@ class CheckOnePatch:
>                             [\s\S\r\n]+
>                         )
>                     ''',
>                     re.IGNORECASE | re.VERBOSE | re.MULTILINE)
>  
> +    subject_prefix_re = \
> +        re.compile(r'''^
> +                       \s* (\[
> +                        [^\[\]]* # Allow all non-brackets
> +                       \])* \s*
> +                   ''',
> +                   re.VERBOSE)
> +
>      def find_patch_pieces(self):
>          if sys.version_info < (3, 0):
>              patch = self.patch.encode('ascii', 'ignore')
>          else:
>              patch = self.patch
> @@ -470,18 +478,11 @@ class CheckOnePatch:
>              self.stat = mo.group('stat')
>              self.commit_msg = mo.group('commit_message')
>  
>          self.commit_subject = pmail['subject'].replace('\r\n', '')
>          self.commit_subject = self.commit_subject.replace('\n', '')
> -
> -        pfx_start = self.commit_subject.find('[')
> -        if pfx_start >= 0:
> -            pfx_end = self.commit_subject.find(']')
> -            if pfx_end > pfx_start:
> -                self.commit_prefix = self.commit_subject[pfx_start + 1 : pfx_end]

Since we no longer set self.commit_prefix, and you remove the other references to it in the script?

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

> -                self.commit_subject = self.commit_subject[pfx_end + 1 :].lstrip()
> -
> +        self.commit_subject = self.subject_prefix_re.sub('', 
> + self.commit_subject, 1)
>  
>  class CheckGitCommits:
>      """Reads patches from git based on the specified git revision range.
>  
>      The patches are read from git, and then checked.
> --
> 2.6.1.windows.1
> 

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

* Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
  2016-10-17 16:58   ` Jordan Justen
@ 2016-10-18  2:02     ` Zhu, Yonghong
  2016-10-18  6:43       ` Jordan Justen
  0 siblings, 1 reply; 12+ messages in thread
From: Zhu, Yonghong @ 2016-10-18  2:02 UTC (permalink / raw)
  To: Justen, Jordan L, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong

Hi Jordan,

We request to report error since the DEBUG_* is our recommend coding style and EFI_D_ is obsolete.
Looking for DEBUG and EFI_D_ since only look for EFI_D_ may cause some False error be reported. And I agree that user might put EFI_D_ on a separate line, however I scanned our current edk2 code, no such usage. So I'd like to add this support after we meet the real case.

Best Regards,
Zhu Yonghong


-----Original Message-----
From: Justen, Jordan L 
Sent: Tuesday, October 18, 2016 12:58 AM
To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>
Subject: Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*

On 2016-10-17 01:28:38, Yonghong Zhu wrote:
> In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For new 
> code, they should use DEBUG_* macro.
> 
> Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
>

Remove blank line. I think you meant 143, not 145.

Instead of looking for DEBUG and EFI_D_, I think we should just look for EFI_D_. It is possible that the user might put the EFI_D_ on a separate line. What do you think?

Should we add 'warning' support to the script first, and then flag this as a warning rather than an error? (I don't think this is too important, because getting an error from the script will not currently prevent the patch from being merged.)

-Jordan

> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Scripts/PatchCheck.py | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/BaseTools/Scripts/PatchCheck.py 
> b/BaseTools/Scripts/PatchCheck.py index 05f8f6e..3ac0769 100755
> --- a/BaseTools/Scripts/PatchCheck.py
> +++ b/BaseTools/Scripts/PatchCheck.py
> @@ -337,10 +337,15 @@ class GitDiffCheck:
>          if self.hunk_filename is not None:
>              lines.append('File: ' + self.hunk_filename)
>          lines.append('Line: ' + line)
>  
>          self.error(*lines)
> +
> +    DEBUG_macro_re = re.compile(r'''^
> +                                    \s*DEBUG\s*\(\(
> +                                ''',
> +                                re.VERBOSE)
>  
>      def check_added_line(self, line):
>          eol = ''
>          for an_eol in self.line_endings:
>              if line.endswith(an_eol):
> @@ -354,10 +359,13 @@ class GitDiffCheck:
>                                    line)
>          if '    ' in line:
>              self.added_line_error('Tab character used', line)
>          if len(stripped) < len(line):
>              self.added_line_error('Trailing whitespace found', line)
> +        if self.DEBUG_macro_re.match(line):
> +            if 'EFI_D_' in line:
> +                self.added_line_error('EFI_D_* format is used, 
> + recommend to use DEBUG_* format', line)
>  
>      split_diff_re = re.compile(r'''
>                                     (?P<cmd>
>                                         ^ diff \s+ --git \s+ a/.+ \s+ b/.+ $
>                                     )
> --
> 2.6.1.windows.1
> 

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

* Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
  2016-10-18  2:02     ` Zhu, Yonghong
@ 2016-10-18  6:43       ` Jordan Justen
  2016-10-18 10:22         ` Zhu, Yonghong
  0 siblings, 1 reply; 12+ messages in thread
From: Jordan Justen @ 2016-10-18  6:43 UTC (permalink / raw)
  To: Zhu, Yonghong, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong

On 2016-10-17 19:02:57, Zhu, Yonghong wrote:
> Hi Jordan,
> 
> We request to report error since the DEBUG_* is our recommend coding
> style and EFI_D_ is obsolete. Looking for DEBUG and EFI_D_ since
> only look for EFI_D_ may cause some False error be reported. And I
> agree that user might put EFI_D_ on a separate line, however I
> scanned our current edk2 code, no such usage. So I'd like to add
> this support after we meet the real case.
> 

In that case, how about making the regex detect both?

    old_debug_re = \
        re.compile(r'''
                       DEBUG \s? \( \s? \( \s* EFI_D_ ([A-Z_]+)
                   ''',
                   re.VERBOSE)

Then you can use something like:

    mo = self.old_debug_re.search(...)
    if mo is not None:
        self.added_line_error('EFI_D_' + mo.group(1) + ' was used, '
                              'but DEBUG_' + mo.group(1) +
                              ' is now recommended', line)

-Jordan

> 
> -----Original Message-----
> From: Justen, Jordan L 
> Sent: Tuesday, October 18, 2016 12:58 AM
> To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
> 
> On 2016-10-17 01:28:38, Yonghong Zhu wrote:
> > In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For new 
> > code, they should use DEBUG_* macro.
> > 
> > Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
> >
> 
> Remove blank line. I think you meant 143, not 145.
> 
> Instead of looking for DEBUG and EFI_D_, I think we should just look
> for EFI_D_. It is possible that the user might put the EFI_D_ on a
> separate line. What do you think?
> 
> Should we add 'warning' support to the script first, and then flag
> this as a warning rather than an error? (I don't think this is too
> important, because getting an error from the script will not
> currently prevent the patch from being merged.)
> 
> -Jordan
> 
> > Cc: Liming Gao <liming.gao@intel.com>
> > Cc: Jordan Justen <jordan.l.justen@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> > ---
> >  BaseTools/Scripts/PatchCheck.py | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/BaseTools/Scripts/PatchCheck.py 
> > b/BaseTools/Scripts/PatchCheck.py index 05f8f6e..3ac0769 100755
> > --- a/BaseTools/Scripts/PatchCheck.py
> > +++ b/BaseTools/Scripts/PatchCheck.py
> > @@ -337,10 +337,15 @@ class GitDiffCheck:
> >          if self.hunk_filename is not None:
> >              lines.append('File: ' + self.hunk_filename)
> >          lines.append('Line: ' + line)
> >  
> >          self.error(*lines)
> > +
> > +    DEBUG_macro_re = re.compile(r'''^
> > +                                    \s*DEBUG\s*\(\(
> > +                                ''',
> > +                                re.VERBOSE)
> >  
> >      def check_added_line(self, line):
> >          eol = ''
> >          for an_eol in self.line_endings:
> >              if line.endswith(an_eol):
> > @@ -354,10 +359,13 @@ class GitDiffCheck:
> >                                    line)
> >          if '    ' in line:
> >              self.added_line_error('Tab character used', line)
> >          if len(stripped) < len(line):
> >              self.added_line_error('Trailing whitespace found', line)
> > +        if self.DEBUG_macro_re.match(line):
> > +            if 'EFI_D_' in line:
> > +                self.added_line_error('EFI_D_* format is used, 
> > + recommend to use DEBUG_* format', line)
> >  
> >      split_diff_re = re.compile(r'''
> >                                     (?P<cmd>
> >                                         ^ diff \s+ --git \s+ a/.+ \s+ b/.+ $
> >                                     )
> > --
> > 2.6.1.windows.1
> > 


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

* Re: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*
  2016-10-18  6:43       ` Jordan Justen
@ 2016-10-18 10:22         ` Zhu, Yonghong
  0 siblings, 0 replies; 12+ messages in thread
From: Zhu, Yonghong @ 2016-10-18 10:22 UTC (permalink / raw)
  To: Justen, Jordan L, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong

Thanks Jordan, I sent a V2. I update a little on the re.compile to cover the case that EFI_D_* in the middle of the DEBUG string, and may have multiple space between DEBUG and ( character.

Best Regards,
Zhu Yonghong


-----Original Message-----
From: Justen, Jordan L 
Sent: Tuesday, October 18, 2016 2:43 PM
To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
Cc: Gao, Liming <liming.gao@intel.com>; Zhu, Yonghong <yonghong.zhu@intel.com>
Subject: RE: [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_*

On 2016-10-17 19:02:57, Zhu, Yonghong wrote:
> Hi Jordan,
> 
> We request to report error since the DEBUG_* is our recommend coding 
> style and EFI_D_ is obsolete. Looking for DEBUG and EFI_D_ since only 
> look for EFI_D_ may cause some False error be reported. And I agree 
> that user might put EFI_D_ on a separate line, however I scanned our 
> current edk2 code, no such usage. So I'd like to add this support 
> after we meet the real case.
> 

In that case, how about making the regex detect both?

    old_debug_re = \
        re.compile(r'''
                       DEBUG \s? \( \s? \( \s* EFI_D_ ([A-Z_]+)
                   ''',
                   re.VERBOSE)

Then you can use something like:

    mo = self.old_debug_re.search(...)
    if mo is not None:
        self.added_line_error('EFI_D_' + mo.group(1) + ' was used, '
                              'but DEBUG_' + mo.group(1) +
                              ' is now recommended', line)

-Jordan

> 
> -----Original Message-----
> From: Justen, Jordan L
> Sent: Tuesday, October 18, 2016 12:58 AM
> To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: Re: [Patch 3/3] BaseTools: Update PatchCheck to report error 
> for EFI_D_*
> 
> On 2016-10-17 01:28:38, Yonghong Zhu wrote:
> > In EDK2, DEBUG_* is recommended to be used instead of EFI_D_*. For 
> > new code, they should use DEBUG_* macro.
> > 
> > Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=145
> >
> 
> Remove blank line. I think you meant 143, not 145.
> 
> Instead of looking for DEBUG and EFI_D_, I think we should just look 
> for EFI_D_. It is possible that the user might put the EFI_D_ on a 
> separate line. What do you think?
> 
> Should we add 'warning' support to the script first, and then flag 
> this as a warning rather than an error? (I don't think this is too 
> important, because getting an error from the script will not currently 
> prevent the patch from being merged.)
> 
> -Jordan
> 
> > Cc: Liming Gao <liming.gao@intel.com>
> > Cc: Jordan Justen <jordan.l.justen@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> > ---
> >  BaseTools/Scripts/PatchCheck.py | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/BaseTools/Scripts/PatchCheck.py 
> > b/BaseTools/Scripts/PatchCheck.py index 05f8f6e..3ac0769 100755
> > --- a/BaseTools/Scripts/PatchCheck.py
> > +++ b/BaseTools/Scripts/PatchCheck.py
> > @@ -337,10 +337,15 @@ class GitDiffCheck:
> >          if self.hunk_filename is not None:
> >              lines.append('File: ' + self.hunk_filename)
> >          lines.append('Line: ' + line)
> >  
> >          self.error(*lines)
> > +
> > +    DEBUG_macro_re = re.compile(r'''^
> > +                                    \s*DEBUG\s*\(\(
> > +                                ''',
> > +                                re.VERBOSE)
> >  
> >      def check_added_line(self, line):
> >          eol = ''
> >          for an_eol in self.line_endings:
> >              if line.endswith(an_eol):
> > @@ -354,10 +359,13 @@ class GitDiffCheck:
> >                                    line)
> >          if '    ' in line:
> >              self.added_line_error('Tab character used', line)
> >          if len(stripped) < len(line):
> >              self.added_line_error('Trailing whitespace found', 
> > line)
> > +        if self.DEBUG_macro_re.match(line):
> > +            if 'EFI_D_' in line:
> > +                self.added_line_error('EFI_D_* format is used, 
> > + recommend to use DEBUG_* format', line)
> >  
> >      split_diff_re = re.compile(r'''
> >                                     (?P<cmd>
> >                                         ^ diff \s+ --git \s+ a/.+ \s+ b/.+ $
> >                                     )
> > --
> > 2.6.1.windows.1
> > 

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

end of thread, other threads:[~2016-10-18 10:22 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-17  8:28 [Patch 0/3] BaseTools: PatchCheck to align with wiki and report error for EFI_D_* Yonghong Zhu
2016-10-17  8:28 ` [Patch 1/3] BaseTools: Update PatchCheck for max length of subject and message line Yonghong Zhu
2016-10-17 16:40   ` Jordan Justen
2016-10-18  0:49     ` Zhu, Yonghong
2016-10-17  8:28 ` [Patch 2/3] BaseTools: Update PatchCheck to handle the two [] as prefix Yonghong Zhu
2016-10-17 16:48   ` Jordan Justen
2016-10-18  0:53     ` Zhu, Yonghong
2016-10-17  8:28 ` [Patch 3/3] BaseTools: Update PatchCheck to report error for EFI_D_* Yonghong Zhu
2016-10-17 16:58   ` Jordan Justen
2016-10-18  2:02     ` Zhu, Yonghong
2016-10-18  6:43       ` Jordan Justen
2016-10-18 10:22         ` Zhu, Yonghong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox