Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix cron job not installing additional dependencies #1427

Merged
merged 1 commit into from
Dec 4, 2020
Merged

Conversation

kitchoi
Copy link
Contributor

@kitchoi kitchoi commented Dec 1, 2020

The cron job on Travis is currently failing with this:

======================================================================
ERROR: traitsui.testing.tests.test_gui (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: traitsui.testing.tests.test_gui
Traceback (most recent call last):
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/unittest/loader.py", line 428, in _find_test_path
    module = self._get_module_from_name(name)
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/unittest/loader.py", line 369, in _get_module_from_name
    __import__(name)
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/traitsui/testing/tests/test_gui.py", line 17, in <module>
    from pyface.api import GUI
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/api.py", line 24, in <module>
    from .gui_application import GUIApplication
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/gui_application.py", line 39, in <module>
    from .i_splash_screen import ISplashScreen
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/i_splash_screen.py", line 20, in <module>
    from pyface.image_resource import ImageResource
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/image_resource.py", line 19, in <module>
    ImageResource = toolkit_object("image_resource:ImageResource")
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/base_toolkit.py", line 152, in __call__
    module = import_module(mname, package)
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/ui/null/image_resource.py", line 19, in <module>
    from pyface.i_image_resource import IImageResource, MImageResource
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/i_image_resource.py", line 14, in <module>
    from pyface.resource_manager import resource_manager
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/resource_manager.py", line 14, in <module>
    from pyface.resource.api import ResourceManager
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/resource/api.py", line 13, in <module>
    from .resource_manager import ResourceManager
  File "/home/travis/.edm/envs/traitsui-test-3.6-null/lib/python3.6/site-packages/pyface/resource/resource_manager.py", line 20, in <module>
    from importlib_resources import files
ModuleNotFoundError: No module named 'importlib_resources'

This is because pyface master now requires importlib_metadata, but our CI command for the cron job is installing sources with --no-deps flag. This PR fixes the

Context: We do already have a new cron job set up on GitHub Actions. The setup there is decoupled from the install command for development use and should not be affected by the above issue. However its first scheduled trigger has not yet happened.

Travis CI configuration is still live, and the cron job is still being run, monitored and displayed.
It is likely we will be removing the cron job from Travis eventually, but for now, this PR will fix the cron job on Travis.

@kitchoi
Copy link
Contributor Author

kitchoi commented Dec 1, 2020

Ah of course, I am hitting same deadlock already seen in #1395. Closing. This is not worth pursuing.

@kitchoi kitchoi closed this Dec 1, 2020
@kitchoi kitchoi deleted the fix-cron-deps branch December 1, 2020 18:19
@kitchoi
Copy link
Contributor Author

kitchoi commented Dec 1, 2020

See #1416 for moving away from Travis CI eventually.

@kitchoi
Copy link
Contributor Author

kitchoi commented Dec 2, 2020

Resurrecting following the merging of #1430

@kitchoi kitchoi reopened this Dec 2, 2020
Copy link
Contributor

@rahulporuri rahulporuri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested the command locally and ran the testsuite in the ensuing environment. There were failures in the integrationtests but apart from that, LGTM.

@rahulporuri
Copy link
Contributor

see integration tests failures -

======================================================================
FAIL: test_run (test_all_examples.TestExample) (file_path='C:\\Users\\rporuri\\.edm\\envs\\traitsui-test-3.6-pyqt5\\lib\\site-packages\\traitsui\\examples\\demo\\Applications\\Python_source_browser.py')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 332, in test_run
    run_file(file_path)
TypeError: '__main__' is not a package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 339, in test_run
    file_path, exc, message
AssertionError: Executing C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\examples\demo\Applications\Python_source_browser.py failed with exception '__main__' is not a package
 Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 332, in test_run
    run_file(file_path)
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 273, in run_file
    exec(content, globals)
  File "<string>", line 176, in <module>
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 232, in replaced_configure_traits
    with UITester().create_ui(instance, ui_kwargs):
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\testing\tester\ui_tester.py", line 88, in create_ui
    ui = object.edit_traits(**ui_kwargs)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traits\has_traits.py", line 1744, in edit_traits
    args,
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\view.py", line 462, in ui
    ui.ui(parent, kind)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\ui.py", line 244, in ui
    self.rebuild(self, parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\toolkit.py", line 163, in ui_live
    ui_live.ui_live(ui, parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 43, in ui_live
    _ui_dialog(ui, parent, BaseDialog.NONMODAL)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 65, in _ui_dialog
    BaseDialog.display_ui(ui, parent, style)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_base.py", line 286, in display_ui
    ui.owner.init(ui, parent, style)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 225, in init
    self.add_contents(panel(ui), bbox)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 259, in panel
    panel = _GroupPanel(content[0], ui).control
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 555, in __init__
    self._add_splitter_items(content, splitter)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 648, in _add_splitter_items
    panel = _GroupPanel(item, self.ui, suppress_label=True).control
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 555, in __init__
    self._add_splitter_items(content, splitter)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 650, in _add_splitter_items
    panel = self._add_items([item])
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 891, in _add_items
    editor.prepare(inner)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\editor.py", line 236, in prepare
    self.init(parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\tabular_editor.py", line 240, in init
    self._add_image(image_resource)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\tabular_editor.py", line 351, in _add_image
    image = image_resource.create_icon()
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\ui\qt4\image_resource.py", line 55, in create_icon
    ref = self._get_ref(size)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\i_image_resource.py", line 194, in _get_ref
    self.name, self.search_path, size
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\resource\resource_manager.py", line 67, in locate_image
    return self._locate_image(image_name, resource_path, size)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\resource\resource_manager.py", line 123, in _locate_image
    files(dirname.__name__)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\importlib_resources\_common.py", line 24, in files
    return from_package(get_package(package))
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\importlib_resources\_common.py", line 73, in get_package
    raise TypeError('{!r} is not a package'.format(package))
TypeError: '__main__' is not a package


======================================================================
FAIL: test_run (test_all_examples.TestExample) (file_path='C:\\Users\\rporuri\\.edm\\envs\\traitsui-test-3.6-pyqt5\\lib\\site-packages\\traitsui\\examples\\demo\\Extras\\Image_editor_demo.py')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 332, in test_run
    run_file(file_path)
TypeError: '__main__' is not a package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 339, in test_run
    file_path, exc, message
AssertionError: Executing C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\examples\demo\Extras\Image_editor_demo.py failed with exception '__main__' is not a package
 Traceback (most recent call last):
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 332, in test_run
    run_file(file_path)
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 273, in run_file
    exec(content, globals)
  File "<string>", line 77, in <module>
  File "C:\Users\rporuri\work\github\ets\traitsui\integrationtests\test_all_examples.py", line 232, in replaced_configure_traits
    with UITester().create_ui(instance, ui_kwargs):
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\testing\tester\ui_tester.py", line 88, in create_ui
    ui = object.edit_traits(**ui_kwargs)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traits\has_traits.py", line 1744, in edit_traits
    args,
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\view.py", line 462, in ui
    ui.ui(parent, kind)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\ui.py", line 244, in ui
    self.rebuild(self, parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\toolkit.py", line 163, in ui_live
    ui_live.ui_live(ui, parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 43, in ui_live
    _ui_dialog(ui, parent, BaseDialog.NONMODAL)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 65, in _ui_dialog
    BaseDialog.display_ui(ui, parent, style)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_base.py", line 286, in display_ui
    ui.owner.init(ui, parent, style)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_live.py", line 225, in init
    self.add_contents(panel(ui), bbox)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 259, in panel
    panel = _GroupPanel(content[0], ui).control
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 615, in __init__
    layout = self._add_groups(content, inner)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 696, in _add_groups
    panel = _GroupPanel(subgroup, self.ui).control
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 617, in __init__
    layout = self._add_items(content, inner)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\ui_panel.py", line 891, in _add_items
    editor.prepare(inner)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\editor.py", line 236, in prepare
    self.init(parent)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\traitsui\qt4\image_editor.py", line 278, in init
    self.control.setPixmap(convert_bitmap(image))
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\ui_traits.py", line 85, in convert_bitmap
    ] = bitmap = image_resource.create_bitmap()
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\i_image_resource.py", line 164, in create_image
    ref = self._get_ref(size)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\i_image_resource.py", line 194, in _get_ref
    self.name, self.search_path, size
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\resource\resource_manager.py", line 67, in locate_image
    return self._locate_image(image_name, resource_path, size)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\pyface\resource\resource_manager.py", line 123, in _locate_image
    files(dirname.__name__)
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\importlib_resources\_common.py", line 24, in files
    return from_package(get_package(package))
  File "C:\Users\rporuri\.edm\envs\traitsui-test-3.6-pyqt5\lib\site-packages\importlib_resources\_common.py", line 73, in get_package
    raise TypeError('{!r} is not a package'.format(package))
TypeError: '__main__' is not a package


----------------------------------------------------------------------
Ran 13 tests in 13.399s

FAILED (failures=2, skipped=7)

@kitchoi
Copy link
Contributor Author

kitchoi commented Dec 4, 2020

Thank you. This looks worrying. Let's merge this and see if this is reproducible on Travis when the job is run with the latest source dependencies.

@kitchoi kitchoi merged commit a2ad464 into master Dec 4, 2020
@kitchoi kitchoi deleted the fix-cron-deps branch December 4, 2020 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants