framesurge / perseus

A state-driven web development framework for Rust with full support for server-side rendering and static generation.
https://framesurge.sh/perseus/en-US
MIT License
2.16k stars 90 forks source link

Perseus Deploy fails to generate the app every time by following tutorial. #332

Open strottos opened 4 hours ago

strottos commented 4 hours ago

This issue is reporting a bug in the code of Perseus. Details of the scope will be available in issue labels. The author described their issue as follows:

Every time I try and run perseus deploy of any variety it doesn't work but doesn't give much information. Firstly I'd like to know what failed and why, secondly I've followed the tutorial exactly so I'd expect it to compile. Wondering if it's some incompatibility with the latest cargo/rustc/etc maybe as I did do a rustup update recently before this, but it's the same for nightly and stable.

Output:

⢀ [1/4] 🔨 Generating your app...
⢀ [2/4] 🏗️  Building your app to Wasm...
⠠ [3/4] 📡 Building server...
    Blocking waiting for file lock on package cache
  [1/4] 🔨 Generating your app...❌
⠠ [2/4] 🏗️  Building your app to Wasm...
  [3/4] 📡 Building server...✅
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on package cache
    Blocking waiting for file lock on build directory
    Finished `release` profile [optimized] target(s) in 0.20s
     Running `dist/target_engine/release/fe`
  [1/4] 🔨 Generating your app...❌
  [2/4] 🏗️  Building your app to Wasm...✅
  [3/4] 📡 Building server...✅

Exit code: 1

If I run the program it outputs I get:

thread 'main' panicked at /home/strotter/.cargo/registry/src/index.crates.io-6f17d22bba15001f/perseus-0.4.2/src/turbine/mod.rs:105:18:
you must provide your own error pages in production
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Also perceus build and perceus serve work fine.

The steps to reproduce this issue are as follows:

Simply followed the tutorial. Using Centos Linux with rustc/cargo 1.82.0,

Also happens if I use the latest code in git. Suspect it's specific to my system but the same happens in a docker ubuntu container.

A minimum reproducible example is available at .

Tribble internal data dHJpYmJsZS1yZXBvcnRlZCxDLWJ1ZyxBLWNsaSxhdXRob3Itd2lsbGluZy10by1pbXBs
strottos commented 4 hours ago

Actually looking into this even slightly, I see the error is coming from the following line:

            error_views: app
                .error_views
                .expect("you must provide your own error pages in production"),

Which makes it pretty clear it's something I've failed to do, however the CLI should really report what the error was and it doesn't. I think getting the CLI to output the error would be a big improvement and I would consider that sufficient for this issue.