mozilla/dxr

"python setup.py install" results in "error: click 4.1 is installed but click>=5.1 is required by set(['Flask'])"

Closed this issue · 4 comments

This is unexpected because requirements.txt has hashes, but here is the log:
https://gist.githubusercontent.com/mbautin/07c4a7f1234b51a7dd97357ae03b6df4/raw

I am running the installer in a new virtualenv.

Sorry to say it, but DXR is no longer supported. It never was a fully installable Python package because it has so many dependencies on things like custom clang plugins. I recommend installing it with --no-deps and installing the deps from the requirements file. There's more at https://dxr.readthedocs.io/en/latest/getting-started.html. Good luck!

@erikrose: it is surprising to hear that "DXR is no longer supported", because it seems to be one of the most advanced tools of its kind, especially for C++. I don't see the custom Clang plugin as a huge deal. I think using a Clang plugin during the build is actually the best way to reliably parse C++ (in contrast to e.g. CLion, which seems to implement its own Java-based C++ parser). Also to quote from sourcegraph/sourcegraph#10 (comment), DXR seems to be more advanced at its C++ code indexing capabilities than Sourcegraph, a commercial code browsing tool.

DXR appears much more advanced, using output from an instrumented C compiler. Except for indexed text search, Sourcegraph does not build an index up front. Many of the programming language Sourcegraph extensions use ctags + search on the fly. Go, TypeScript, and Python each have language server modes for more precise code intelligence.

So, if we would still want to use DXR, would you suggest creating a fork under our own organization on GitHub and making our changes there, our would you still accept pull requests here?

Regarding this actual bug, I have also found out that it is possible to install dependencies from requirements.txt directly, and after that python setup.py install worked fine.

it is surprising to hear that "DXR is no longer supported", because it seems to be one of the most advanced tools of its kind, especially for C++.

I agree, I certainly don't know of anything more capable, at least in the open-source space. But its maintenance hasn't been a priority for years now, and the latest set of Firefox changes means it no longer builds properly under DXR.

I think using a Clang plugin during the build is actually the best way to reliably parse C++

Absolutely. C++ is such a nightmare of complexity, it is folly to implement one's own parser.

So, if we would still want to use DXR, would you suggest creating a fork under our own organization on GitHub and making our changes there, our would you still accept pull requests here?

@abbeyj is the main person (and he's outside Mozilla) still working on the project. Abbeyj, how do you feel about taking on the review load for other contributions? @mbautin, what changes do you forsee, for starters?

I could probably find time to review some contributions. If they are huge changes that's going to be a bit more difficult but I'll do my best. What kind of things are you looking at doing?