Module: tools Branch: master Commit: e18f0667f9a7507e9315c0a54d907ae851448cb0 URL: https://source.winehq.org/git/tools.git/?a=commit;h=e18f0667f9a7507e9315c0a5...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Apr 26 22:07:38 2022 +0200
patches: Add "merge request" patch status.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
patches/expire | 7 +++++++ patches/patches.css | 1 + patches/update | 12 ++++++++++++ 3 files changed, 20 insertions(+)
diff --git a/patches/expire b/patches/expire index 53e3f27..4f506a0 100755 --- a/patches/expire +++ b/patches/expire @@ -33,6 +33,7 @@ my %status_expiry = "authorship" => 7, "formatting" => 7, "other" => 7, + "mergereq" => 3, "nopatch" => 3, "reply" => 1, "rejected" => 7, @@ -50,6 +51,7 @@ my %status_descr = "assigned" => "Assigned", "applied" => "Applied", "committed" => "Committed", + "mergereq" => "Merge request", "applyfail" => "Apply failure", "buildfail" => "Build failure", "deferred" => "Deferred", @@ -133,6 +135,7 @@ the patch is correct.", # No notifications are sent for the following: # "nil" # "reply" +# "mergereq" # "superseded" # "testfail" ); @@ -199,6 +202,10 @@ sub get_patch_state($) $patch{mtime} = (stat STATUS)[9] unless $patch{status} eq "nil"; close STATUS; } + elsif (defined $patch{msgid} && $patch{msgid} =~ /<wine-wine-mr\d+-v\d+.*@gitlab-mail-bridge>/) + { + $patch{status} = "mergereq"; + } $patch{file} = $file; $patch{status} ||= "nil"; $patch{mtime} ||= (stat "$dir/$file")[9]; diff --git a/patches/patches.css b/patches/patches.css index f2240d9..cc8e908 100644 --- a/patches/patches.css +++ b/patches/patches.css @@ -147,6 +147,7 @@ tr.odd { background-color: #f8e8e8; } .deferred, .deferred :link, .deferred :visited { color: #e08000; } .testcase, .testcase :link, .testcase :visited { color: #e08000; } .reply, .reply :link, .reply :visited { color: #e08000; } +.mergereq, .mergereq :link, .mergereq :visited { color: #e08000; } .other, .other :link, .other :visited { color: #e08000; } .applyfail, .applyfail :link, .applyfail :visited { color: red; } .buildfail, .buildfail :link, .buildfail :visited { color: red; } diff --git a/patches/update b/patches/update index e45bad9..5d20f2a 100755 --- a/patches/update +++ b/patches/update @@ -27,6 +27,7 @@ my %status_descr = "assigned" => "Assigned", "applied" => "Applied", "committed" => "Committed", + "mergereq" => "Merge request", "applyfail" => "Apply failure", "buildfail" => "Build failure", "deferred" => "Deferred", @@ -56,6 +57,7 @@ my @legend = "<li>Someone else fixed the problem already.</li></ul>" ], [ "testcase", "<ul><li>You need to write some test cases demonstrating that the patch is correct.</li></ul>" ], [ "deferred", "<ul><li>The patch is deferred because of code freeze for an upcoming release. Either resend after the release, make the patch less intrusive, or make a convincing argument that it needs to be included in the release.</li></ul>" ], + [ "mergereq", "<ul><li>The patch was submitted through a Gitlab merge request. The actual status of the patch can be viewed on Gitlab.</li></ul>" ], [ "other", "<ul><li>The patch belongs to another WineHQ project (website, appdb, etc.) and will be applied by the respective maintainer.</li></ul>" ], [ "applyfail", "<ul><li>The patch got mangled in transit.</li>" . "<li>It's not relative to the latest git.</li>" . @@ -84,6 +86,7 @@ my @legend =
my $dir = $ARGV[0] || "$ENV{HOME}/patches"; my $dest = "/home/winehq/opt/source/patches"; +my $gitlab = "https://gitlab.winehq.org/wine/wine"; my %patches; my %messages; my %subdirs; @@ -216,6 +219,11 @@ foreach my $file (readdir DIR) if (defined $patch{"msgid"}) { $messages{$patch{"msgid"}} = %patch; + if ($patch{msgid} =~ /<wine-wine-mr(\d+)-v\d+.*@gitlab-mail-bridge>/) + { + $patch{mr} = "$gitlab/-/merge_requests/$1"; + $patch{status} = "mergereq" if $patch{status} eq "nil"; + } } $patches{$file} = %patch; if ($file =~ /^([0-9]+)[0-9]{4}$/) { $subdirs{$1} = 1; } @@ -277,6 +285,10 @@ foreach my $file (sort { $patches{$b}->{"order"} <=> $patches{$a}->{"order"} } k { printf INDEX "<td class="status"><a href="%s">%s</a></td>", $patch->{commit}, $status_descr{$patch->{status}}; } + elsif (defined($patch->{mr})) + { + printf INDEX "<td class="status"><a href="%s">%s</a></td>", $patch->{mr}, $status_descr{$patch->{status}}; + } else { printf INDEX "<td class="status"><a href="#legend">%s</a></td>", $status_descr{$patch->{status}} || $patch->{status};