enthought / enable

Enable: low-level drawing and interaction
Other
91 stars 45 forks source link

add ubuntu 3.11 test #1017

Closed homosapien-lcy closed 1 year ago

homosapien-lcy commented 1 year ago

With the latest python come out, we want to test whether enable can work under python 3.11. Since 3.11 is still not available in EDM, we setup a pypi test. closes issue #1016

dpinte commented 1 year ago

@homosapien-lcy This looks ok but a duplicate of the already existing worklfow https://github.com/enthought/enable/blob/main/.github/workflows/bleeding-edge.yml . I suggest you just update the existing one in order to not duplicate the work.

homosapien-lcy commented 1 year ago

testing procedure: 1 env setup: python3.11 -m venv --clear ~/.venvs/p311 && source ~/.venvs/p311/bin/activate 2 clone git clone git@github.com:enthought/enable.git 3 install dependencies py3.11: pip install numpy pip install scipy pip install traitsui pip install pyparsing pip install reportlab pip install chaco pip install pyglet pip install pygarrayimage pip install pyside6 py3.8 in edm: edm environments create test_edm_py38 --version 3.8 edm shell -e test_edm_py38 edm install scipy, numpy, traitsui, pyparsing, chaco, pyside6 python3.8 -m pip install pyglet python3.8 -m pip install reportlab python3.8 -m pip install pygarrayimage 4 install package python3.11 -m pip install -e .

test results: enable/enable/examples: _example_application: SUCCESS (no error output) _example_canvas: SUCCESS (no error output) _example_support: SUCCESS (no error output)

enable/enable/examples/demo/savage: button_demo: ImportError: Unable to import a Savage backend for the null toolkit. buttons_on_canvas: NotImplementedError: the 'null' toolkit does not implement this method static_image: ImportError: Unable to import a Savage backend for the null toolkit. toggle_demo: ImportError: Unable to import a Savage backend for the null toolkit.

enable/enable/examples/demo/enable: gradient_demo: NotImplementedError: the 'null' toolkit does not implement this method label_test: NotImplementedError: the 'null' toolkit does not implement this method zoomed_event_demo: NotImplementedError: the 'null' toolkit does not implement this method brush_draw: NotImplementedError: the 'null' toolkit does not implement this method filled_container_demo: NotImplementedError: the 'null' toolkit does not implement this method image_draw: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) basic_draw: NotImplementedError: the 'null' toolkit does not implement this method basic_move: NotImplementedError: the 'null' toolkit does not implement this method text_field_demo: NotImplementedError: the 'null' toolkit does not implement this method text_grid_demo: NotImplementedError: the 'null' toolkit does not implement this method sierpinski_zoom: NotImplementedError: the 'null' toolkit does not implement this method scrolled_canvas_demo: NotImplementedError: the 'null' toolkit does not implement this method compass_example: NotImplementedError: the 'null' toolkit does not implement this method component_demo: NotImplementedError: the 'null' toolkit does not implement this method scrollbar_demo: NotImplementedError: the 'null' toolkit does not implement this method hidpi_component: NotImplementedError: the 'null' toolkit does not implement this method primitives_demo: NotImplementedError: the 'null' toolkit does not implement this method latency_demo: NotImplementedError: the 'null' toolkit does not implement this method stacked_container_demo: NotImplementedError: the 'null' toolkit does not implement this method constraints_demo: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) slider_example: NotImplementedError: the 'null' toolkit does not implement this method container_demo: ModuleNotFoundError: No module named 'chaco' view_bounds_test: NotImplementedError: the 'null' toolkit does not implement this method resize_tool_demo: NotImplementedError: the 'null' toolkit does not implement this method canvas_demo: NotImplementedError: the 'null' toolkit does not implement this method scrolled_demo: NotImplementedError: the 'null' toolkit does not implement this method

kiva/examples/kiva/: kiva_explorer: NotImplementedError: the 'null' toolkit does not implement this method ui_text: NotImplementedError: the 'null' toolkit does not implement this method sub_path: SUCCESS pdf_arcs: ModuleNotFoundError: No module named 'reportlab' simple: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) dummy: SUCCESS star: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) dash: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) qt4_simple: RuntimeError: No pyface.toolkits plugin could be loaded for qt4 pyglet_gl: ModuleNotFoundError: No module named 'pyglet' ellipse: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) compiled_path: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) star1: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) simple2: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) star_path: SUCCESS simple_clip: SUCCESS ui_gradient: NotImplementedError: the 'null' toolkit does not implement this method gradient: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) rect: ImportError: cannot import name 'ConstraintsContainer' from 'enable.api' (/Users/cyliu/enable/enable/api.py) image_explorer: NotImplementedError: the 'null' toolkit does not implement this method

homosapien-lcy commented 1 year ago

Duplicate work that should be integrated in the existing bleeding-edge workflow

OK, add these to the bleeding edge

homosapien-lcy commented 1 year ago

I think in both enable and chaco, the NotImplementedError is causing error in many examples, I'm not sure this is specific to 3.11. Investigating

dpinte commented 1 year ago

@homosapien-lcy I've started a manual run of the CI: https://github.com/enthought/enable/actions/runs/4509498241

dpinte commented 1 year ago

@homosapien-lcy as you'll see in the logs, this will require a litte bit of digging to make it work:

ERROR: Ignored the following versions that require a different python version: 6.0.0 Requires-Python >=3.6, <3.10; 6.0.0a1.dev1606911628 Requires-Python >=3.6, <3.10; 6.0.1 Requires-Python >=3.6, <3.10; 6.0.2 Requires-Python >=3.6, <3.10; 6.0.3 Requires-Python >=3.6, <3.10; 6.0.4 Requires-Python >=3.6, <3.10; 6.1.0 Requires-Python >=3.6, <3.10; 6.1.1 Requires-Python >=3.6, <3.10; 6.1.2 Requires-Python >=3.6, <3.10; 6.1.3 Requires-Python >=3.6, <3.10; 6.2.0 Requires-Python >=3.6, <3.11; 6.2.1 Requires-Python >=3.6, <3.11; 6.2.2 Requires-Python >=3.6, <3.11; 6.2.2.1 Requires-Python >=3.6, <3.11; 6.2.3 Requires-Python >=3.6, <3.11; 6.2.4 Requires-Python >=3.6, <3.11; 6.3.0 Requires-Python <3.11,>=3.6; 6.3.1 Requires-Python <3.11,>=3.6; 6.3.2 Requires-Python <3.11,>=3.6; 6.4.0 Requires-Python <3.11,>=3.6
ERROR: Could not find a version that satisfies the requirement pyside6<6.4.0; python_version >= "3.8" and extra == "pyside6" (from traitsui[pyside6]) (from versions: 6.4.0.1, 6.4.1, 6.4.2, 6.4.3)
ERROR: No matching distribution found for pyside6<6.4.0; python_version >= "3.8" and extra == "pyside6"
homosapien-lcy commented 1 year ago

https://github.com/enthought/enable/actions/runs/4509498241

Yeah, I think pyface 6.3.0 or older is not compatible with version 3.11

homosapien-lcy commented 1 year ago

Full test results in https://docs.google.com/spreadsheets/d/1Oj4-KDmTglDA_c6MPSU3yTQtLYJAbOSKQ9hGXKEQ1d8/edit#gid=132564817

corranwebster commented 1 year ago

Closing in favour of #1042