akabe / ocaml-jupyter

An OCaml kernel for Jupyter (IPython) notebook
https://akabe.github.io/ocaml-jupyter/
MIT License
292 stars 41 forks source link

opam install error #200

Closed plescornet closed 1 year ago

plescornet commented 1 year ago

Hi ! I have a compilation error when installing jupyter through opam. Environment :

Ubuntu 22.04 through WSL, Windows 11

Steps to reproduce :

In a fresh switch opam switch create 4.14.1, do opam install jupyter

The compilation fails and the error is as follows :

[ERROR] The compilation of jupyter.2.8.2 failed at "dune build -p jupyter -j 15".

#=== ERROR while compiling jupyter.2.8.2 ======================================#
# context     2.1.2 | linux/x86_64 | ocaml-base-compiler.4.14.1 | https://opam.ocaml.org#6ed4e23f
# path        ~/.opam/4.14.1/.opam-switch/build/jupyter.2.8.2
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune build -p jupyter -j 15
# exit-code   1
# env-file    ~/.opam/log/jupyter-24386-bd5071.env
# output-file ~/.opam/log/jupyter-24386-bd5071.out
### output ###
# [...]
# File "src/core/stdin.ml", line 29, characters 19-25:
# 29 |     stdin_prompt : string [@key "prompt"];
#                         ^^^^^^
# Error: Unbound value string_of_yojson
# (cd _build/default && /home/tippexls/.opam/4.14.1/bin/ocamlc.opt -w A-4-31-33-34-39-41-42-43-44-45-48-49-50-58-66 -safe-string -strict-sequence -strict-formats -short-paths -g -bin-annot -I src/core/.jupyter.objs/byte -I /home/tippexls/.opam/4.14.1/lib/ppx_yojson_conv_lib -I /home/tippexls/.opam/4.14.1/lib/seq -I /home/tippexls/.opam/4.14.1/lib/uuidm -I /home/tippexls/.opam/4.14.1/lib/yojson [...]
# File "src/core/ansiCode.pp.ml", line 1:
# Warning 70 [missing-mli]: Cannot find interface file.
# (cd _build/default && /home/tippexls/.opam/4.14.1/bin/ocamlc.opt -w A-4-31-33-34-39-41-42-43-44-45-48-49-50-58-66 -safe-string -strict-sequence -strict-formats -short-paths -g -bin-annot -I src/core/.jupyter.objs/byte -I /home/tippexls/.opam/4.14.1/lib/ppx_yojson_conv_lib -I /home/tippexls/.opam/4.14.1/lib/seq -I /home/tippexls/.opam/4.14.1/lib/uuidm -I /home/tippexls/.opam/4.14.1/lib/yojson [...]
# File "src/core/comm.ml", line 26, characters 25-31:
# 26 |     comm_target : string option [@key "target_name"] [@default None];
#                               ^^^^^^
# Error: Unbound value option_of_yojson

I believe the issue appeared when updating ppx_yojson_conv from v0.15.1 to v0.16.0. Maybe it is linked to https://github.com/janestreet/ppx_yojson_conv/issues/18#issue-1758439838 ?

Thanks for your work on this.

mt-caret commented 1 year ago

Hi, I recently tried to build this project locally and ran into the same issue, so I wrote a quick PR that fixes the compiler errors. @akabe do these changes look reasonable to you?