GenieFramework / Genie.jl

🧞The highly productive Julia web framework
https://genieframework.com
MIT License
2.28k stars 192 forks source link

Errors during new app creation in 0.6 #24

Closed hpoit closed 7 years ago

hpoit commented 7 years ago

Hi Adrian! I would appreciate your help! https://gist.github.com/hpoit/6a036f8f562c9f7abb95aeb3124e788b

Version changes have been happening at the speed of light, I'm busy just keeping up with them.

wr125 commented 7 years ago

Please note the following error message below (using windows 10, 64bit, Julia and juno installed and both seem to be working fine).

(Note: tried both juno's console and Julia's native terminal but unresolved)

Pkg.build("Gumbo")

INFO: Building Gumbo INFO: Attempting to Create directory C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps\downloads INFO: Directory C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps\downloads already created INFO: Downloading file https://cache.julialang.org/https://bintray.com/artifact/download/tkelman/generic/gumbo.7z INFO: Done downloading file https://cache.julialang.org/https://bintray.com/artifact/download/tkelman/generic/gumbo.7z INFO: Attempting to Create directory C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo INFO: Directory C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo already created ================================[ ERROR: Gumbo ]================================

LoadError: could not spawn 'C:\Users\julia\AppData\Local\Julia-0.5.2\bin\7z.exe' x 'C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps\downloads\gumbo.7z' -y '-oC:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps': no such file or directory (ENOENT) while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps\build.jl, in expression starting on line 19

================================================================================

================================[ BUILD ERRORS ]================================

WARNING: Gumbo had build errors.

================================================================================

Finally, I know the first issue I received was an incomplete install of Gumbo, which lead to failing to run the following server;

include("genie.jl")

|__ |_| | | | -| | | -_| |___|_|||||

Starting Genie in >> DEV << mode using 1 worker(s)

LoadError: LoadError: LoadError: LoadError: LoadError: LoadError: LoadError: Gumbo not properly installed. Please run Pkg.build("Gumbo")

