License management failing to parse python requirements file
Summary
GitLab recently added support for Python 3 in the license management job, I tried it in a couple projects and I can see it failing in half of the cases
Example Project
I'm able to reproduce the bug in GitLab.com, I've created a specific repository for this case.
What is the current bug behavior?
Traceback (most recent call last):
File "/usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/bin/license_finder_pip.py", line 29, in <module>
in pkg_resources.working_set.resolve(requirements)]
File "/usr/local/lib/python3.5/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 791, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pip._vendor.pkg_resources.ContextualVersionConflict: (redis 3.2.1 (/usr/local/lib/python3.5/dist-packages), Requirement.parse('redis==2.10.6'), {'django-redis-cache'})
/usr/local/rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/json/common.rb:156:in `parse': 765: unexpected token at '' (JSON::ParserError)
from /usr/local/rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/json/common.rb:156:in `parse'
from /usr/local/rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/json/common.rb:440:in `JSON'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/package_managers/pip.rb:55:in `pip_output'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/package_managers/pip.rb:14:in `current_packages'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/package_manager.rb:97:in `current_packages_with_relations'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/scanner.rb:17:in `each'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/scanner.rb:17:in `flat_map'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/scanner.rb:17:in `active_packages'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/core.rb:83:in `current_packages'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/core.rb:78:in `decision_applier'
from /usr/local/rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/forwardable.rb:223:in `acknowledged'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/license_aggregator.rb:51:in `block in aggregate_packages'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/license_aggregator.rb:49:in `each'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/license_aggregator.rb:49:in `flat_map'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/license_aggregator.rb:49:in `aggregate_packages'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/license_aggregator.rb:11:in `dependencies'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/lib/license_finder/cli/main.rb:138:in `report'
from /usr/local/rvm/gems/ruby-2.5.1/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
from /usr/local/rvm/gems/ruby-2.5.1/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
from /usr/local/rvm/gems/ruby-2.5.1/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
from /usr/local/rvm/gems/ruby-2.5.1/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
from /usr/local/rvm/gems/ruby-2.5.1/gems/license_finder-5.6.2/bin/license_finder:6:in `<top (required)>'
from /usr/local/rvm/gems/ruby-2.5.1/bin/license_finder:23:in `load'
from /usr/local/rvm/gems/ruby-2.5.1/bin/license_finder:23:in `<main>'
What is the expected correct behavior?
The license management being able to parse the requirements.txt file correctly