Adding helpful hints for rbt commands

Review Request #11405 — Created Jan. 24, 2021 and updated

amohapatra
RBTools
master
rbtools, students

RBTools currently must scan the filesystem when a user does not specify a
repository name or repository type which is very slow. In order to optimize
RBTools, we will log hints that recommends setting repository name or type
when it has not been specified. An option --no-hints is added so
users can disable hints if desired.

I ran ./tests/runtests.py rbtools/ and have 263 tests passing and have done
manual testing on different rbtools commands to ensure that the --no-hints
option is working and is also presented as an option to the user when they
type rbt [command] --help.

Summary Author
reverting .reviewboardrc change
anahita-m
Description From Last Updated

Looks like .reviewboardrc is part of your change, but it shouldn't be. Can you revert that part of your change?

chipx86chipx86

This looks pretty good, but I have a thought. We have these hints right now, but we may want more ...

chipx86chipx86

Typo in the description: "RBTools current" -> "RBTools currently". Also in the description, "when it already has not been specified." ...

mike_conleymike_conley

E501 line too long (93 > 79 characters)

reviewbotreviewbot

E501 line too long (89 > 79 characters)

reviewbotreviewbot

E122 continuation line missing indentation or outdented

reviewbotreviewbot

E502 the backslash is redundant between brackets

reviewbotreviewbot

This should be "True" instead of "TRUE"

daviddavid

Let's say "RBTools commands may print helpful hints"

daviddavid

"be provided" suggests to me that one could specify a value. Perhaps say "Hints can also be disabled by passing ...

daviddavid

Setting the repository type and name each enable different optimizations, and for best results users should have both in their ...

daviddavid

This was already mixed up, but can we alphabetize this by key while we're editing it? That'll make it easier ...

daviddavid

Space at the end of the string after the .

ryankangryankang

These log messages don't make it entirely clear why the user should set these or what the consequences are of ...

daviddavid

E501 line too long (83 > 79 characters)

reviewbotreviewbot

This is wrapping way prematurely. The docs should have room to breathe. The lines get to go up to 79 ...

chipx86chipx86

Blank line between statements and blocks, or between two separate blocks.

chipx86chipx86

Christian's comment still applies - this .reviewboardrc file shouldn't be in here. See https://github.com/k88hudson/git-flight-rules#i-want-to-remove-a-file-from-the-previous-commit on how to clean that up.

mike_conleymike_conley

Typo: -no-hints -> --no-hints.

mike_conleymike_conley

Typo: "will speed up will speed up" -> "will speed up"

mike_conleymike_conley
Checks run (1 failed, 1 succeeded)
flake8 failed.
JSHint passed.

flake8

amohapatra
Review request changed

Commits:

Summary Author
-
[WIP] Adding helpful hints for rbt commands
anahita-m
+
[WIP] Adding helpful hints for rbt commands
anahita-m

Diff:

Revision 2 (+36 -2)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amohapatra
amohapatra
amohapatra
amohapatra
amohapatra
amohapatra
amohapatra
Review request changed

Commits:

Summary Author
-
[WIP] Adding helpful hints for rbt commands
anahita-m
+
[WIP] Adding helpful hints for rbt commands
anahita-m

Diff:

Revision 6 (+70 -2)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amohapatra
david
  1. 
      
  2. This should be "True" instead of "TRUE"

  3. Let's say "RBTools commands may print helpful hints"

  4. "be provided" suggests to me that one could specify a value. Perhaps say "Hints can also be disabled by passing ..."?

  5. rbtools/commands/__init__.py (Diff revision 7)
     
     
     

    Setting the repository type and name each enable different optimizations, and for best results users should have both in their config file. We should probably have separate hints.

    Also, FYI, when we're wrapping a conditional like this we prefer using parentheses instead of the continuation character:

    if (self.options.repository_name is None and
        self.options.repository_type is None):
    
  6. rbtools/utils/commands.py (Diff revision 7)
     
     
     
     
     
     
     
     
     
     
     
     

    This was already mixed up, but can we alphabetize this by key while we're editing it? That'll make it easier to read.

  7. 
      
