vatlab / sos-julia

SoS extension for Julia
BSD 3-Clause "New" or "Revised" License
0 stars 1 forks source link

Conda recipe is broken #21

Open BoPeng opened 4 years ago

BoPeng commented 4 years ago

https://github.com/conda-forge/sos-julia-feedstock/pulls

Hopefully someone can have a look.

izahn commented 3 years ago

The first problem was that the conda-forge julia package was missing a dependency. I fixed that in https://github.com/conda-forge/staged-recipes/pull/16113 and https://github.com/conda-forge/julia-feedstock/pull/126

Now we are hitting another error in the test phase that I don't yet understand:

===== testing package: sos-julia-0.18.5-pyhd8ed1ab_0 =====
running run_test.py
Ignoring reply not to a5eb5229-3720e6a2740f17db942e0079_1199_2: {'header': {'msg_id': '4f1a0f02-755b3a4ab98b98d3e68e8c3b_1203_5', 'msg_type': 'kernel_info_reply', 'username': 'conda', 'session': '4f1a0f02-755b3a4ab98b98d3e68e8c3b', 'date': datetime.datetime(2021, 9, 23, 9, 26, 21, 838027, tzinfo=tzlocal()), 'version': '5.3'}, 'msg_id': '4f1a0f02-755b3a4ab98b98d3e68e8c3b_1203_5', 'msg_type': 'kernel_info_reply', 'parent_header': {'msg_id': 'a5eb5229-3720e6a2740f17db942e0079_1199_1', 'msg_type': 'kernel_info_request', 'username': 'conda', 'session': 'a5eb5229-3720e6a2740f17db942e0079', 'date': datetime.datetime(2021, 9, 23, 9, 26, 21, 452540, tzinfo=tzlocal()), 'version': '5.3'}, 'metadata': {}, 'content': {'status': 'ok', 'protocol_version': '5.3', 'implementation': 'SOS', 'implementation_version': '0.22.4', 'language_info': {'mimetype': 'text/x-sos', 'name': 'sos', 'file_extension': '.sos', 'pygments_lexer': 'sos', 'codemirror_mode': 'sos', 'nbconvert_exporter': 'sos_notebook.converter.SoS_Exporter'}, 'banner': 'SoS kernel - script of scripts', 'help_links': [{'text': 'Python Reference', 'url': 'https://docs.python.org/3.9'}, {'text': 'IPython Reference', 'url': 'https://ipython.org/documentation.html'}, {'text': 'NumPy Reference', 'url': 'https://docs.scipy.org/doc/numpy/reference/'}, {'text': 'SciPy Reference', 'url': 'https://docs.scipy.org/doc/scipy/reference/'}, {'text': 'Matplotlib Reference', 'url': 'https://matplotlib.org/contents.html'}, {'text': 'SymPy Reference', 'url': 'http://docs.sympy.org/latest/index.html'}, {'text': 'pandas Reference', 'url': 'https://pandas.pydata.org/pandas-docs/stable/'}]}, 'buffers': []}
E
======================================================================
ERROR: testKernel (__main__.TestSoSKernel)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/conda/feedstock_root/build_artifacts/sos-julia_1632388080541/test_tmp/run_test.py", line 15, in testKernel
    stdout, stderr = assemble_output(kc.iopub_channel)
  File "/home/conda/feedstock_root/build_artifacts/sos-julia_1632388080541/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/lib/python3.9/site-packages/ipykernel/tests/utils.py", line 158, in assemble_output
    msg = get_msg(timeout=1)
TypeError: 'ZMQSocketChannel' object is not callable
izahn commented 3 years ago

I built a local version without the tests and uploaded it to https://anaconda.org/izahn/sos-julia . When I try to run it I get this error:

Failed to start kernel "Julia". Kernel died before replying to kernel_info
Error Message:
ERROR: SystemError: opening file "/home/conda/.julia/packages/IJulia/e8kqU/src/kernel.jl": No such file or directory
Stacktrace:
  [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
    @ Base ./error.jl:168
  [2] #systemerror#62
    @ ./error.jl:167 [inlined]
  [3] systemerror
    @ ./error.jl:167 [inlined]
  [4] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing)
    @ Base ./iostream.jl:293
  [5] open
    @ ./iostream.jl:282 [inlined]
  [6] open(f::Base.var"#326#327"{String}, args::String; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base ./io.jl:328
  [7] open
    @ ./io.jl:328 [inlined]
  [8] read
    @ ./io.jl:434 [inlined]
  [9] _include(mapexpr::Function, mod::Module, _path::String)
    @ Base ./loading.jl:1166
 [10] include(mod::Module, _path::String)
    @ Base ./Base.jl:386
 [11] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:285
 [12] _start()
    @ Base ./client.jl:485
BoPeng commented 3 years ago

Thanks for your report. I am working on https://github.com/vatlab/sos-notebook/issues/328 which is caused by a newer version of jupyter_client. I will have a look at this once that issue is fixed.

izahn commented 3 years ago

OK great, thank you for the note! I tried one additional thing in case it helps later when you get back to this.

I noticed that the error above was about not finding packages, so I

  1. made a symbolic link from ~/.jula to /home/conda/.jula
  2. installed IJulia, Feather, DataFrames, and NamedArray from the julia command line.
  3. restarted jupyter lab and created an sos julia kernel and tried print("Hello World").

Here is what I saw:

/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/sos_notebook/kernel.py:1320: RuntimeWarning: coroutine 'ZMQSocketChannel.msg_ready' was never awaited
  while self.KC.shell_channel.msg_ready():
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/sos_notebook/kernel.py:1321: RuntimeWarning: coroutine 'ZMQSocketChannel.get_msg' was never awaited
  self.KC.shell_channel.get_msg()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/sos_notebook/kernel.py", line 1956, in <module>
    IPKernelApp.launch_instance(kernel_class=SoS_Kernel)
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/traitlets/config/application.py", line 846, in launch_instance
    app.start()
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/ipykernel/kernelapp.py", line 677, in start
    self.io_loop.start()
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/site-packages/tornado/platform/asyncio.py", line 199, in start
    self.asyncio_loop.run_forever()
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/asyncio/base_events.py", line 596, in run_forever
    self._run_once()
  File "/home/izahn/mambaforge/envs/julia-test/lib/python3.9/asyncio/base_events.py", line 1875, in _run_once
    handle = self._ready.popleft()
IndexError: pop from an empty deque
BoPeng commented 3 years ago

ok. I fixed sos-notebook, and installed julia and the Ijulia kernel, and sos-julia, it all seems to be working alright.

I will test the sos-notebook (async branch) a bit more and make a release, then I will release sos-notebook on conda-forge, and we will see if the sos-julia conda recipe will work correctly.

image