janestreet / opam-repository

Opam repository for the development version of Jane Street packages
101 stars 10 forks source link

library name conflict on 'trie' #18

Closed edwintorok closed 1 year ago

edwintorok commented 2 years ago

This repository defines a library called trie, which causes utop to fail to install (which depends on mew, which depends on trie):


<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><><><>
version      v0.16~preview.127.23+112
repository   janestreet-bleeding
url.src      "https://github.com/janestreet/trie/archive/5a1eda4810e7a81080090b16d6ca9116041b0224.tar.gz"
url.checksum "sha256=8f47ea0f8d20abfa22ad6274caa0dc2af73f2f298803c835f471cb7207379d00"
homepage     "https://github.com/janestreet/trie"
#=== ERROR while compiling mew.0.1.0 ==========================================#
# context     2.1.2 | linux/x86_64 | ocaml-base-compiler.4.14.0 | https://opam.ocaml.org#626ee258
# path        ~/.opam/4.14.0/.opam-switch/build/mew.0.1.0
# command     ~/.opam/opam-init/hooks/sandbox.sh build dune build -p mew -j 8
# exit-code   1
# env-file    ~/.opam/log/mew-62830-e27c46.env
# output-file ~/.opam/log/mew-62830-e27c46.out
### output ###
# Error: Modules do not match:
# [...]
#      File "src/keychainable_intf.ml", line 81, characters 18-79:
#        Expected declaration
#      The type `keychain_witness' is required but not provided
#      File "src/keychainable_intf.ml", line 81, characters 18-79:
#        Expected declaration
#      The type `keychain_description' is required but not provided
#      File "src/keychainable_intf.ml", line 81, characters 18-79:
#        Expected declaration
#      The value `keychainable' is required but not provided
#      File "src/keychainable_intf.ml", line 81, characters 18-79:
#        Expected declaration

This can be worked around by running opam install trie.1.0.0, which installs the "other" trie:

<><> Version-specific details <><><><><><><><><><><><><><><><><><><><><><><><><>
version      1.0.0
repository   default
url.src      "https://github.com/kandu/trie/archive/1.0.0.tar.gz"

Please consider a way for utop to coexist with latest libraries from here. Since opam doesn't really have namespacing for packages perhaps the easiest would be to rename the trie package here to avoid conflicts with the already existing package in opam (or include it as a library inside another opam package, e.g. core_extended?)

smuenzel commented 1 year ago

Maybe we can call it core_trie or something?

dkalinichenko-js commented 1 year ago

Resolved by renaming the package to base_trie.