amohapatra
amohapatra
ryankang
  1. 
      
  2. rbtools/commands/__init__.py (Diff revision 9)
     
     

    Space at the end of the string after the .

  3. 
      
amohapatra
amohapatra
amohapatra
david
  1. 
      
  2. rbtools/commands/__init__.py (Diff revision 11)
     
     
     
     
     
     
     

    These log messages don't make it entirely clear why the user should set these or what the consequences are of not doing so. How about something like:

    RBTools is auto-detecting the repository type, which can be slow. Adding REPOSITORY_TYPE to your .reviewboardrc will speed up rbt commands. Set ENABLE_HINTS=False to suppress this message.

    RBTools is attempting to discover the matching repository in the Review Board server. Adding REPOSITORY_NAME to your .reviewboardrc will speed up rbt commands. Set ENABLE_HINTS=False to suppress this message.

    Looking at those, I'm reconsidering my suggesting to combine them into a single message, but maybe there's a good way to word a single message without it being too excessively long.

  3. 
      
amohapatra
Review request changed

Commits:

Summary Author
-
Adding helpful hints for rbt commands
anahita-m
+
Adding helpful hints for rbt commands
anahita-m

Diff:

Revision 12 (+128 -12)

Show changes

Checks run (1 failed, 1 succeeded)

flake8 failed.
JSHint passed.

flake8

amohapatra
chipx86
  1. 
      
  2. Looks like .reviewboardrc is part of your change, but it shouldn't be. Can you revert that part of your change?

  3. This looks pretty good, but I have a thought. We have these hints right now, but we may want more in the future, and we probably don't want each hint to decide what the output looks like (e.g., the info on suppressing hints being tacked onto every string).

    How about defining a new show_hint method on the Command class that takes in a string, checks if hints are enabled, and conditionally outputs it.

    That would clean up the code using it now, and make it very easy to start adding new hints down the road.

  4. rbtools/commands/__init__.py (Diff revision 13)
     
     
     
     

    This is wrapping way prematurely. The docs should have room to breathe. The lines get to go up to 79 characters.

  5. rbtools/commands/__init__.py (Diff revision 13)
     
     
     

    Blank line between statements and blocks, or between two separate blocks.

  6. 
      
amohapatra
mike_conley
  1. Thanks, Anahita! Just a few comments below.

  2. Typo in the description: "RBTools current" -> "RBTools currently".

    Also in the description, "when it already has not been specified." is kind of awkward. Maybe this can just be "when it has not been specified".

  3. .reviewboardrc (Diff revision 14)
     
     
     
     
     
     

    Christian's comment still applies - this .reviewboardrc file shouldn't be in here. See https://github.com/k88hudson/git-flight-rules#i-want-to-remove-a-file-from-the-previous-commit on how to clean that up.

  4. docs/rbtools/rbt/configuration/users.rst (Diff revision 14)
     
     

    Typo: -no-hints -> --no-hints.

  5. rbtools/commands/__init__.py (Diff revision 14)
     
     
     

    Typo: "will speed up will speed up" -> "will speed up"

  6. 
      
amohapatra
Review request changed

Description:

~  

RBTools current must scan the filesystem when a user does not specify a

  ~

RBTools currently must scan the filesystem when a user does not specify a

    repository name or repository type which is very slow. In order to optimize
    RBTools, we will log hints that recommends setting repository name or type
~   when it already has not been specified. An option --no-hints is added so
  ~ when it has not been specified. An option --no-hints is added so
    users can disable hints if desired.

Testing Done:

   

I ran ./tests/runtests.py rbtools/ and have 263 tests passing and have done

~   manual testing on different rbtools commands to ensure that the --no-hints
  ~ manual testing on different rbtools commands to ensure that the --no-hints
    option is working and is also presented as an option to the user when they
    type rbt [command] --help.

Commits:

Summary Author
-
Adding helpful hints for rbt commands
anahita-m
-
adding a show_hint method which displays hints if they are enabled
anahita-m
-
adding a show_hint method which displays hints if they are enabled
anahita-m
+
reverting .reviewboardrc change
anahita-m

Diff:

Revision 15 (+126 -10)

Show changes

Checks run (2 succeeded)

flake8 passed.
JSHint passed.
Loading...