softprops / serverless-aws-rust

⚡🏗️ template for new aws lambda serverless rust apps
94 stars 12 forks source link

Error E0658 following 'how to be a wizard' guide #9

Closed chrisboyce closed 4 years ago

chrisboyce commented 4 years ago

I get the following error while trying to follow the instructions for a serverless install

error[E0658]: the `#[non_exhaustive]` attribute is an experimental feature

Complete console output:

cboyce@lappy2000:~/tmp/serverless$ npx serverless install \
>   --url https://github.com/softprops/serverless-aws-rust \
>   --name my-new-app \
>   && cd my-new-app \
>   && npm ci \
>   && npx serverless deploy
Serverless: Downloading and installing "serverless-aws-rust"...
Serverless: Successfully installed "serverless-aws-rust" as "my-new-app"

> protobufjs@6.9.0 postinstall /home/cboyce/tmp/serverless/my-new-app/node_modules/protobufjs
> node scripts/postinstall

> serverless@1.71.3 postinstall /home/cboyce/tmp/serverless/my-new-app/node_modules/serverless
> node ./scripts/postinstall.js

   ┌───────────────────────────────────────────────────┐
   │                                                   │
   │   Serverless Framework successfully installed!    │
   │                                                   │
   │   To start your first project run 'serverless'.   │
   │                                                   │
   └───────────────────────────────────────────────────┘

