`TypeError` in `get_shallow_dependencies` When `includes` are Empty
Closed this issue · 2 comments
dawelter2 commented
When trying to run SimBR in package mode, it check my environment and if it's package mode, the include stay empty, as example:
{% set DEVELOP = os.environ.get('ESSS_SIMBR_DEVELOP', '0') != '0' %}
name: hookman
includes:
{% if DEVELOP %}
- {{ root }}/../../hookman/environment.devenv.yml
{% endif %}
dependencies:
- invoke
{% if not DEVELOP %}
- python-hookman == 0.2.0
{% endif %}
environment:
PYTHONPATH:
- {{ root }}/source/python
Fixed temporarily with:
{% if DEVELOP %}
includes:
- {{ root }}/../../hookman/environment.devenv.yml
{% endif %}
This is the stack trace from CI:
Traceback (most recent call last):
File "W:\Miniconda\envs\_simbr20gui-win64-py36\Scripts\deps-script.py", line 10, in <module>
sys.exit(main_func())
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 929, in main_func
return cli(auto_envvar_prefix='DEPS')
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\click\core.py", line 764, in __call__
return self.main(*args, **kwargs)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\click\core.py", line 717, in main
rv = self.invoke(ctx)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\click\core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 836, in cli
root_deps = obtain_all_dependecies_recursively(directories, ignore_project, skip_project)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 277, in obtain_all_dependecies_recursively
add_deps_from_directories(root_directories, root_deps)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 270, in add_deps_from_directories
add_deps_from_directories(current_dep_directories, dep.deps)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 270, in add_deps_from_directories
add_deps_from_directories(current_dep_directories, dep.deps)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 269, in add_deps_from_directories
dep_directory, dep_env_filename)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 70, in wrapper
ret = cache[key] = fun(*args, **kwargs)
File "W:\Miniconda\envs\_simbr20gui-win64-py36\lib\site-packages\deps\deps_cli.py", line 101, in get_shallow_dependencies
includes = [os.path.abspath(p) for p in data['includes']]
TypeError: 'NoneType' object is not iterable
Build step 'Execute Windows batch command' marked build as failure
https://eden.esss.com.br/jenkins/job/simbr-fb-SIMBR-1809-etk-simbr-32-package-win64/2/console
prusse-martin commented
It really surprises me that adding a non file path item to includes
does not break other things.
As a work around I will suggest doing:
{% if DEVELOP %}
includes:
- {{ root }}/../../hookman/environment.devenv.yml
{% endif %}
but if your way work I am happy you found a temporary work around.
nicoddemus commented
@prusse-martin actually that original solution did not work (it was a brain fart on my part), and your suggestion is what we did yesterday in the end. 👍
EDIT: updated the original post with the correct solution. 👍