All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] b4: ty: Fix incorrect patch/commit association
@ 2024-03-01 10:24 Will Deacon
  2024-03-01 10:24 ` [PATCH 1/2] ty: Try subject matching for every commit before using trackers Will Deacon
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Will Deacon @ 2024-03-01 10:24 UTC (permalink / raw)
  To: tools; +Cc: Will Deacon, Konstantin Ryabitsev, Jason Gunthorpe, Nicolin Chen

From: Will Deacon <willdeacon@google.com>

Hi folks,

I recently ran into an issue where 'b4 ty' generated an incorrect list
of commit IDs in the "thank you" letter. I've had a crack at fixing it
and the details are in patch 1. Patch 2 is drive-by cleanup while I was
there.

Please have a look!

Cheers,

Will

Cc: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>
Cc: Nicolin Chen <nicolinc@nvidia.com>

Will Deacon (2):
  ty: Try subject matching for every commit before using trackers
  ty: Remove unused 'matches' variable

 src/b4/ty.py | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

-- 
2.44.0.rc1.240.g4c46232300-goog


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

* [PATCH 1/2] ty: Try subject matching for every commit before using trackers
  2024-03-01 10:24 [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
@ 2024-03-01 10:24 ` Will Deacon
  2024-03-01 10:24 ` [PATCH 2/2] ty: Remove unused 'matches' variable Will Deacon
  2024-03-01 10:34 ` [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
  2 siblings, 0 replies; 4+ messages in thread
From: Will Deacon @ 2024-03-01 10:24 UTC (permalink / raw)
  To: tools
  Cc: Will Deacon, Konstantin Ryabitsev, Jason Gunthorpe, Nicolin Chen,
	Will Deacon

From: Will Deacon <willdeacon@google.com>

Nicolin reports that 'b4 ty' produced a "thank you" letter with
incorrect commit IDs:

  https://lore.kernel.org/r/ZeDtfKMUXnOnJOic@Asurada-Nvidia

This appears to be because of the creative use of Message-Ids in the
series at:

  https://lore.kernel.org/r/0-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com

For example, comparing the Message-Id of patches 1 and 11 of that series,
we can see that one is a substring of the other:

  Message-Id: <1-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com>
  Message-Id: <11-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com>

This confuses auto_locate_series(), as it will end up matching the
Message-Id of patch 1 with the Link: tag in patch 11 and therefore get
the wrong patch/commit association.

Fix this problem by trying to match each commit based on the Subject
before falling back to the fuzzier tracker-based matching.

Reported-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Will Deacon <will@kernel.org>
---
 src/b4/ty.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/b4/ty.py b/src/b4/ty.py
index a8bdabf5bcbc..950c357a89c5 100644
--- a/src/b4/ty.py
+++ b/src/b4/ty.py
@@ -217,7 +217,13 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str,
                     success = True
                     matches += 1
                     break
-                elif len(patch) > 2 and len(patch[2]) and len(commit[2]):
+
+            if success:
+                continue
+
+            # try to locate by tracker
+            for pwhash, commit in commits.items():
+                if len(patch) > 2 and len(patch[2]) and len(commit[2]):
                     for tracker in commit[2]:
                         if tracker.find(patch[2]) >= 0:
                             logger.debug('Matched using recorded message-id')
-- 
2.44.0.rc1.240.g4c46232300-goog


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

* [PATCH 2/2] ty: Remove unused 'matches' variable
  2024-03-01 10:24 [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
  2024-03-01 10:24 ` [PATCH 1/2] ty: Try subject matching for every commit before using trackers Will Deacon
@ 2024-03-01 10:24 ` Will Deacon
  2024-03-01 10:34 ` [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
  2 siblings, 0 replies; 4+ messages in thread
From: Will Deacon @ 2024-03-01 10:24 UTC (permalink / raw)
  To: tools
  Cc: Will Deacon, Konstantin Ryabitsev, Jason Gunthorpe, Nicolin Chen,
	Will Deacon

From: Will Deacon <willdeacon@google.com>

The 'matches' variable in auto_locate_series() is updated but not used
for anything, so remove it.

Signed-off-by: Will Deacon <will@kernel.org>
---
 src/b4/ty.py | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/src/b4/ty.py b/src/b4/ty.py
index 950c357a89c5..97f4c44a0832 100644
--- a/src/b4/ty.py
+++ b/src/b4/ty.py
@@ -198,7 +198,6 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str,
     patchids = set(commits.keys())
     # We need to find all of them in the commits
     found = list()
-    matches = 0
     at = 0
     for patch in jsondata['patches']:
         at += 1
@@ -206,7 +205,6 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str,
         if patch[1] in patchids:
             logger.debug('Found: %s', patch[0])
             found.append((at, commits[patch[1]][0]))
-            matches += 1
         else:
             # try to locate by subject
             success = False
@@ -215,7 +213,6 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str,
                     logger.debug('Matched using subject')
                     found.append((at, commit[0]))
                     success = True
-                    matches += 1
                     break
 
             if success:
@@ -229,7 +226,6 @@ def auto_locate_series(gitdir: Optional[str], jsondata: dict, branch: str,
                             logger.debug('Matched using recorded message-id')
                             found.append((at, commit[0]))
                             success = True
-                            matches += 1
                             break
                 if success:
                     break
-- 
2.44.0.rc1.240.g4c46232300-goog


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

* Re: [PATCH 0/2] b4: ty: Fix incorrect patch/commit association
  2024-03-01 10:24 [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
  2024-03-01 10:24 ` [PATCH 1/2] ty: Try subject matching for every commit before using trackers Will Deacon
  2024-03-01 10:24 ` [PATCH 2/2] ty: Remove unused 'matches' variable Will Deacon
@ 2024-03-01 10:34 ` Will Deacon
  2 siblings, 0 replies; 4+ messages in thread
From: Will Deacon @ 2024-03-01 10:34 UTC (permalink / raw)
  To: tools; +Cc: Will Deacon, Konstantin Ryabitsev, Jason Gunthorpe, Nicolin Chen

On Fri, Mar 01, 2024 at 10:24:16AM +0000, Will Deacon wrote:
> From: Will Deacon <willdeacon@google.com>

Sorry, I forgot to configure my .git/config properly so it's got the
wrong author email address for these patches.

I won't resend immediately just for that, but I can send an updated v2
next week assuming these patches look like the right sort of idea.

Cheers,

Will

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

end of thread, other threads:[~2024-03-01 10:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-01 10:24 [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon
2024-03-01 10:24 ` [PATCH 1/2] ty: Try subject matching for every commit before using trackers Will Deacon
2024-03-01 10:24 ` [PATCH 2/2] ty: Remove unused 'matches' variable Will Deacon
2024-03-01 10:34 ` [PATCH 0/2] b4: ty: Fix incorrect patch/commit association Will Deacon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.