boot-clj / boot

Build tooling for Clojure.
https://boot-clj.github.io/
Eclipse Public License 1.0
1.75k stars 179 forks source link

Exception at startup wrt namespace #720

Closed abhi18av closed 5 years ago

abhi18av commented 5 years ago

Hi boot-clj team,

Recently I've started to come across the following error on global boot repl

Abhinavs-MacBook-Pro:~ eklavya$ boot repl
nREPL server started on port 53091 on host 127.0.0.1 - nrepl://127.0.0.1:53091
java.lang.Exception: No namespace: reply.eval-modes.nrepl found
REPL-y 0.4.1, nREPL 0.4.4
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_172-b11
        Exit: Control+D or (exit) or (quit)
    Commands: (user/help)
        Docs: (doc function-name-here)
              (find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
      Source: (source function-name-here)
     Javadoc: (javadoc java-object-or-class-here)
    Examples from clojuredocs.org: [clojuredocs or cdoc]
              (user/clojuredocs name-here)
              (user/clojuredocs "ns-here" "name-here")
boot.user=>

Please let me know how to resolve this.

martinklepsch commented 5 years ago

Hey @abhi18av :wave: This looks like a configuration issue. Could you share your configuration files as described in the issue template? Thanks!

abhi18av commented 5 years ago

Whoops, let me correct my mistake here.

Abhinavs-MacBook-Pro: eklavya $ boot repl
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
nREPL server started on port 53048 on host 127.0.0.1 - nrepl://127.0.0.1:53048
java.lang.Exception: No namespace: reply.eval-modes.nrepl found
REPL-y 0.4.1, nREPL 0.4.4
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_172-b11
        Exit: Control+D or (exit) or (quit)
    Commands: (user/help)
        Docs: (doc function-name-here)
              (find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
      Source: (source function-name-here)
     Javadoc: (javadoc java-object-or-class-here)
    Examples from clojuredocs.org: [clojuredocs or cdoc]
              (user/clojuredocs name-here)
              (user/clojuredocs "ns-here" "name-here")
boot.user=> 
- Java version

Abhinavs-MacBook-Pro: eklavya$ java -version java version "1.8.0_172" Java(TM) SE Runtime Environment (build 1.8.0_172-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode) Abhinavs-MacBook-Pro:list_of_files eklavya$

- Contents of `profile.boot`

Abhinavs-MacBook-Pro:~ eklavya$ cat ~/.boot/profile.boot Abhinavs-MacBook-Pro:~ eklavya$

martinklepsch commented 5 years ago

@abhi18av Do you have a local build.boot file? And can you also provide the output of boot -V? Thanks

abhi18av commented 5 years ago

@martinklepsch , no I'm just trying to have a bare minimal repl for clojure ( apart from clj etc ) so no, I don't have any build.boot in the directory.

Also, here's the output you requested

hinavs-MacBook-Pro:~ eklavya$ boot -V
#http://boot-clj.com
#Sun Nov 04 20:59:00 IST 2018
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.8.0
BOOT_VERSION=2.8.2

Abhinavs-MacBook-Pro:~ eklavya$ boot repl
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
nREPL server started on port 61605 on host 127.0.0.1 - nrepl://127.0.0.1:61605
java.lang.Exception: No namespace: reply.eval-modes.nrepl found
REPL-y 0.4.1, nREPL 0.4.4
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_172-b11
        Exit: Control+D or (exit) or (quit)
    Commands: (user/help)
        Docs: (doc function-name-here)
              (find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
      Source: (source function-name-here)
     Javadoc: (javadoc java-object-or-class-here)
    Examples from clojuredocs.org: [clojuredocs or cdoc]
              (user/clojuredocs name-here)
              (user/clojuredocs "ns-here" "name-here")
martinklepsch commented 5 years ago

Can you try with version 2.7.2 just to diagnose if the issue might be related to your particular version? If you use Bash or similar:

BOOT_VERSION=2.7.2 boot repl
abhi18av commented 5 years ago

@martinklepsch , we're on right track here.

The behavior is perfectly normal for this version.

Abhinavs-MacBook-Pro:~ eklavya$ BOOT_VERSION=2.7.2 boot repl
nREPL server started on port 62021 on host 127.0.0.1 - nrepl://127.0.0.1:62021
REPL-y 0.3.7, nREPL 0.2.12
Clojure 1.8.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_172-b11
        Exit: Control+D or (exit) or (quit)
    Commands: (user/help)
        Docs: (doc function-name-here)
              (find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
      Source: (source function-name-here)
     Javadoc: (javadoc java-object-or-class-here)
    Examples from clojuredocs.org: [clojuredocs or cdoc]
              (user/clojuredocs name-here)
              (user/clojuredocs "ns-here" "name-here")
boot.user=> 
bbatsov commented 5 years ago

@abhi18av The warning is harmless. It comes from a broken version of REPL-y - adding the most recent version somewhere in your project will suppress it, but everything will work perfectly fine in spite of it. I guess I should fire away some PR bumping the version of REPL-y and nREPL bundled with boot.

bbatsov commented 5 years ago

See https://github.com/trptcolin/reply/pull/192/files for details.

thedavidmeister commented 5 years ago

dropping from boot 2.8.2 to 2.7.2 with latest deps of everything else according to boot show -u fixed this for me

bbatsov commented 5 years ago

There's an open PR to update the bundled REPL-y https://github.com/boot-clj/boot/pull/724

The downgrade you suggest will break clients that depend on a recent nREPL version, so I think it's a bad idea, considering the error is relatively harmless. I'm guessing the overriding the REPL-y version locally should work ok as well.

burn2delete commented 5 years ago

closing as v2.8.3 is out with updated deps