[3/3] docs: sphinx-static: switchers.js.in: improve obsolete version detection

Message ID 20220414113327.176534-3-foss+yocto@0leil.net
State New
Headers show
Series [1/3] docs: sphinx-static: switchers.js.in: remove duplicate for outdated versions | expand

Commit Message

Quentin Schulz April 14, 2022, 11:33 a.m. UTC
From: Quentin Schulz <quentin.schulz@theobroma-systems.com>

Based on additional information per release, specifically with the
obsolescence status of a release, the obsolescence detection can now be
much smarter than just checking if the release is older than dunfell.

This is required because with LTS (dunfell for example) releases, it is
now possible to have LTS releases that are older than obsolete releases.

This means obsolete releases need to be tracked and only the release
version cannot be used as an indicator of obsolescence.

Let's use the obsolete field of the per-release data in the all_versions
dictionary to display correct warning messages.

The warning message is first about outdated version if there's a newer
one available (*even* if it is for an obsolete release, e.g. 3.0.1 will
say it's outdated and should select 3.0.4 version instead), then if the
version is the last of the release, show a warning message if the
release is obsolete.

Cc: Quentin Schulz <foss+yocto@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
---
 documentation/sphinx-static/switchers.js.in | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

Comments

Michael Opdenacker April 15, 2022, 1:37 p.m. UTC | #1
Hi Quentin,

On 4/14/22 13:33, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz@theobroma-systems.com>
>
> Based on additional information per release, specifically with the
> obsolescence status of a release, the obsolescence detection can now be
> much smarter than just checking if the release is older than dunfell.
>
> This is required because with LTS (dunfell for example) releases, it is
> now possible to have LTS releases that are older than obsolete releases.
>
> This means obsolete releases need to be tracked and only the release
> version cannot be used as an indicator of obsolescence.
>
> Let's use the obsolete field of the per-release data in the all_versions
> dictionary to display correct warning messages.
>
> The warning message is first about outdated version if there's a newer
> one available (*even* if it is for an obsolete release, e.g. 3.0.1 will
> say it's outdated and should select 3.0.4 version instead), then if the
> version is the last of the release, show a warning message if the
> release is obsolete.
>
> Cc: Quentin Schulz <foss+yocto@0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> ---
>  documentation/sphinx-static/switchers.js.in | 19 ++++++++++++-------
>  1 file changed, 12 insertions(+), 7 deletions(-)


Thanks for the whole patch series.
The changes seem to make sense.
I merged them into master-next.

Thanks again
Michael.

Patch

diff --git a/documentation/sphinx-static/switchers.js.in b/documentation/sphinx-static/switchers.js.in
index 5ae0325e6..408e23a71 100644
--- a/documentation/sphinx-static/switchers.js.in
+++ b/documentation/sphinx-static/switchers.js.in
@@ -219,15 +219,20 @@  by https://git.yoctoproject.org/yocto-autobuilder-helper/tree/scripts/run-docs-b
     $('.doctype_switcher_placeholder').html(doctype_select);
     $('.doctype_switcher_placeholder select').bind('change', on_doctype_switch);
 
-    if (ver_compare(release, "3.1") < 0) {
-      $('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
-      $('#outdated-warning').css('padding', '.5em');
-    } else if (release != "dev") {
+    if (release != "dev") {
       $.each(all_versions, function(version, vers_data) {
         var series = version.substr(0, 3);
-        if (series == current_series && version != release) {
-          $('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
-          $('#outdated-warning').css('padding', '.5em');
+        if (series == current_series) {
+          if (version != release) {
+            $('#outdated-warning').html('This document is for outdated version ' + release + ', you should select the latest release version in this series, ' + version + '.');
+            $('#outdated-warning').css('padding', '.5em');
+            return false;
+          }
+          if (vers_data["obsolete"]) {
+            $('#outdated-warning').html('Version ' + release + ' of the project is now considered obsolete, please select and use a more recent version');
+            $('#outdated-warning').css('padding', '.5em');
+            return false;
+          }
         }
       });
     }