[v3] devtools: export title syntax data for check-git-log
Checks
Commit Message
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
v3:
* add check excluding file prefix to address vdpa false positive
* remove OCTEON_TX line from words-case.txt which was a mistake
---
MAINTAINERS | 1 +
devtools/check-git-log.sh | 69 +++++++++------------------------------
devtools/words-case.txt | 47 ++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 53 deletions(-)
create mode 100644 devtools/words-case.txt
Comments
24/02/2020 16:30, 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>
> ---
> +words="$selfdir/words-case.txt"
> +for word in $(cat $words); do
I think we should exclude comments in the words file.
> + bad=$(echo "$headlines" | grep -iw $word | grep -v $word)
> + if [ "$word" = "Tx" ]; then
> + bad=$(echo $bad | grep -v 'OCTEON\ TX')
> + fi
We could try to manage such false positive automatically by excluding
valid patterns while patterns list is iterated.
If OCTEON TX is before Tx in the list, no confusion is possible.
> + for bad_line in $bad; do
> + bad_word=$(echo $bad_line | cut -d":" -f2 | grep -io $word)
The cut will ignore anything after a second colon.
Should not happen but a possible minor issue.
> + if [ -n "$bad_word" ]; then
> + printf "Wrong headline case:\n\"$bad_line\": $bad_word --> $word\n"
> + fi
> + done
> +done
I think it is good enough to be merged.
We can adress above improvements in a separate patch.
Applied, thanks
@@ -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
@@ -83,57 +83,22 @@ 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 ...)
+IFS='
+'
+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
+ for bad_line in $bad; do
+ bad_word=$(echo $bad_line | cut -d":" -f2 | grep -io $word)
+ if [ -n "$bad_word" ]; then
+ printf "Wrong headline case:\n\"$bad_line\": $bad_word --> $word\n"
+ fi
+ done
+done
# check headline length (60 max)
bad=$(echo "$headlines" |
@@ -187,8 +152,6 @@ done)
[ -z "$bad" ] || printf "Missing 'Fixes' tag:\n$bad\n"
# check Fixes: reference
-IFS='
-'
fixtags=$(echo "$tags" | grep '^Fixes: ')
bad=$(for fixtag in $fixtags ; do
hash=$(echo "$fixtag" | sed 's,^Fixes: \([0-9a-f]*\).*,\1,')
new file mode 100644
@@ -0,0 +1,47 @@
+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