[v2] devtools: export title syntax data for check-git-log

Message ID 20200224120227.454547-1-ferruh.yigit@intel.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v2] devtools: export title syntax data for check-git-log |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail apply issues
ci/travis-robot success Travis build: passed

Commit Message

Ferruh Yigit Feb. 24, 2020, 12:02 p.m. UTC
  From: Sean Morrissey <sean.morrissey@intel.com>

Moved title syntax to a separate file so that it improves code
readability and allows easy addition.

Also logic changed from checking for bad pattern to checking good
pattern which documents the expected syntax more clearly, and does not
have gaps in the checks.

Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
v2:
* renamed data file to words-case.txt and added to MAINTAINERS file
* Updated script
* as of now vdpa as file prefix is giving false positive
---
 MAINTAINERS               |  1 +
 devtools/check-git-log.sh | 63 ++++++++-------------------------------
 devtools/words-case.txt   | 48 +++++++++++++++++++++++++++++
 3 files changed, 61 insertions(+), 51 deletions(-)
 create mode 100644 devtools/words-case.txt
  

Comments

Thomas Monjalon Feb. 24, 2020, 1:39 p.m. UTC | #1
24/02/2020 13:02, Ferruh Yigit:
> From: Sean Morrissey <sean.morrissey@intel.com>
> 
> Moved title syntax to a separate file so that it improves code
> readability and allows easy addition.
> 
> Also logic changed from checking for bad pattern to checking good
> pattern which documents the expected syntax more clearly, and does not
> have gaps in the checks.
> 
> Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> v2:
> * renamed data file to words-case.txt and added to MAINTAINERS file
> * Updated script
> * as of now vdpa as file prefix is giving false positive

False positive can be avoided if filtering out what is before the first colon.
  
Ferruh Yigit Feb. 24, 2020, 2:38 p.m. UTC | #2
On 2/24/2020 1:39 PM, Thomas Monjalon wrote:
> 24/02/2020 13:02, Ferruh Yigit:
>> From: Sean Morrissey <sean.morrissey@intel.com>
>>
>> Moved title syntax to a separate file so that it improves code
>> readability and allows easy addition.
>>
>> Also logic changed from checking for bad pattern to checking good
>> pattern which documents the expected syntax more clearly, and does not
>> have gaps in the checks.
>>
>> Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> v2:
>> * renamed data file to words-case.txt and added to MAINTAINERS file
>> * Updated script
>> * as of now vdpa as file prefix is giving false positive
> 
> False positive can be avoided if filtering out what is before the first colon.
> 

It can, wasn't sure to add more work/check just to cover this case.

Also it is possible to introduce additional check for 'vdpa' only, right now it
is the only case that hits the file prefix.

Do you have a preference?
  

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 1886b18c3..923b49680 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -95,6 +95,7 @@  F: devtools/check-dup-includes.sh
 F: devtools/check-maintainers.sh
 F: devtools/check-forbidden-tokens.awk
 F: devtools/check-git-log.sh
+F: devtools/words-case.txt
 F: devtools/check-includes.sh
 F: devtools/check-symbol-maps.sh
 F: devtools/checkpatches.sh
diff --git a/devtools/check-git-log.sh b/devtools/check-git-log.sh
index f9d055039..2ee5eefd7 100755
--- a/devtools/check-git-log.sh
+++ b/devtools/check-git-log.sh
@@ -83,57 +83,18 @@  bad=$(echo "$headlines" | grep --color=always \
 	| sed 's,^,\t,')
 [ -z "$bad" ] || printf "Wrong headline uppercase:\n$bad\n"
 
