llvm_tools: add commit subjects to revert emails
I got a piece of feedback that adding subjects inline would likely make
revert emails easier to read 'at a glance'. This CL adds those.
New email revert lines will look like:
- r385979 (appears to revert r383879): Revert "[NFC][ARM] Update test"
BUG=None
TEST=unittests; looked at a --dry_run email
Change-Id: I5fb5ea12fa1d4a6b2601fbd5c244935662dc4270
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2174823
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Tested-by: George Burgess <gbiv@chromium.org>
diff --git a/llvm_tools/nightly_revert_checker.py b/llvm_tools/nightly_revert_checker.py
index 5b3e04d..2a41f8c 100755
--- a/llvm_tools/nightly_revert_checker.py
+++ b/llvm_tools/nightly_revert_checker.py
@@ -109,6 +109,7 @@
def _generate_revert_email(
repository_name: str, friendly_name: str, sha: str,
prettify_sha: t.Callable[[str], tiny_render.Piece],
+ get_sha_description: t.Callable[[str], tiny_render.Piece],
new_reverts: t.List[revert_checker.Revert]) -> _Email:
email_pieces = [
'It looks like there may be %s across %s (' % (
@@ -128,7 +129,8 @@
prettify_sha(revert.sha),
' (appears to revert ',
prettify_sha(revert.reverted_sha),
- ')',
+ '): ',
+ get_sha_description(revert.sha),
])
email_pieces.append(tiny_render.UnorderedList(items=revert_listing))
@@ -254,6 +256,13 @@
href='https://reviews.llvm.org/rG' + sha, inner='r' + str(rev)),
)
+ def get_sha_description(sha: str) -> tiny_render.Piece:
+ return subprocess.check_output(
+ ['git', 'log', '-n1', '--format=%s', sha],
+ cwd=llvm_dir,
+ encoding='utf-8',
+ ).strip()
+
new_state: State = {}
revert_emails_to_send: t.List[t.Tuple[str, t.List[revert_checker
.Revert]]] = []
@@ -279,7 +288,7 @@
revert_emails_to_send.append(
_generate_revert_email(repository, friendly_name, sha, prettify_sha,
- new_reverts))
+ get_sha_description, new_reverts))
# We want to be as free of obvious side-effects as possible in case something
# above breaks. Hence, send the email as late as possible.
diff --git a/llvm_tools/nightly_revert_checker_test.py b/llvm_tools/nightly_revert_checker_test.py
index 2841e2e..68338a5 100755
--- a/llvm_tools/nightly_revert_checker_test.py
+++ b/llvm_tools/nightly_revert_checker_test.py
@@ -26,11 +26,15 @@
def prettify_sha(sha: str) -> tiny_render.Piece:
return 'pretty_' + sha
+ def get_sha_description(sha: str) -> tiny_render.Piece:
+ return 'subject_' + sha
+
email = nightly_revert_checker._generate_revert_email(
repository_name='${repo}',
friendly_name='${name}',
sha='${sha}',
prettify_sha=prettify_sha,
+ get_sha_description=get_sha_description,
new_reverts=[
revert_checker.Revert(
sha='${revert_sha}', reverted_sha='${reverted_sha}')
@@ -49,7 +53,8 @@
'pretty_${revert_sha}',
' (appears to revert ',
'pretty_${reverted_sha}',
- ')',
+ '): ',
+ 'subject_${revert_sha}',
]]),
tiny_render.line_break,
'PTAL and consider reverting them locally.',
@@ -62,11 +67,15 @@
def prettify_sha(sha: str) -> tiny_render.Piece:
return 'pretty_' + sha
+ def get_sha_description(sha: str) -> tiny_render.Piece:
+ return 'subject_' + sha
+
email = nightly_revert_checker._generate_revert_email(
repository_name='${repo}',
friendly_name='${name}',
sha='${sha}',
prettify_sha=prettify_sha,
+ get_sha_description=get_sha_description,
new_reverts=[
revert_checker.Revert(
sha='${revert_sha1}', reverted_sha='${reverted_sha1}'),
@@ -92,19 +101,22 @@
'pretty_${revert_sha0}',
' (appears to revert ',
'pretty_${reverted_sha0}',
- ')',
+ '): ',
+ 'subject_${revert_sha0}',
],
[
'pretty_${revert_sha1}',
' (appears to revert ',
'pretty_${reverted_sha1}',
- ')',
+ '): ',
+ 'subject_${revert_sha1}',
],
[
'pretty_${revert_sha2}',
' (appears to revert ',
'pretty_${reverted_sha2}',
- ')',
+ '): ',
+ 'subject_${revert_sha2}',
],
]),
tiny_render.line_break,