added 855 packages in 5.292s
Serverless: Building native Rust hello func...
   Compiling proc-macro2 v1.0.18
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.30
   Compiling libc v0.2.71
   Compiling cfg-if v0.1.10
   Compiling lazy_static v1.3.0
   Compiling slab v0.4.2
   Compiling memchr v2.3.3
   Compiling futures-core v0.3.5
   Compiling proc-macro-hack v0.5.16
   Compiling proc-macro2 v0.4.30
   Compiling version_check v0.9.2
   Compiling futures-sink v0.3.5
   Compiling unicode-xid v0.1.0
   Compiling proc-macro-nested v0.1.4
   Compiling fnv v1.0.6
   Compiling once_cell v1.4.0
   Compiling bytes v0.5.4
   Compiling pin-utils v0.1.0
   Compiling itoa v0.4.4
   Compiling futures-io v0.3.5
   Compiling arc-swap v0.4.6
   Compiling syn v0.15.33
   Compiling pin-project-lite v0.1.6
   Compiling ryu v0.2.8
   Compiling serde v1.0.90
   Compiling httparse v1.3.3
   Compiling try-lock v0.2.2
   Compiling indexmap v1.0.2
   Compiling tower-service v0.3.0
   Compiling genawaiter-macro v0.99.1
   Compiling log v0.4.6
   Compiling tracing-core v0.1.10
   Compiling sharded-slab v0.0.9
   Compiling futures-channel v0.3.5
   Compiling futures-task v0.3.5
   Compiling http v0.2.1
   Compiling want v0.3.0
   Compiling proc-macro-error-attr v0.4.12
   Compiling proc-macro-error v0.4.12
   Compiling tracing-subscriber v0.2.5
   Compiling quote v1.0.6
   Compiling quote v0.6.12
   Compiling net2 v0.2.33
   Compiling iovec v0.1.4
   Compiling num_cpus v1.10.0
   Compiling signal-hook-registry v1.2.0
   Compiling time v0.1.42
   Compiling socket2 v0.3.12
   Compiling mio v0.6.22
   Compiling http-body v0.3.1
   Compiling mio-uds v0.6.7
   Compiling serde_derive v1.0.90
   Compiling syn-mid v0.5.0
   Compiling pin-project-internal v0.4.17
   Compiling futures-macro v0.3.5
   Compiling tokio-macros v0.2.5
   Compiling tracing-attributes v0.1.8
   Compiling lambda-attributes v0.1.0 (https://github.com/awslabs/aws-lambda-rust-runtime/#ed3fd167)
   Compiling serde_json v1.0.39
   Compiling genawaiter-proc-macro v0.99.1
   Compiling tokio v0.2.21
   Compiling tokio-util v0.3.1
   Compiling tracing v0.1.14
   Compiling tracing-error v0.1.2
   Compiling pin-project v0.4.17
   Compiling futures-util v0.3.5
   Compiling tracing-futures v0.2.4
   Compiling genawaiter v0.99.1
   Compiling h2 v0.2.5
   Compiling futures-executor v0.3.5
   Compiling futures v0.3.5
   Compiling hyper v0.13.6
   Compiling lambda v0.1.0 (https://github.com/awslabs/aws-lambda-rust-runtime/#ed3fd167)
error[E0658]: the `#[non_exhaustive]` attribute is an experimental feature
  --> /root/.cargo/git/checkouts/aws-lambda-rust-runtime-7c865cce90132439/ed3fd16/lambda/src/types.rs:95:1
   |
95 | #[non_exhaustive]
   | ^^^^^^^^^^^^^^^^^
   |
   = note: for more information, see https://github.com/rust-lang/rust/issues/44109

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: could not compile `lambda`.
warning: build failed, waiting for other jobs to finish...
error: build failed
Serverless: Dockerized Rust build encountered an error: undefined 1.

  Error --------------------------------------------------

  Error: 
      at /home/cboyce/tmp/serverless/my-new-app/node_modules/serverless-rust/index.js:129:15
      at Array.forEach (<anonymous>)
      at RustPlugin.build (/home/cboyce/tmp/serverless/my-new-app/node_modules/serverless-rust/index.js:110:22)
      at /home/cboyce/tmp/serverless/my-new-app/node_modules/serverless/lib/classes/PluginManager.js:490:55
      at tryCatcher (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/util.js:16:23)
      at Object.gotValue (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/reduce.js:168:18)
      at Object.gotAccum (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/reduce.js:155:25)
      at Object.tryCatcher (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/promise.js:547:31)
      at Promise._settlePromise (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/promise.js:604:18)
      at Promise._settlePromise0 (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/promise.js:649:10)
      at Promise._settlePromises (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/promise.js:729:18)
      at _drainQueueStep (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/async.js:93:12)
      at _drainQueue (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/async.js:86:9)
      at Async._drainQueues (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/async.js:102:5)
      at Immediate.Async.drainQueues [as _onImmediate] (/home/cboyce/tmp/serverless/my-new-app/node_modules/bluebird/js/release/async.js:15:14)
      at processImmediate (internal/timers.js:456:21)
      at process.topLevelDomainCallback (domain.js:137:15)

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          linux
     Node Version:              12.16.1
     Framework Version:         1.71.3
     Plugin Version:            3.6.12
     SDK Version:               2.3.1
     Components Version:        2.30.12

cboyce@lappy2000:~/tmp/serverless/my-new-app$ 

Some (hopefully relevant) system information


cboyce@lappy2000:~/tmp/serverless/my-new-app$ rustup --version
rustup 1.21.1 (7832b2ebe 2019-12-20)
cboyce@lappy2000:~/tmp/serverless/my-new-app$ rustc --version
rustc 1.44.1 (c7087fe00 2020-06-17)
cboyce@lappy2000:~/tmp/serverless/my-new-app$ cargo --version
cargo 1.44.1 (88ba85757 2020-06-11)
cboyce@lappy2000:~/tmp/serverless/my-new-app$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:    18.04
Codename:   bionic
cboyce@lappy2000:~/tmp/serverless/my-new-app$ 
softprops commented 4 years ago

Thanks for reporting the issue.

I spotted the problem.

non_exhaustive has been stable since 1.40.0 but this template is using 0.3.7 version of the serverless plugin was the release prior the release bumping the rust version, 0.3.8

softprops commented 4 years ago

this should now be fixed