-# check headline uppercase (Rx/Tx, VF, L2, MAC, Linux, ARM...)
-bad=$(echo "$headlines" | grep -E --color=always \
-	-e ':.*\<(rx|tx|RX|TX)\>' \
-	-e ':.*\<[pv]f\>' \
-	-e ':.*\<[hsf]w\>' \
-	-e ':.*\<l[234]\>' \
-	-e ':.*\<api\>' \
-	-e ':.*\<ARM\>' \
-	-e ':.*\<(Aarch64|AArch64|AARCH64|Aarch32|AArch32|AARCH32)\>' \
-	-e ':.*\<(Armv7|ARMv7|ArmV7|armV7|ARMV7)\>' \
-	-e ':.*\<(Armv8|ARMv8|ArmV8|armV8|ARMV8)\>' \
-	-e ':.*\<crc\>' \
-	-e ':.*\<dcb\>' \
-	-e ':.*\<dma\>' \
-	-e ':.*\<eeprom\>' \
-	-e ':.*\<freebsd\>' \
-	-e ':.*\<iova\>' \
-	-e ':.*\<lacp\>' \
-	-e ':.*\<linux\>' \
-	-e ':.*\<lro\>' \
-	-e ':.*\<lsc\>' \
-	-e ':.*\<mac\>' \
-	-e ':.*\<mss\>' \
-	-e ':.*\<mtu\>' \
-	-e ':.*\<nic\>' \
-	-e ':.*\<nvm\>' \
-	-e ':.*\<numa\>' \
-	-e ':.*\<pci\>' \
-	-e ':.*\<phy\>' \
-	-e ':.*\<pmd\>' \
-	-e ':.*\<reta\>' \
-	-e ':.*\<rss\>' \
-	-e ':.*\<sctp\>' \
-	-e ':.*\<tos\>' \
-	-e ':.*\<tpid\>' \
-	-e ':.*\<tso\>' \
-	-e ':.*\<ttl\>' \
-	-e ':.*\<udp\>' \
-	-e ':.*\<[Vv]lan\>' \
-	-e ':.*\<vdpa\>' \
-	-e ':.*\<vsi\>' \
-	| grep \
-	-v ':.*\<OCTEON\ TX\>' \
-	| sed 's,^,\t,')
-[ -z "$bad" ] || printf "Wrong headline lowercase:\n$bad\n"
-
-# special case check for VMDq to give good error message
-bad=$(echo "$headlines" | grep -E --color=always \
-	-e '\<(vmdq|VMDQ)\>' \
-	| sed 's,^,\t,')
-[ -z "$bad" ] || printf "Wrong headline capitalization, use 'VMDq':\n$bad\n"
+# check headline case (Rx/Tx, VF, L2, MAC, Linux ...)
+words="$selfdir/words-case.txt"
+for word in $(cat $words); do
+	bad=$(echo "$headlines" | grep -iw $word | grep -v $word)
+	if [ "$word" = "Tx" ]; then
+		bad=$(echo $bad | grep -v 'OCTEON\ TX')
+	fi
+	if [ -n "$bad" ]; then
+		bad_word=$(echo $bad | grep -io $word)
+		printf "Wrong headline case:\n\"$bad\": $bad_word --> $word\n"
+	fi
+done
 
 # check headline length (60 max)
 bad=$(echo "$headlines" |
diff --git a/devtools/words-case.txt b/devtools/words-case.txt
new file mode 100644
index 000000000..5d5490577
--- /dev/null
+++ b/devtools/words-case.txt
@@ -0,0 +1,48 @@ 
+OCTEON_TX
+aarch32
+aarch64
+API
+Arm
+armv7
+armv8
+CRC
+DCB
+DMA
+EEPROM
+FreeBSD
+FW
+HW
+IOVA
+L2
+L3
+L4
+LACP
+Linux
+LRO
+LSC
+MAC
+MSS
+MTU
+NIC
+NUMA
+NVM
+PCI
+PF
+PHY
+PMD
+RETA
+RSS
+Rx
+SCTP
+SW
+TOS
+TPID
+TSO
+TTL
+Tx
+UDP
+vDPA
+VF
+VLAN
+VMDq
+VSI