in error(::String) at .\error.jl:21 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in eval(::Expr) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\Renderer.jl:1 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in include_from_node1(::String) at .\loading.jl:488 in eval(::Module, ::Any) at .\boot.jl:234 in require(::Symbol) at .\loading.jl:415 in eval(::Module, ::Any) at .\boot.jl:234 in eval_ew_expr at .\multi.jl:1981 [inlined] in (::Base.##622#623{Base.#eval_ew_expr,Tuple{Expr},Array{Any,1}})() at .\multi.jl:1030 in run_work_thunk(::Base.##622#623{Base.#eval_ew_expr,Tuple{Expr},Array{Any,1}}, ::Bool) at .\multi.jl:1001 in #remotecall_fetch#627(::Array{Any,1}, ::Function, ::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in remotecall_fetch(::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in #remotecall_fetch#631(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in remotecall_fetch(::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in (::##9#11)() at .\multi.jl:1967 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\src\Gumbo.jl, in expression starting on line 6 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Flax\src\Flax.jl, in expression starting on line 6 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\Renderer.jl, in expression starting on line 10 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\Router.jl, in expression starting on line 4 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\AppServer.jl, in expression starting on line 6 while loading C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\Genie.jl, in expression starting on line 36 in #remotecall_fetch#627(::Array{Any,1}, ::Function, ::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1056 in remotecall_fetch(::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in #remotecall_fetch#631(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in remotecall_fetch(::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in (::##9#11)() at .\multi.jl:1967 while loading C:\JuliaPro-0.5.2.2\Japp\genie.jl, in expression starting on line 28 in include_from_node1 at base\loading.jl:488 in anonymous at base\ in macro expansion; at base\multi.jl:1977 in sync_end at base\task.jl:311


Other useful details;

Pkg.add("Gumbo")

INFO: Nothing to be done INFO: METADATA is out-of-date β€” you may not have the latest version of Gumbo INFO: Use Pkg.update() to get the latest versions of your packages

INFO: Updating METADATA... INFO: Updating Genie master... INFO: Updating Flax master... INFO: Computing changes... INFO: No packages to install, update or remove

wr125 commented 7 years ago

Update: looks like there maybe an issue with both (master) files.


13 additional packages:

Starting Genie in >> DEV << mode using 1 worker(s)

LoadError: MethodError: no method matching run() Closest candidates are: run(!Matched::BinDeps.Choices) at C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\BinDeps\src\BinDeps.jl:206 run(!Matched::BinDeps.FileRule) at C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\BinDeps\src\BinDeps.jl:453 run(!Matched::BinDeps.DirectoryRule) at C:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\BinDeps\src\BinDeps.jl:461 ... in eval(::Module, ::Any) at .\boot.jl:234 in eval_ew_expr at .\multi.jl:1981 [inlined] in (::Base.##622#623{Base.#eval_ew_expr,Tuple{Expr},Array{Any,1}})() at .\multi.jl:1030 in run_work_thunk(::Base.##622#623{Base.#eval_ew_expr,Tuple{Expr},Array{Any,1}}, ::Bool) at .\multi.jl:1001 in #remotecall_fetch#627(::Array{Any,1}, ::Function, ::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in remotecall_fetch(::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in #remotecall_fetch#631(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in remotecall_fetch(::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in (::##25#27)() at .\multi.jl:1967 in #remotecall_fetch#627(::Array{Any,1}, ::Function, ::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1056 in remotecall_fetch(::Function, ::Base.LocalProcess, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1055 in #remotecall_fetch#631(::Array{Any,1}, ::Function, ::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in remotecall_fetch(::Function, ::Int64, ::Expr, ::Vararg{Expr,N}) at .\multi.jl:1080 in (::##25#27)() at .\multi.jl:1967 while loading C:\JuliaPro-0.5.2.2\Japp\genie.jl, in expression starting on line 32 in include_from_node1 at base\loading.jl:488 in anonymous at base\ in macro expansion; at base\multi.jl:1977 in sync_end at base\task.jl:311


Checked reference to the above directory "C:\JuliaPro-0.5.2.2\Japp\genie.jl in expression starting on line 32" and points to this line of code; 32 @everywhere Genie.run() + A similar issue was also found in an earlier post "C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Gumbo\deps\build.jl, in expression starting on line 19" : @BinDeps.install Dict(:libgumbo => :libgumbo)

wr125 commented 7 years ago

New update: tried the following attempts but still unable to resolve.

julia> Genie.REPL.new_app("demo_app")

2017-06-23T17:49:32.85 - info: Done! New app created at C:\JuliaPro-0.5.2.2\demo_app

2017-06-23T17:49:33.082 - info: Looking for dependencies

2017-06-23T17:49:33.082 - info: Checking for Flax rendering engine support

2017-06-23T17:49:33.082 - info: Finished adding dependencies

2017-06-23T17:49:33.082 - info: Starting your brand new Genie app - hang tight!

ERROR: could not spawn bin/repl: no such file or directory (ENOENT) in _jl_spawn(::String, ::Array{String,1}, ::Ptr{Void}, ::Base.Process, ::RawFD, ::RawFD, ::RawFD) at .\process.jl:321 in #426 at .\process.jl:478 [inlined] in setup_stdio(::Base.##426#427{Cmd,Ptr{Void},Base.Process}, ::Tuple{RawFD,RawFD,RawFD}) at .\process.jl:466 in #spawn#425(::Nullable{Base.ProcessChain}, ::Function, ::Cmd, ::Tuple{RawFD,RawFD,RawFD}, ::Bool, ::Bool) at .\process.jl:477 in run(::Cmd) at .\process.jl:591 in run_repl_app at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\REPL.jl:50 [inlined] in #new_app#1(::Bool, ::Bool, ::Function, ::String) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\REPL.jl:37 in new_app(::String) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\REPL.jl:23

julia>


AppServer.startup()

ERROR: UndefVarError: config not defined in startup(::Int64) at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\AppServer.jl:39 in startup() at C:\JuliaPro-0.5.2.2\pkgs-0.5.2.2\v0.5\Genie\src\AppServer.jl:22


@spawn AppServer.startup()

ERROR: LoadError: stat: unknown error (UNKNOWN) while loading C:\Users\RWillis\JuliaPro_Juno_0.5.2.2\packages\julia-client\script\boot.jl, in expression starting on line 34

Error loading Atom.jl package

Go to the Packages β†’ Julia β†’ Open Terminal menu and run Pkg.update()in Julia, then try again. If you still see an issue, please report it to: https://discourse.julialang.org/

Extra note; since the recent file update - within Juno's bottom left corner (label: console) we have a continual loop of what appears to be julia's server feed running in the background which wrongfully seen as continued updates. But julia's server ends upon ending the session on the menu list above and by clicking; stop julia (message) "Julia has stopped". Also, checked the server 0.0.0.0:8000... and at localhost:8000 to make sure but nothing.

hpoit commented 7 years ago

Hi @wr125, could you open a new issue, as your issue is not the same as mine? I would appreciate it. Cheers.

essenciary commented 7 years ago

@hpoit I haven't yet released a version of Genie for Julia 0.6 - the master is still on 0.5.

Looking at the stacktrace it looks like an error in one of the dependency packages, AbstractTrees - used in Gumbo - which is in turn used by Genie. So deep down the dependency stack.

You can try using Gumbo and open a new issue directly with the maintainer of the package, he's very helpful.

Now that 0.6 is out I'll prepare a new release for 0.6 in the next few days. But such issues with dependencies will be hard to address.

essenciary commented 7 years ago

@wr125 It seems that in the beginning there were different problems with the dependencies.

For the more recent issue, indeed, there is a problem with loading the app on windows. The app was successfully created, but loading it doesn't work. I'll release a patch in the next few days.

Until then you can just do this:

  1. if you're in Juno just restart the Julia server
  2. cd() into the Genie app's folder
  3. include("genie.jl")

That should bootstrap the app.

Sorry for the troubles, I'll look into it ASAP.

hpoit commented 7 years ago

Thanks Adrian, I got it to work in 0.5.2, I should be good for now. Cheers.

essenciary commented 7 years ago

@hpoit Glead to hear it πŸ‘

wr125 commented 7 years ago

Latest update:

Step 1 (Juno: console)

Pkg.update() INFO: Updating METADATA... INFO: Updating Genie master... INFO: Updating SQLite master... INFO: Updating Flax master... INFO: Computing changes... INFO: No packages to install, update or remove

Step 2 (Juno: console) Still within App (directory) using Genie ./genie.jl s syntax: "./" is not a unary operator genie.jl s syntax: extra token "s" after end of expression genie.jl UndefVarError: genie not defined

According to http://geniejl.readthedocs.io/en/stable/build/#Quick-start-1

Windows cannot cd into App directory as instructed using (Julia>) JuliaPro 0.5.2.2

Step 3 (Juno: console) include("genie.jl") | |__ |_| | | | -| | | -_| |___|_|||||

Starting Genie in >> DEV << mode using 1 worker(s) LoadError: UndefVarError: @dependencies not defined while loading C:\JuliaPro-0.5.2.2\Japp\genie.jl, in expression starting on line 30 in include_from_node1 at base\loading.jl:488 points to; result = Core.include(path)

Tried manual instructions;

julia -L genie.jl --color=yes --depwarn=no -q syntax: extra token "genie" after end of expression

Console runtime (Julia server) continually running in background has now been resolved.

wr125 commented 7 years ago

Correct me if i'm wrong but the loading.jl file is trying to retrieve a direct file path that is not stated (undefined)! If so, where would the string "C://....." be placed? Also, looks like the initial install of Julia's terminal directory is stored "C://JuliaPro-0.5./" where the web development environment boots from "C:\Users\UserName\AppData\Local\JuliaPro-0.5.2.2" and so here is where we get this conflict?!!

wr125 commented 7 years ago

Ubuntu!!!

essenciary commented 7 years ago

@wr125 The workflow in the documentation is 100% *nix based - so macos and linux only. That would not work for windows, I need to update it.

However, I have good news - I just finished adding support for windows for creating and starting Genie apps.

1 - please try again creating a new app, it should just work. Please let me know if that's not the case, I tested on Win 10, all good

2 - once you have the new app created, in bin/ you'll find new repl.bat and server.bat which are windows' version of shell scripts. You can just double click them to start an interactive Genie REPL or the web server respectively.

3 - from Juno or any other already running Julia environment, in order to load your existing Genie app, you need to: a. cd(...) into the root folder of your app b1. if you are not using Genie just include("genie.jl") b2. if you are using Genie, the include(...) approach won't work, you'll need to run Genie.REPL.run_repl_app() which spawns the Genie REPL as a separate process

Let me know how this works for you.

essenciary commented 7 years ago

@wr125 I've added extra instructions to run on Windows on the repo's README page

scheung38 commented 5 years ago
julia> using Genie

julia> Genie.REPL.run_repl_app()

 _____         _
|   __|___ ___|_|___
|  |  | -_|   | | -_|
|_____|___|_|_|_|___|

Starting Genie in >> DEV << mode 

How do I know it is running or not? I just get empty prompt. But localhost:8000 is not running? Please update the documentation as I simply cannot restart again an app that is already created.