Add a warning if installing on an end-of-life distro.

Review Request #14869 — Created March 4, 2026 and updated

Information

rbinstall
master

Reviewers

Our installer still supports a variety of Linux distributions which are
end of life, no longer receiving updates. I wanted to remove that
support, but Christian argued that we shouldn't, so here's the new
approach: printing a big ol' warning.

  • Ran unit tests.
  • Did a few install tests to spot check that the choice whether to show
    the warning was correct, and that it appeared visually nice.
Summary ID
Add a warning if installing on an end-of-life distro.
Our installer still supports a variety of Linux distributions which are end of life, no longer receiving updates. I wanted to remove that support, but Christian argued that we shouldn't, so here's the new approach: printing a big ol' warning. Testing Done: - Ran unit tests. - Did a few install tests to spot check that the choice whether to show the warning was correct, and that it appeared visually nice.
mlumtrtwrytmvspmtltlwrpoysklrmtx
Description From Last Updated

Since these aren't elifs, we should have a blank line between them. Or they could be elifs. That said, I …

chipx86chipx86

We never use this format anywhere else.

chipx86chipx86

This should go last in the class. Public before private.

chipx86chipx86

This is missing "Args".

chipx86chipx86

Maybe we could show the distro name and version so it's clear what we think we've seen, and to give …

chipx86chipx86

"Linux"

chipx86chipx86

"Linux"

chipx86chipx86

This can move to a global import.

chipx86chipx86
david
chipx86
  1. 
      
  2. rbinstall/state.py (Diff revision 2)
     
     
     
     
     
     
     
     
     
     
     
    Show all issues

    Since these aren't elifs, we should have a blank line between them. Or they could be elifs.

    That said, I don't love keeping EOL logic embedded in code here. I'd much rather we have a table that can provide this information in distro_info.py.

    I know the Ubuntu logic is doing math to try to infer a LTS release, and that's valid with their versioning constraints, but I think for support purposes that we should be explicit. Something like:

    DISTRO_SUPPORT = {
        'amzn': {
            'name': 'Amazon Linux',
            'is_supported': match_version(2, op=operator.gte),
            'is_lts': ...,
        },
        ...
    }
    

    Something along those lines.

    One of the things I want to think about with this sort of notice is what we do when (not if) we miss EOL dates and fall behind. For distros where there are scheduled support timeframes, an option may be to include a field mapping versions to EOL dates, and if present, we could prioritize that and include the date. Mostly just a food for thought at this point, but we have to include the fall-behind factor.

  3. rbinstall/state.py (Diff revision 2)
     
     
    Show all issues

    We never use this format anywhere else.

  4. rbinstall/tests/test_state.py (Diff revision 2)
     
     
     
     
     
     
    Show all issues

    This should go last in the class. Public before private.

  5. rbinstall/ui.py (Diff revision 2)
     
     
     
     
     
     
     
    Show all issues

    This is missing "Args".

  6. rbinstall/wizard.py (Diff revision 2)
     
     
    Show all issues

    Maybe we could show the distro name and version so it's clear what we think we've seen, and to give them that information.

    1. This gets printed just below the info table, which has that in it:

      ????????????????????????????????????????????????????????????????????????????????
       Welcome to the Review Board installer!
      ????????????????????????????????????????????????????????????????????????????????
      
      We'll walk you through installing Review Board on your system. You'll be asked
      some questions about your install, and then we'll take care of installing Review
      Board for you.
      
      If you need to exit the installer, press Control-C at any time. If you need
      help, contact support@beanbaginc.com.
      
      First, let's confirm some details about your system:
      
          Linux distribution:  Amazon Linux 2 (aarch64)
           Package installer:  yum
                      Python:  3.8.20 (/usr/bin/python3.8) 
                Review Board:  7.0.4 (latest)
                  Power Pack:  5.3 (latest)
           Review Bot worker:  4.0 (latest)
        Review Bot extension:  4.0 (latest)
      
      ?  WARNING: Your Linux distribution has reached end-of-life and is no longer
                  receiving updates. Review Board may not work correctly on
                  unsupported distributions. We recommend upgrading to a supported
                  distribution.
      
      
      NOTE: The version of Python is important! If you need Review Board to use a
            different version of Python, you will need to re-run this installer using
            that version.
      
      Does this look correct? [y/n] (y):
      
    2. Yeah that's true. Fair enough.

  7. 
      
david
david
david
david
chipx86
  1. This is looking really good. Three tiny cleanups.

  2. rbinstall/distro_info.py (Diff revision 6)
     
     
    Show all issues

    "Linux"

  3. rbinstall/distro_info.py (Diff revision 6)
     
     
    Show all issues

    "Linux"

  4. rbinstall/state.py (Diff revision 6)
     
     
    Show all issues

    This can move to a global import.

  5. 
      
david
Review request changed
Commits:
Summary ID
Add a warning if installing on an end-of-life distro.
Our installer still supports a variety of Linux distributions which are end of life, no longer receiving updates. I wanted to remove that support, but Christian argued that we shouldn't, so here's the new approach: printing a big ol' warning. Testing Done: - Ran unit tests. - Did a few install tests to spot check that the choice whether to show the warning was correct, and that it appeared visually nice.
mlumtrtwrytmvspmtltlwrpoysklrmtx
Add a warning if installing on an end-of-life distro.
Our installer still supports a variety of Linux distributions which are end of life, no longer receiving updates. I wanted to remove that support, but Christian argued that we shouldn't, so here's the new approach: printing a big ol' warning. Testing Done: - Ran unit tests. - Did a few install tests to spot check that the choice whether to show the warning was correct, and that it appeared visually nice.
mlumtrtwrytmvspmtltlwrpoysklrmtx

Checks run (2 succeeded)

flake8 passed.
JSHint passed.