cherrypy / cheroot

Cheroot is the high-performance, pure-Python HTTP server used by CherryPy. Docs -->
https://cheroot.cherrypy.dev
BSD 3-Clause "New" or "Revised" License
185 stars 90 forks source link

Actually run Jython tests in CIs (at least partially) ~Drop Jython (same for CherryPy)~ #102

Open webknjaz opened 6 years ago

webknjaz commented 6 years ago

I'm submitting a ...

Describe the bug. What is the current behavior?

Jython is not supported, while still listed in classifiers.

What is the motivation / use case for changing the behavior?

Nobody uses it anyway.

To Reproduce

Steps to reproduce the behavior:

  1. Try to install or run tests, even without tox, pip install doesn't work, virtualenv doesn' work, try to install jython itself in various ways, deps like sqlite or setuptools_scm are impossible to get working.
  2. Everything is broken.

Expected behavior

~Everything works~ Well, at least that it's possible to install or run any tests.

Details

Classifiers should correspond tested versions, I tried to add jython to Travis CI, but completely failed trying to get it working even locally Environment

Additional context

No info about whether anyone ever used CherryPy under jython. Well, at some point they probably did and it's useful to have a pythonic framework running on JVM, but I doubt that somebody does this nowadays.

jaraco commented 6 years ago

At some point, Jython was supported and worked fine. I've personally used CherryPy in Jython. I'd like to think it's one of the most accessible web frameworks. With the introduction of dependencies and thus the dependence on pip, I'm finding that Jython is becoming less viable.

Although we don't have test support for Jython (for various reasons), I would want us to avoid adding features that prevent running on Jython if possible. That is, I'd like to retain the intended and declared support for Jython even if we can't guarantee it.

And if someone reports something that doesn't work on Jython, I would consider that a valid bug, though something that would almost certainly require contribution from the reporter to address it.

webknjaz commented 6 years ago

@jaraco well, if you can just install it, please tell me how. I can't.

jaraco commented 6 years ago

I'm also having problems installing it, because (from what I can tell), pip is currently broken on Jython (on at least a couple of levels).

I was able to use pip on CPython to install the dependencies thus:

tmp $ pip install -t . cherrypy
Collecting cherrypy
  Cache entry deserialization failed, entry ignored
  Using cached https://files.pythonhosted.org/packages/2b/ea/1726f07c12a8e21d9e776fbb860a53cca689504900fffc0d09c985c6c854/CherryPy-16.0.2-py2.py3-none-any.whl
Collecting six>=1.11.0 (from cherrypy)
  Using cached https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting cheroot>=6.2.4 (from cherrypy)
  Downloading https://files.pythonhosted.org/packages/40/56/1b31a1ee40232df20cb2c58de46af65e1501345a85817a5ab7f63be0510b/cheroot-6.3.2-py2.py3-none-any.whl (67kB)
    100% |████████████████████████████████| 71kB 363kB/s
Collecting portend>=2.1.1 (from cherrypy)
  Using cached https://files.pythonhosted.org/packages/81/43/21afd5914b74d4271184ee76f4093b45aa6a580dc6627d72dfc33664c6ac/portend-2.3-py2.py3-none-any.whl
Collecting backports.functools-lru-cache (from cheroot>=6.2.4->cherrypy)
  Using cached https://files.pythonhosted.org/packages/03/8e/2424c0e65c4a066e28f539364deee49b6451f8fcd4f718fefa50cc3dcf48/backports.functools_lru_cache-1.5-py2.py3-none-any.whl
Collecting more-itertools>=2.6 (from cheroot>=6.2.4->cherrypy)
  Using cached https://files.pythonhosted.org/packages/85/40/90c3b0393e12b9827381004224de8814686e3d7182f9d4182477f600826d/more_itertools-4.2.0-py3-none-any.whl
Collecting tempora>=1.8 (from portend>=2.1.1->cherrypy)
  Using cached https://files.pythonhosted.org/packages/55/f4/6909c23d920192dc9d2bb0d0841abb561f58fb6c816cf593a35dda0a800c/tempora-1.11-py2.py3-none-any.whl
Collecting pytz (from tempora>=1.8->portend>=2.1.1->cherrypy)
  Using cached https://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl
Installing collected packages: six, backports.functools-lru-cache, more-itertools, cheroot, pytz, tempora, portend, cherrypy
Successfully installed backports.functools-lru-cache-1.5 cheroot-6.3.2 cherrypy-16.0.2 more-itertools-4.2.0 portend-2.3 pytz-2018.4 six-1.11.0 tempora-1.11
tmp $ jython
Jython 2.7.1 (default:0df7adb1b397, Jun 30 2017, 19:02:43)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.8.0_45
Type "help", "copyright", "credits" or "license" for more information.
>>> import cherrypy
>>>
webknjaz commented 6 years ago

try pip install -e .[testing]

webknjaz commented 6 years ago

We need to figure out how to run it

jaraco commented 6 years ago

Or not - we could just say Jython is supported but not tested/maintained internally.

webknjaz commented 6 years ago

I don't feel comfortable with such setup