graphite-project / graphite-web

A highly scalable real-time graphing system
http://graphite.readthedocs.org/
Apache License 2.0
5.89k stars 1.26k forks source link

[BUG] graphite-web 1.1.8+ dependency on pyparsing misses version requirement #2834

Open timmooney opened 5 months ago

timmooney commented 5 months ago

I'm attempting to update a working install of whisper/carbon/graphite-web from 1.1.5 to current latest. Once I'm on a more recent version, I'll be moving my install to a newer system & Python3, but for now I have to get the current version upgraded.

My working install with 1.1.5 is using pyparsing 2.2.0.

I've discovered that graphite-web 1.1.8 and 1.1.10 will not work with that version of pyparsing. At 1.1.8 webapp/graphite/render/grammar.py goes away and is replaced by webapp/graphite/render/grammar_unsafe.py.

The new grammar_unsafe.py still uses pyparsing, but its import now also requires pyparsing_unicode.

pyparsing_unicode was introduced in pyparsing version 2.3.0. See: pyparsing CHANGES

It looks like the requirements.txt file was updated to note the dependency (for pip, I assume?), but other places were not.

Two things should be updated:

  1. The Dependencies documentation for graphite should be updated to list pyparsing >= 2.3.0. Currently other python module dependencies are mentioned, but pyparsing isn't listed at all.
  2. The check_dependencies.py script is checking for any version of pyparsing and isn't detecting an installed version that predates pyparsing_unicode.

I'm not wise in the ways of Python, but it's possible the tox.ini also may need updates?

deniszh commented 1 month ago

That's bug in dependencies, indeed. 1.1.8 is not latest, though, will check if happens on latest code

timmooney commented 1 month ago

That's bug in dependencies, indeed. 1.1.8 is not latest, though, will check if happens on latest code

You're correct. The new requirement / missing dependency happened at version 1.1.8, but even the latest docs and check_dependencies.py don't include it.

Thanks for taking a look at the issue.