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)