• 
      

    Add a LocalSite-enabled feature checker

    Review Request #8472 — Created Oct. 17, 2016 and submitted

    Information

    Review Board
    release-3.0.x
    499d182...

    Reviewers

    The LocalSiteFeatureChecker allows features to be enabled or disabled
    at the LocalSite level. Features not configured on a LocalSite will
    fall back to the global configuration (first site configuration, then
    Django settings).

    Additionally, the status update work has been reworked to provide the
    necessary information (a LocalSite or a HttpRequest) to use the new
    feature checker.

    This feature checker is now the default for Review Board.

    Ran unit tests.

    Description From Last Updated

    Col: 1 W391 blank line at end of file

    reviewbotreviewbot

    Col: 76 W291 trailing whitespace

    reviewbotreviewbot

    Col: 1 W391 blank line at end of file

    reviewbotreviewbot

    'django_reset' imported but unused

    reviewbotreviewbot

    'from settings_local import *' used; unable to detect undefined names

    reviewbotreviewbot

    "feature"

    chipx86chipx86

    Let's call this RBFeatureChecker. The reason being that this isn't specific to local sites. This should also check features specific …

    chipx86chipx86

    "Feature checker"

    chipx86chipx86

    Too many "setting"s.

    chipx86chipx86

    reviewboard.site.models (not "sites").

    chipx86chipx86

    **kwargs

    chipx86chipx86

    Can you move this into the try? That way it will do the right thing if self.EXTRA_DATA_KEY doesn't exist in …

    daviddavid

    Although the __init__ method doesn't do anything too offensive, we should still gate it off like it was before.

    daviddavid

    'django_reset' imported but unused

    reviewbotreviewbot

    'from settings_local import *' used; unable to detect undefined names

    reviewbotreviewbot

    'django_reset' imported but unused

    reviewbotreviewbot

    'from settings_local import *' used; unable to detect undefined names

    reviewbotreviewbot

    'django_reset' imported but unused

    reviewbotreviewbot

    'from settings_local import *' used; unable to detect undefined names

    reviewbotreviewbot
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/features/checkers.py
          reviewboard/reviews/views.py
          reviewboard/reviews/detail.py
          reviewboard/features/tests.py
          reviewboard/settings.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/features/checkers.py
          reviewboard/reviews/views.py
          reviewboard/reviews/detail.py
          reviewboard/features/tests.py
          reviewboard/settings.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
    2. reviewboard/features/checkers.py (Diff revision 1)
       
       
      Show all issues
      Col: 1
       W391 blank line at end of file
      
    3. reviewboard/features/tests.py (Diff revision 1)
       
       
      Show all issues
      Col: 76
       W291 trailing whitespace
      
    4. reviewboard/features/tests.py (Diff revision 1)
       
       
      Show all issues
      Col: 1
       W391 blank line at end of file
      
    5. reviewboard/settings.py (Diff revision 1)
       
       
      Show all issues
       'django_reset' imported but unused
      
    6. reviewboard/settings.py (Diff revision 1)
       
       
      Show all issues
       'from settings_local import *' used; unable to detect undefined names
      
    7. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
    2. reviewboard/settings.py (Diff revision 2)
       
       
      Show all issues
       'django_reset' imported but unused
      
    3. reviewboard/settings.py (Diff revision 2)
       
       
      Show all issues
       'from settings_local import *' used; unable to detect undefined names
      
    4. 
        
    david
    1. 
        
    2. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      Can you move this into the try? That way it will do the right thing if self.EXTRA_DATA_KEY doesn't exist in local_site.extra_data.

    3. reviewboard/reviews/detail.py (Diff revision 2)
       
       
      Show all issues

      Although the __init__ method doesn't do anything too offensive, we should still gate it off like it was before.

    4. 
        
    chipx86
    1. 
        
    2. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      "feature"

    3. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      Let's call this RBFeatureChecker. The reason being that this isn't specific to local sites.

      This should also check features specific to the user (probably based on Profile.settings['enabled_features']).

      Docs will need to be updated accordingly.

    4. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      "Feature checker"

    5. reviewboard/features/checkers.py (Diff revision 2)
       
       
       
      Show all issues

      Too many "setting"s.

    6. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      reviewboard.site.models (not "sites").

    7. reviewboard/features/checkers.py (Diff revision 2)
       
       
      Show all issues

      **kwargs

    8. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
    2. reviewboard/settings.py (Diff revision 3)
       
       
      Show all issues
       'django_reset' imported but unused
      
    3. reviewboard/settings.py (Diff revision 3)
       
       
      Show all issues
       'from settings_local import *' used; unable to detect undefined names
      
    4. 
        
    brennie
    reviewbot
    1. Tool: Pyflakes
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
      
      Tool: PEP8 Style Checker
      Processed Files:
          reviewboard/reviews/views.py
          reviewboard/settings.py
          reviewboard/features/checkers.py
          reviewboard/reviews/detail.py
          reviewboard/site/models.py
          reviewboard/site/evolutions/__init__.py
          reviewboard/site/evolutions/localsite_extra_data.py
          reviewboard/features/tests.py
      
      Ignored Files:
          reviewboard/features/__init__.py
      
      
    2. reviewboard/settings.py (Diff revision 4)
       
       
      Show all issues
       'django_reset' imported but unused
      
    3. reviewboard/settings.py (Diff revision 4)
       
       
      Show all issues
       'from settings_local import *' used; unable to detect undefined names
      
    4. 
        
    david
    1. Ship It!
    2. 
        
    brennie
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-3.0.x (7e9928b)