Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28947

Improve pylinters.py error message when finding linters

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 3.5.7
    • None
    • None
    • None
    • Fully Compatible
    • ALL
    • Platforms 2017-05-08

    Description

      Debian and Ubuntu machines use an custom layout for python packages. For instance, pip installed modules are installed into /usr/local/ instead of /usr, and into a directory named dist-packages instead of the normal site-packages directory.

      This first change means that the default search logic in pylinters.py cannot find the lint scripts in the default directory. This causes messages to be printed to standard error since the first location check for a linter fails even if the second one succeeds. The second check, based on PATH, succeeds since Debian/Ubuntu includes /usr/local/bin in PATH by default.

      Example of the confusing messages

      /usr/bin/python2.7: can't open file '/usr/bin/yapf': [Errno 2] No such file or directory
      /usr/bin/python2.7: can't open file '/usr/bin/pylint': [Errno 2] No such file or directory
      

      To improve the user experience, standard error should be captured, and only outputted on failure.

      Attachments

        Activity

          People

            mark.benvenuto@mongodb.com Mark Benvenuto
            mark.benvenuto@mongodb.com Mark Benvenuto
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: