]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1852154: Warn admin if end-of-support date is approaching (#192)
authorDave Miller <justdave@bugzilla.org>
Mon, 26 Aug 2024 01:24:30 +0000 (21:24 -0400)
committerGitHub <noreply@github.com>
Mon, 26 Aug 2024 01:24:30 +0000 (21:24 -0400)
a=dylan

Bugzilla/Update.pm
template/en/default/index.html.tmpl

index 516de43e8b7aaa96f3a032a5c54a46563da17f9a..239a2fd929319eaf1568f4d671de7d983276d1a5 100644 (file)
@@ -52,7 +52,8 @@ sub get_notifications {
       'latest_ver' => $branch->{'att'}->{'vid'},
       'status'     => $branch->{'att'}->{'status'},
       'url'        => $branch->{'att'}->{'url'},
-      'date'       => $branch->{'att'}->{'date'}
+      'date'       => $branch->{'att'}->{'date'},
+      'eos_date'   => exists($branch->{'att'}->{'eos-date'}) ? $branch->{'att'}->{'eos-date'} : undef,
     };
     push(@releases, $release);
   }
@@ -72,6 +73,35 @@ sub get_notifications {
     }
   }
   elsif (Bugzilla->params->{'upgrade_notification'} eq 'latest_stable_release') {
+    # We want the latest stable version for the current branch.
+    # If we are running a development snapshot, we won't match anything.
+    my $branch_version = $current_version[0] . '.' . $current_version[1];
+
+    # We do a string comparison instead of a numerical one, because
+    # e.g. 2.2 == 2.20, but 2.2 ne 2.20 (and 2.2 is indeed much older).
+    @release = grep { $_->{'branch_ver'} eq $branch_version } @releases;
+
+    # If the branch has an end-of-support date listed, we should
+    # strongly suggest to upgrade to the latest stable release
+    # available.
+    if (scalar(@release) && $release[0]->{'status'} ne 'closed'
+      && defined($release[0]->{'eos_date'})) {
+      my $eos_date = $release[0]->{'eos_date'};
+      @release = grep {$_->{'status'} eq 'stable'} @releases;
+      return {'data' => $release[0],
+              'branch_version' => $branch_version,
+              'eos_date' => $eos_date}
+    };
+
+    # If the branch is now closed, we should strongly suggest
+    # to upgrade to the latest stable release available.
+    if (scalar(@release) && $release[0]->{'status'} eq 'closed') {
+      @release = grep { $_->{'status'} eq 'stable' } @releases;
+      return {'data' => $release[0], 'deprecated' => $branch_version};
+    }
+
+    # If we get here, then we want to recommend the lastest stable
+    # release without any other messages.
     @release = grep { $_->{'status'} eq 'stable' } @releases;
   }
   elsif (Bugzilla->params->{'upgrade_notification'} eq 'stable_branch_release') {
@@ -84,6 +114,18 @@ sub get_notifications {
     # e.g. 2.2 == 2.20, but 2.2 ne 2.20 (and 2.2 is indeed much older).
     @release = grep { $_->{'branch_ver'} eq $branch_version } @releases;
 
+    # If the branch has an end-of-support date listed, we should
+    # strongly suggest to upgrade to the latest stable release
+    # available.
+    if (scalar(@release) && $release[0]->{'status'} ne 'closed'
+      && defined($release[0]->{'eos_date'})) {
+      my $eos_date = $release[0]->{'eos_date'};
+      @release = grep {$_->{'status'} eq 'stable'} @releases;
+      return {'data' => $release[0],
+              'branch_version' => $branch_version,
+              'eos_date' => $eos_date}
+    };
+
     # If the branch is now closed, we should strongly suggest
     # to upgrade to the latest stable release available.
     if (scalar(@release) && $release[0]->{'status'} eq 'closed') {
index e982f2e1c68c3749d58fbaa170623f15a4340b6a..96afb92f6a9646fbcf016bbd19c55d82b6d5beeb 100644 (file)
 [% IF release %]
   <div id="new_release">
     [% IF release.data %]
+      [% IF release.eos_date %]
+        <p>[% terms.Bugzilla %] [%+ release.branch_version FILTER html %] will
+        no longer receive security updates after [% release.eos_date FILTER html %].
+        You are highly encouraged to upgrade in order to keep your
+        system secure.</p>
+      [% END %]
       [% IF release.deprecated %]
         <p>Bugzilla [%+ release.deprecated FILTER html %] is no longer
         supported. You are highly encouraged to upgrade in order to keep your