forester-bt / forester

unleash the power of behavior trees!
https://forester-bt.github.io/forester/
Apache License 2.0
35 stars 5 forks source link

Main branch not building #68

Closed samouwow closed 4 months ago

samouwow commented 4 months ago

The main branch does not build in Ubuntu Linux, and fails with the following Cargo output:

    Checking forester-rs v0.3.2 (/workspaces/forester)
error[E0432]: unresolved import `hyper::client`
  --> src/runtime/action/builtin/remote.rs:6:12
   |
6  | use hyper::client::HttpConnector;
   |            ^^^^^^ could not find `client` in `hyper`
   |
note: found an item that was configured out
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:99:13
   |
99 |     pub mod client;
   |             ^^^^^^
   = note: the item is gated behind the `client` feature

error[E0432]: unresolved import `hyper::Client`
   --> src/runtime/action/builtin/remote.rs:7:25
    |
7   | use hyper::{body, Body, Client, Method, Request};
    |                         ^^^^^^ no `Client` in the root
    |
    = help: consider importing one of these items instead:
            reqwest::Client
            reqwest::blocking::Client
            tungstenite::protocol::Role::Client
note: found an item that was configured out
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:102:28
    |
102 |     pub use crate::client::Client;
    |                            ^^^^^^
    = note: the item is gated behind the `client` feature

error[E0432]: unresolved import `hyper::client`
  --> src/runtime/forester/serv.rs:13:12
   |
13 | use hyper::client::HttpConnector;
   |            ^^^^^^ could not find `client` in `hyper`
   |
note: found an item that was configured out
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:99:13
   |
99 |     pub mod client;
   |             ^^^^^^
   = note: the item is gated behind the `client` feature

error[E0432]: unresolved import `hyper::Client`
   --> src/runtime/forester/serv.rs:16:19
    |
16  | use hyper::{Body, Client};
    |                   ^^^^^^ no `Client` in the root
    |
    = help: consider importing one of these items instead:
            reqwest::Client
            reqwest::blocking::Client
            tungstenite::protocol::Role::Client
note: found an item that was configured out
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:102:28
    |
102 |     pub use crate::client::Client;
    |                            ^^^^^^
    = note: the item is gated behind the `client` feature

error[E0433]: failed to resolve: could not find `Client` in `hyper`
   --> src/runtime/action/builtin/remote.rs:64:24
    |
64  |                 hyper::Client::builder().build(HttpConnector::new());
    |                        ^^^^^^ could not find `Client` in `hyper`
    |
note: found an item that was configured out
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:102:28
    |
102 |     pub use crate::client::Client;
    |                            ^^^^^^
    = note: the item is gated behind the `client` feature
help: consider importing one of these items
    |
1   + use reqwest::Client;
    |
1   + use reqwest::blocking::Client;
    |
help: if you import `Client`, refer to it directly
    |
64  -                 hyper::Client::builder().build(HttpConnector::new());
64  +                 Client::builder().build(HttpConnector::new());
    |

error[E0433]: failed to resolve: could not find `Client` in `hyper`
   --> src/runtime/forester/serv.rs:92:64
    |
92  |                 let client:Client<HttpConnector,Body> = hyper::Client::builder().build(HttpConnector::new());
    |                                                                ^^^^^^ could not find `Client` in `hyper`
    |
note: found an item that was configured out
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-0.14.27/src/lib.rs:102:28
    |
102 |     pub use crate::client::Client;
    |                            ^^^^^^
    = note: the item is gated behind the `client` feature
help: consider importing one of these items
    |
3   + use reqwest::Client;
    |
3   + use reqwest::blocking::Client;
    |
help: if you import `Client`, refer to it directly
    |
92  -                 let client:Client<HttpConnector,Body> = hyper::Client::builder().build(HttpConnector::new());
92  +                 let client:Client<HttpConnector,Body> = Client::builder().build(HttpConnector::new());
    |

warning: unused doc comment
  --> src/runtime/action/builtin/remote.rs:65:13
   |
65 |             /// todo with vec is slow. Bytes?
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66 |             let body_js = serde_json::to_vec(&request).unwrap();
   |             ---------------------------------------------------- rustdoc does not generate documentation for statements
   |
   = help: use `//` for a plain comment
   = note: `#[warn(unused_doc_comments)]` on by default

warning: unused import: `format`
  --> src/runtime/args.rs:17:16
   |
17 | use std::fmt::{format, Display, Formatter};
   |                ^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: unused import: `RtArgument`
 --> src/runtime/forester/decorator.rs:1:36
  |
1 | use crate::runtime::args::{RtArgs, RtArgument, RtValue, RtValueNumber};
  |                                    ^^^^^^^^^^

warning: unused import: `FlowType`
  --> src/runtime/rtree.rs:11:51
   |
11 | use crate::runtime::rtree::rnode::{DecoratorType, FlowType, RNode, RNodeId};
   |                                                   ^^^^^^^^

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
    --> src/runtime/action/builtin/remote.rs:77:22
     |
77   |                     .and_then(|bytes| to_fail(serde_json::from_slice::<TickResult>(&bytes))),
     |                      ^^^^^^^^ doesn't have a size known at compile-time
     |
     = help: the trait `Sized` is not implemented for `[u8]`
note: required by a bound in `Result::<T, E>::and_then`
    --> /home/user/.rustup/toolchains/1.79.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:518:6
     |
518  | impl<T, E> Result<T, E> {
     |      ^ required by this bound in `Result::<T, E>::and_then`
...
1319 |     pub fn and_then<U, F: FnOnce(T) -> Result<U, E>>(self, op: F) -> Result<U, E> {
     |            -------- required by a bound in this associated function

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> src/runtime/action/builtin/remote.rs:77:32
   |
77 |                     .and_then(|bytes| to_fail(serde_json::from_slice::<TickResult>(&bytes))),
   |                                ^^^^^ doesn't have a size known at compile-time
   |
   = help: the trait `Sized` is not implemented for `[u8]`
   = note: all function arguments must have a statically known size

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
   --> src/runtime/action/builtin/remote.rs:76:34
    |
76  |                 Ok(r) => to_fail(body::to_bytes(r.into_body()).await)
    |                          ------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
    |                          |
    |                          required by a bound introduced by this call
    |
    = help: the trait `Sized` is not implemented for `[u8]`
note: required by an implicit `Sized` bound in `to_fail`
   --> src/runtime.rs:124:16
    |
124 | pub fn to_fail<V, E: Debug>(r: Result<V, E>) -> RtResult<V> {
    |                ^ required by the implicit `Sized` requirement on this type parameter in `to_fail`
help: consider relaxing the implicit `Sized` restriction
   --> src/runtime.rs:124:17
    |
124 | pub fn to_fail<V: ?Sized, E: Debug>(r: Result<V, E>) -> RtResult<V> {
    |                 ++++++++

error[E0277]: the trait bound `fn(axum::extract::State<serv::HttpServ>, axum::Json<CustomEvent>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::trace}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:136:39
    |
136 |         .route("/tracer/custom", post(trace))
    |                                  ---- ^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(State<HttpServ>, Json<CustomEvent>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {trace}`
    |                                  |
    |                                  required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `post`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:407:1
    |
407 | top_level_handler_fn!(post, POST);
    | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `post`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::print_trace}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:137:37
    |
137 |         .route("/tracer/print", get(print_trace))
    |                                 --- ^^^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {print_trace}`
    |                                 |
    |                                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_lock}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:138:37
    |
138 |         .route("/bb/:key/lock", get(bb_lock))
    |                                 --- ^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {bb_lock}`
    |                                 |
    |                                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_unlock}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:139:39
    |
139 |         .route("/bb/:key/unlock", get(bb_unlock))
    |                                   --- ^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {bb_unlock}`
    |                                   |
    |                                   required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_is_locked}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:140:39
    |
140 |         .route("/bb/:key/locked", get(bb_is_locked))
    |                                   --- ^^^^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, ...>>> {bb_is_locked}`
    |                                   |
    |                                   required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_contains}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:141:41
    |
141 |         .route("/bb/:key/contains", get(bb_contains))
    |                                     --- ^^^^^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {bb_contains}`
    |                                     |
    |                                     required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_take}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:142:37
    |
142 |         .route("/bb/:key/take", get(bb_take))
    |                                 --- ^^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {bb_take}`
    |                                 |
    |                                 required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>, axum::Json<RtValue>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_put}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:143:33
    |
143 |         .route("/bb/:key", post(bb_put))
    |                            ---- ^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>, Json<RtValue>) -> impl Future<Output = Response<...>> {bb_put}`
    |                            |
    |                            required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `post`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:407:1
    |
407 | top_level_handler_fn!(post, POST);
    | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `post`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0277]: the trait bound `fn(axum::extract::Path<std::string::String>, axum::extract::State<serv::HttpServ>) -> impl Future<Output = hyper::Response<http_body::combinators::box_body::UnsyncBoxBody<hyper::body::Bytes, axum::Error>>> {routes::bb_get}: Handler<_, _, _>` is not satisfied
   --> src/runtime/forester/serv.rs:144:32
    |
144 |         .route("/bb/:key", get(bb_get))
    |                            --- ^^^^^^ the trait `Handler<_, _, _>` is not implemented for fn item `fn(Path<String>, State<HttpServ>) -> impl Future<Output = Response<UnsyncBoxBody<Bytes, Error>>> {bb_get}`
    |                            |
    |                            required by a bound introduced by this call
    |
    = help: the following other types implement trait `Handler<T, S, B>`:
              <Layered<L, H, T, S, B, B2> as Handler<T, S, B2>>
              <MethodRouter<S, B> as Handler<(), S, B>>
note: required by a bound in `axum::routing::get`
   --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/axum-0.6.20/src/routing/method_routing.rs:403:1
    |
403 | top_level_handler_fn!(get, GET);
    | ^^^^^^^^^^^^^^^^^^^^^^---^^^^^^
    | |                     |
    | |                     required by a bound in this function
    | required by this bound in `get`
    = note: this error originates in the macro `top_level_handler_fn` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: unused import: `Impl`
 --> src/runtime/action/builtin/remote.rs:1:30
  |
1 | use crate::runtime::action::{Impl, ImplRemote, Tick};
  |                              ^^^^

warning: unused import: `Write`
 --> src/tree/parser/ast/arg.rs:8:36
  |
8 | use std::fmt::{Display, Formatter, Write};
  |                                    ^^^^^

warning: unused import: `DaemonFn`
  --> src/runtime/env.rs:16:35
   |
16 | use crate::runtime::env::daemon::{DaemonFn, DaemonName, Daemon};
   |                                   ^^^^^^^^

warning: unused variable: `id`
  --> src/runtime/rtree/analyzer.rs:46:21
   |
46 |             .find(|(id, node)| filter(node))
   |                     ^^ help: if this is intentional, prefix it with an underscore: `_id`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `parent_args`
   --> src/runtime/rtree.rs:140:32
    |
140 |                     let (p_id, parent_args, parent_params) =
    |                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_args`

warning: unused variable: `parent_params`
   --> src/runtime/rtree.rs:140:45
    |
140 |                     let (p_id, parent_args, parent_params) =
    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_parent_params`

warning: irrefutable `if let` pattern
   --> src/simulator/builder.rs:115:12
    |
115 |         if let TracerSimConfig { file, dt_fmt } = profile.config.tracer {
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: this pattern will always match, so the `if let` is useless
    = help: consider replacing the `if let` with a `let`
    = note: `#[warn(irrefutable_let_patterns)]` on by default

Some errors have detailed explanations: E0277, E0432, E0433.
For more information about an error, try `rustc --explain E0277`.
warning: `forester-rs` (lib) generated 11 warnings
error: could not compile `forester-rs` (lib) due to 18 previous errors; 11 warnings emitted

In case it helps, the version of rustc used for the above cargo build was rustc 1.79.0 (129f3b996 2024-06-10). The dockerfile used to build the container the above output from taken from was:

FROM ubuntu:22.04
ARG USERNAME=user

# Install sudo
RUN apt-get update && apt install -y sudo

# Create a non-root user
RUN useradd -m --groups sudo --shell /bin/bash ${USERNAME}
# Users can add their own password later if desired
RUN passwd -d ${USERNAME}
USER ${USERNAME}

RUN mkdir -p /home/${USERNAME}/workspace && echo "Did you forget to mount the repository into the Docker container?" > ~/workspace/HELLO.txt
WORKDIR /home/${USERNAME}/workspace

# Unminimise the OS since we'll be developing within it ("yes" command makes "unminimize" uninteractive)
# RUN yes | sudo unminimize

# Update the package repository and install foundational packages
RUN sudo apt-get install -y \
    man \
    nano \
    git \
    tig \
    tree \
    build-essential \
    htop \
    bash-completion \
    pkg-config \
    libssl-dev

# Install Rust and the cargo-ament-build plugin
RUN sudo apt-get install -y \
    curl \
    libclang-dev
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable -y
ENV PATH=/home/${USERNAME}/.cargo/bin:$PATH
besok commented 4 months ago

the commit should fix the problem with deps.