[staging-next] mkPulumiPackage: remove Python version test

We don't have pip in the sandbox anymore and this should be covered by the build tools anyway.
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Never mind, doesn't actually build. Still should probably be applied at some point.


work in progress: gevent 20.6

For the record, the last build on Travis CI before I just force-pushed -- with relevant build failures (from 4 months ago): https://travis-ci.org/github/jgehrcke/gipc/builds/727038093

For the record, the last build on Travis CI before I just force-pushed -- with relevant build failures (from 4 months ago): https://travis-ci.org/github/jgehrcke/gipc/builds/727038093

Hangup, cancelled manually:
test/test_gipc.py::TestComplexUseCases::test_multi_duplex ERROR          [ 97%]
test/test_gipc.py::TestSignals::test_orphaned_signal_watcher FAILED      [ 98%]
Error: The operation was canceled.

https://github.com/jgehrcke/gipc/pull/102/checks?check_run_id=1637529375#step:5:95
Tried to reproduce locally, with a tiny but of debug-logging. Passed locally:
± pytest --log-level=debug -vvv -s -k test_orphaned_signal_watcher
====================================================================== test session starts =======================================================================
platform linux -- Python 3.8.6, pytest-4.6.9, py-1.10.0, pluggy-0.13.1 -- /home/jp/.pyenv/versions/3.8.6/envs/386-gipc-local-dev/bin/python3.8
cachedir: .pytest_cache
rootdir: /home/jp/dev/gipc
plugins: cov-2.6.1
collected 82 items / 81 deselected / 1 selected

test_gipc.py::TestSignals::test_orphaned_signal_watcher 21:53:06,657.2  [769682]test_orphaned_signal_watcher# start process
21:53:06,657.3  [769682]start_process# Invoke target `<function signals_test_child_a at 0x7f0c7556caf0>` in child process.
21:53:06,659.0  [769682]start# SIGCHLD watcher for 769725 started.
21:53:06,659.7  [769682]start_process# Invalidate <_GIPCWriter_e25db8 fd: 6> in parent.
21:53:06,659.9  [769682]close# Invalidating <_GIPCWriter_e25db8 fd: 6> ...
21:53:06,660.1  [769725]_child# _child start. target: `<function signals_test_child_a at 0x7f0c7556caf0>`
21:53:06,660.6  [769725]_child# Delete current hub's threadpool.
21:53:06,660.8  [769725]_child# Destroy hub and default loop.
21:53:06,661.0  [769725]_child# Created new hub and default event loop.
21:53:06,661.1  [769725]_child# Invalidate <_GIPCReader_3a193e fd: 5> in child.
21:53:06,661.3  [769725]_set_legit_process# Legitimate <_GIPCReader_3a193e fd: 5> for current process.
21:53:06,661.4  [769725]close# Invalidating <_GIPCReader_3a193e fd: 5> ...
21:53:06,661.5  [769725]_set_legit_process# Legitimate <_GIPCWriter_e25db8 fd: 6> for current process.
21:53:06,661.6  [769725]_child# Handle `<_GIPCWriter_e25db8 fd: 6>` is now valid in child.
21:53:06,661.9  [769682]test_orphaned_signal_watcher# send signal to child
21:53:06,662.0  [769682]test_orphaned_signal_watcher# wait for child to terminate
21:53:06,663.5  [769682]_on_sigchld# SIGCHLD watcher callback for 769725 invoked. Exitcode stored: -15
21:53:06,663.7  [769682]close# Invalidating <_GIPCReader_3a193e fd: 5> ...
21:53:06,663.8  [769682]test_orphaned_signal_watcher# cancel signal handler/watcher
PASSED

============================================================ 1 passed, 81 deselected in 0.30 seconds =============================================================

Hangup, cancelled manually:
test/test_gipc.py::TestComplexUseCases::test_multi_duplex ERROR          [ 97%]
test/test_gipc.py::TestSignals::test_orphaned_signal_watcher FAILED      [ 98%]
Error: The operation was canceled.

https://github.com/jgehrcke/gipc/pull/102/checks?check_run_id=1637529375#step:5:95
Tried to reproduce locally, with a tiny but of debug-logging. Passed locally:
± pytest --log-level=debug -vvv -s -k test_orphaned_signal_watcher
====================================================================== test session starts =======================================================================
platform linux -- Python 3.8.6, pytest-4.6.9, py-1.10.0, pluggy-0.13.1 -- /home/jp/.pyenv/versions/3.8.6/envs/386-gipc-local-dev/bin/python3.8
cachedir: .pytest_cache
rootdir: /home/jp/dev/gipc
plugins: cov-2.6.1
collected 82 items / 81 deselected / 1 selected

test_gipc.py::TestSignals::test_orphaned_signal_watcher 21:53:06,657.2  [769682]test_orphaned_signal_watcher# start process
21:53:06,657.3  [769682]start_process# Invoke target `<function signals_test_child_a at 0x7f0c7556caf0>` in child process.
21:53:06,659.0  [769682]start# SIGCHLD watcher for 769725 started.
21:53:06,659.7  [769682]start_process# Invalidate <_GIPCWriter_e25db8 fd: 6> in parent.
21:53:06,659.9  [769682]close# Invalidating <_GIPCWriter_e25db8 fd: 6> ...
21:53:06,660.1  [769725]_child# _child start. target: `<function signals_test_child_a at 0x7f0c7556caf0>`
21:53:06,660.6  [769725]_child# Delete current hub's threadpool.
21:53:06,660.8  [769725]_child# Destroy hub and default loop.
21:53:06,661.0  [769725]_child# Created new hub and default event loop.
21:53:06,661.1  [769725]_child# Invalidate <_GIPCReader_3a193e fd: 5> in child.
21:53:06,661.3  [769725]_set_legit_process# Legitimate <_GIPCReader_3a193e fd: 5> for current process.
21:53:06,661.4  [769725]close# Invalidating <_GIPCReader_3a193e fd: 5> ...
21:53:06,661.5  [769725]_set_legit_process# Legitimate <_GIPCWriter_e25db8 fd: 6> for current process.
21:53:06,661.6  [769725]_child# Handle `<_GIPCWriter_e25db8 fd: 6>` is now valid in child.
21:53:06,661.9  [769682]test_orphaned_signal_watcher# send signal to child
21:53:06,662.0  [769682]test_orphaned_signal_watcher# wait for child to terminate
21:53:06,663.5  [769682]_on_sigchld# SIGCHLD watcher callback for 769725 invoked. Exitcode stored: -15
21:53:06,663.7  [769682]close# Invalidating <_GIPCReader_3a193e fd: 5> ...
21:53:06,663.8  [769682]test_orphaned_signal_watcher# cancel signal handler/watcher
PASSED

============================================================ 1 passed, 81 deselected in 0.30 seconds =============================================================


chore(codepush): disable codepush dialog

This PR resolves PHIRE-402
Description

Disables the codepush update dialog and updates the docs, we talked about in retro and the dialog is pretty annoying DX.
PR Checklist

[ ] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Only allow manual updates for codepush in betas + dev - Brian

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (Only allow manual updates for codepush in betas + dev - Brian)
undefined (changes)

  Generated by :no_entry_sign: dangerJS against b33ebc1b178af2b628d70d22c0708b821679f8ea


chore: INT-2136 add uniform license tags

Current dependencies on/for this PR:

main

PR #476   👈

This stack of pull requests is managed by Graphite.


Build wstunnel 9.2.2

Describe the bug
When building rust from source getting errors:
Some errors have detailed explanations: E0562, E0706.
For more information about an error, try rustc --explain E0562.
error: could not compile wstunnel (bin "wstunnel") due to 34 previous errors
Do i miss any dependencies to build it?
#Compilation in Windows = success without errors
cargo build  #Debug 22mb
cargo build --release # 7mb
To Reproduce
sudo apt install curl git cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/erebe/wstunnel.git
cd wstunnel
cargo build
Expected behavior
Build completed successfully
Screenshots
Desktop (please complete the following information):
Ubuntu 22.04.3 LTS
rustc 1.73.0 (cc66ad468 2023-10-03) (built from a source tarball)
Additional context
user@compiler:~/wstunnel$ cargo build    Compiling wstunnel v9.2.2 (/home/user/wstunnel) error[E0706]: functions in traits cannot be declared async  --> src/tunnel/transport/http2.rs:33:5    | 33 |     async fn copy(&mut self, mut writer: impl AsyncWrite + Unpin + Send) -> Result<(), io::Error> {    |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    |     |    |    asyncbecause of this    |    = note:asynctrait functions are not currently supported    = note: consider using theasync-trait` crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/http2.rs:76:5
|
76 |     async fn write(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/http2.rs:91:5
|
91 |     async fn ping(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/http2.rs:95:5
|
95 |     async fn close(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/websocket.rs:42:5
|
42 |     async fn write(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/websocket.rs:74:5
|
74 |     async fn ping(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/websocket.rs:86:5
|
86 |     async fn close(&mut self) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/websocket.rs:111:5
|
111 |     async fn copy(&mut self, mut writer: impl AsyncWrite + Unpin + Send) -> Result<(), io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0562]: impl Trait only allowed in function and inherent method return types, not in trait method return types
--> src/tunnel/transport/mod.rs:21:28
|
21 |     fn write(&mut self) -> impl Future<Output = Result<(), std::io::Error>> + Send;
|                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0562]: impl Trait only allowed in function and inherent method return types, not in trait method return types
--> src/tunnel/transport/mod.rs:22:27
|
22 |     fn ping(&mut self) -> impl Future<Output = Result<(), std::io::Error>> + Send;
|                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0562]: impl Trait only allowed in function and inherent method return types, not in trait method return types
--> src/tunnel/transport/mod.rs:23:28
|
23 |     fn close(&mut self) -> impl Future<Output = Result<(), std::io::Error>> + Send;
|                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0562]: impl Trait only allowed in function and inherent method return types, not in trait method return types
--> src/tunnel/transport/mod.rs:30:10
|
30 |     ) -> impl Future<Output = Result<(), std::io::Error>> + Send;
|          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/mod.rs:39:5
|
39 |     async fn copy(&mut self, writer: impl AsyncWrite + Unpin + Send) -> Result<(), std::io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/mod.rs:60:5
|
60 |     async fn write(&mut self) -> Result<(), std::io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/mod.rs:67:5
|
67 |     async fn ping(&mut self) -> Result<(), std::io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error[E0706]: functions in traits cannot be declared async
--> src/tunnel/transport/mod.rs:74:5
|
74 |     async fn close(&mut self) -> Result<(), std::io::Error> {
|     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|     |
|     async because of this
|
= note: async trait functions are not currently supported
= note: consider using the async-trait crate: https://crates.io/crates/async-trait
= note: see issue #91611 https://github.com/rust-lang/rust/issues/91611 for more information
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/client.rs:49:9
|
48  |       tokio::spawn(
|       ------------ required by a bound introduced by this call
49  | /         super::transport::io::propagate_local_to_remote(local_rx, ws_tx, close_tx, Some(ping_freque...
50  | |             .instrument(Span::current()),
| |________________________________________^
|
note: opaque type is declared here
--> src/tunnel/transport/io.rs:17:6
|
17  | ) -> anyhow::Result<()> {
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/client.rs:18:10
|
18  | async fn connect_to_server<R, W>(
|          ^^^^^^^^^^^^^^^^^
note: required because it appears within the type ManuallyDrop<impl Future<Output = Result<(), Error>>>
--> /build/rustc-Nv44LE/rustc-1.73.0+dfsg0ubuntu1~bpo0/library/core/src/mem/manually_drop.rs:50:12
note: required because it appears within the type Instrumented<impl Future<Output = Result<(), Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:266:16
|
266 |     pub struct Instrumented {
|                ^^^^^^^^^^^^
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/tunnel/client.rs:83:22
|
83  |         tokio::spawn(tunnel);
|                      ^^^^^^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:23:6
|
23  | ) -> anyhow::Result<()>
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/client.rs:59:14
|
59  | pub async fn run_tunnel<T, R, W>(client_config: Arc, incoming_cnx: T) -> anyhow::Resu...
|              ^^^^^^^^^^
note: future is not Send as it awaits another future which is not Send
--> src/tunnel/client.rs:77:21
|
77  |             let _ = connect_to_server(request_id, &client_config, &remote_addr, cnx_stream)
|                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type impl futures_util::Future<Output = Result<(), anyhow::Error>>, which is not Send
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/client.rs:156:17
|
155 |   ...   tokio::spawn(
|         ------------ required by a bound introduced by this call
156 | / ...       super::transport::io::propagate_local_to_remote(local_rx, ws_tx, close_tx, Some(ping_freq...
157 | | ...           .instrument(Span::current()),
| |__________________________________________^
|
note: opaque type is declared here
--> src/tunnel/transport/io.rs:17:6
|
17  | ) -> anyhow::Result<()> {
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/client.rs:89:14
|
89  | pub async fn run_reverse_tunnel<F, Fut, T>(
|              ^^^^^^^^^^^^^^^^^^
note: required because it appears within the type ManuallyDrop<impl Future<Output = Result<(), Error>>>
--> /build/rustc-Nv44LE/rustc-1.73.0+dfsg0ubuntu1~bpo0/library/core/src/mem/manually_drop.rs:50:12
note: required because it appears within the type Instrumented<impl Future<Output = Result<(), Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:266:16
|
266 |     pub struct Instrumented {
|                ^^^^^^^^^^^^
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/server.rs:415:17
|
414 |   ...   tokio::task::spawn(
|         ------------------ required by a bound introduced by this call
415 | / ...       super::transport::io::propagate_remote_to_local(local_tx, WebsocketTunnelRead::new(ws_rx)...
416 | | ...           .instrument(Span::current()),
| |__________________________________________^
|
note: opaque type is declared here
--> src/tunnel/transport/io.rs:80:6
|
80  | ) -> anyhow::Result<()> {
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/server.rs:338:10
|
338 | async fn ws_server_upgrade(
|          ^^^^^^^^^^^^^^^^^
note: required because it appears within the type ManuallyDrop<impl Future<Output = Result<(), Error>>>
--> /build/rustc-Nv44LE/rustc-1.73.0+dfsg0ubuntu1~bpo0/library/core/src/mem/manually_drop.rs:50:12
note: required because it appears within the type Instrumented<impl Future<Output = Result<(), Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:266:16
|
266 |     pub struct Instrumented {
|                ^^^^^^^^^^^^
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/server.rs:509:17
|
508 |   ...   tokio::task::spawn(
|         ------------------ required by a bound introduced by this call
509 | / ...       super::transport::io::propagate_remote_to_local(local_tx, Http2TunnelRead::new(ws_rx), cl...
510 | | ...           .instrument(Span::current()),
| |__________________________________________^
|
note: opaque type is declared here
--> src/tunnel/transport/io.rs:80:6
|
80  | ) -> anyhow::Result<()> {
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/server.rs:447:10
|
447 | async fn http_server_upgrade(
|          ^^^^^^^^^^^^^^^^^^^
note: required because it appears within the type ManuallyDrop<impl Future<Output = Result<(), Error>>>
--> /build/rustc-Nv44LE/rustc-1.73.0+dfsg0ubuntu1~bpo0/library/core/src/mem/manually_drop.rs:50:12
note: required because it appears within the type Instrumented<impl Future<Output = Result<(), Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tracing-0.1.40/src/instrument.rs:266:16
|
266 |     pub struct Instrumented {
|                ^^^^^^^^^^^^
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/server.rs:656:85
|
656 | ...   let con_fut = conn_builder.serve_connection(tls_stream, service_fn(http_upgrade_fn));
|                                  ----------------             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|                                  |
|                                  required by a bound introduced by this call
|
note: opaque type is declared here
--> src/tunnel/server.rs:451:6
|
451 | ) -> Response<Either<String, BoxBody<Bytes, anyhow::Error>>> {
|      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/server.rs:557:14
|
557 | pub async fn run_server(server_config: Arc) -> anyhow::Result<()> {
|              ^^^^^^^^^^
note: required because it appears within the type Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/map.rs:15:14
|
15  |     pub enum Map<Fut, F> {
|              ^^^
note: required because it appears within the type Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/mod.rs:50:5
|
50  |     Map<Fut, F>(
|     ^^^
note: required because it appears within the type H2StreamState<Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>, Either<String, BoxBody<Bytes, Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-1.1.0/src/proto/h2/server.rs:357:10
|
357 |     enum H2StreamState<F, B>
|          ^^^^^^^^^^^^^
note: required because it appears within the type H2Stream<Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>, Either<String, BoxBody<Bytes, Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-1.1.0/src/proto/h2/server.rs:345:16
|
345 |     pub struct H2Stream<F, B>
|                ^^^^^^^^
= note: required for TokioExecutor to implement hyper::rt::Executor<hyper::proto::h2::server::H2Stream<futures_util::future::Map<impl futures_util::Future<Output = hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>, fn(hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>) -> Result<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error> {Result::<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error>::Ok}>, http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>
= note: required for TokioExecutor to implement Http2ServerConnExec<futures_util::future::Map<impl futures_util::Future<Output = hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>, fn(hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>) -> Result<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error> {Result::<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error>::Ok}>, http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>
note: required by a bound in hyper::server::conn::http2::Builder::<E>::serve_connection
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-1.1.0/src/server/conn/http2.rs:265:12
|
258 |     pub fn serve_connection<S, I, Bd>(&self, io: I, service: S) -> Connection<I, S, E>
|            ---------------- required by a bound in this associated function
...
265 |         E: Http2ServerConnExec<S::Future, Bd>,
|            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in Builder::<E>::serve_connection
error: cannot check whether the hidden type of opaque type satisfies auto traits
--> src/tunnel/server.rs:657:53
|
657 | ...                   if let Err(e) = con_fut.await {
|                                               ^^^^^
|
note: opaque type is declared here
--> src/tunnel/server.rs:451:6
|
451 | ) -> Response<Either<String, BoxBody<Bytes, anyhow::Error>>> {
|      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/tunnel/server.rs:557:14
|
557 | pub async fn run_server(server_config: Arc) -> anyhow::Result<()> {
|              ^^^^^^^^^^
note: required because it appears within the type Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/map.rs:15:14
|
15  |     pub enum Map<Fut, F> {
|              ^^^
note: required because it appears within the type Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/future/future/mod.rs:50:5
|
50  |     Map<Fut, F>(
|     ^^^
note: required because it appears within the type H2StreamState<Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>, Either<String, BoxBody<Bytes, Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-1.1.0/src/proto/h2/server.rs:357:10
|
357 |     enum H2StreamState<F, B>
|          ^^^^^^^^^^^^^
note: required because it appears within the type H2Stream<Map<impl Future<Output = Response<Either<String, BoxBody<Bytes, Error>>>>, fn(Response<Either<String, BoxBody<Bytes, Error>>>) -> Result<Response<Either<String, BoxBody<Bytes, Error>>>, Error> {Result::<Response<Either<String, BoxBody<Bytes, Error>>>, Error>::Ok}>, Either<String, BoxBody<Bytes, Error>>>
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/hyper-1.1.0/src/proto/h2/server.rs:345:16
|
345 |     pub struct H2Stream<F, B>
|                ^^^^^^^^
= note: required for TokioExecutor to implement hyper::rt::Executor<hyper::proto::h2::server::H2Stream<futures_util::future::Map<impl futures_util::Future<Output = hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>, fn(hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>) -> Result<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error> {Result::<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error>::Ok}>, http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>
= note: required for TokioExecutor to implement Http2ServerConnExec<futures_util::future::Map<impl futures_util::Future<Output = hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>>, fn(hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>) -> Result<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error> {Result::<hyper::Response<http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>, anyhow::Error>::Ok}>, http_body_util::Either<std::string::String, BoxBody<bytes::Bytes, anyhow::Error>>>
= note: required for Connection<TokioIo<TlsStream<TcpStream>>, ServiceFn<..., ...>, ...> to implement futures_util::Future
= note: the full type name has been written to '/home/user/wstunnel/target/debug/deps/wstunnel-40bf6074578ce8e3.long-type-12316116632852263644.txt'
= note: required for Connection<TokioIo<TlsStream<TcpStream>>, ServiceFn<..., ...>, ...> to implement std::future::IntoFuture
= note: the full type name has been written to '/home/user/wstunnel/target/debug/deps/wstunnel-40bf6074578ce8e3.long-type-12316116632852263644.txt'
error: future cannot be sent between threads safely
--> src/main.rs:772:38
|
772 |                           tokio::spawn(async move {
|  ______________________________________^
773 | |                             let remote = tunnel.remote.clone();
774 | |                             let cfg = client_config.clone();
775 | |                             let connect_to_dest = || async {
...   |
796 | |                             }
797 | |                         });
| |________________________^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:93:6
|
93  | ) -> anyhow::Result<()>
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:793:108
|
793 | ...           tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest).await
|               -------------------------------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) maybe used later
|               |
|               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
797 | ...   });
|       - tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:802:38
|
802 |                           tokio::spawn(async move {
|  ______________________________________^
803 | |                             let cfg = client_config.clone();
804 | |                             let (host, port) = to_host_port(tunnel.local);
805 | |                             let remote = RemoteAddr {
...   |
819 | |                             }
820 | |                         });
| |_________________________^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:93:6
|
93  | ) -> anyhow::Result<()>
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:816:108
|
816 | ...           tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest).await
|               -------------------------------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) maybe used later
|               |
|               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
820 | ...   });
|       - tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:827:38
|
827 |                           tokio::spawn(async move {
|  ______________________________________^
828 | |                             let cfg = client_config.clone();
829 | |                             let (host, port) = to_host_port(tunnel.local);
830 | |                             let remote = RemoteAddr {
...   |
864 | |                             }
865 | |                         });
| |_________________________^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:93:6
|
93  | ) -> anyhow::Result<()>
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:861:108
|
861 | ...           tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest).await
|               -------------------------------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) maybe used later
|               |
|               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
865 | ...   });
|       - tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:870:38
|
870 |                           tokio::spawn(async move {
|  ______________________________________^
871 | |                             let remote = tunnel.remote.clone();
872 | |                             let cfg = client_config.clone();
873 | |                             let connect_to_dest = || async {
...   |
894 | |                             }
895 | |                         });
| |________________________^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:93:6
|
93  | ) -> anyhow::Result<()>
|      ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:891:108
|
891 | ...           tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest).await
|               -------------------------------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) maybe used later
|               |
|               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
895 | ...   });
|       - tunnel::client::run_reverse_tunnel(client_config, remote, connect_to_dest) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:933:38
|
933 |   ...   tokio::spawn(async move {
|  ____________________^
934 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
935 | | ...           error!("{:?}", err);
936 | | ...       }
937 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59  | ...rc, incoming_cnx: T) -> anyhow::Result<()>
|                                            ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:934:97
|
934 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
937 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:956:38
|
956 |   ...   tokio::spawn(async move {
|  ____________________^
957 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
958 | | ...           error!("{:?}", err);
959 | | ...       }
960 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59  | ...rc, incoming_cnx: T) -> anyhow::Result<()>
|                                            ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:957:97
|
957 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
960 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:980:38
|
980 |   ...   tokio::spawn(async move {
|  ____________________^
981 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
982 | | ...           error!("{:?}", err);
983 | | ...       }
984 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59  | ...rc, incoming_cnx: T) -> anyhow::Result<()>
|                                            ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651 | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:981:97
|
981 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
984 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164 |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165 |     where
166 |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:1012:38
|
1012 |   ...   tokio::spawn(async move {
|  ____________________^
1013 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
1014 | | ...           error!("{:?}", err);
1015 | | ...       }
1016 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59   | ...c, incoming_cnx: T) -> anyhow::Result<()>
|                                           ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651  | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:1013:97
|
1013 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
1016 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164  |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165  |     where
166  |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:1038:38
|
1038 |   ...   tokio::spawn(async move {
|  ____________________^
1039 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
1040 | | ...           error!("{:?}", err);
1041 | | ...       }
1042 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59   | ...c, incoming_cnx: T) -> anyhow::Result<()>
|                                           ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651  | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:1039:97
|
1039 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
1042 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164  |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165  |     where
166  |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:1057:38
|
1057 |   ...   tokio::spawn(async move {
|  ____________________^
1058 | | ...       if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
1059 | | ...           error!("{:?}", err);
1060 | | ...       }
1061 | | ...   });
| |_______^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59   | ...c, incoming_cnx: T) -> anyhow::Result<()>
|                                           ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651  | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:1058:97
|
1058 |                             if let Err(err) = tunnel::client::run_tunnel(client_config, server).await {
|                                               ------------------------------------------------- ^^^^^ await occurs here, with tunnel::client::run_tunnel(client_config, server) maybe used later
|                                               |
|                                               has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
...
1061 |                         });
|                         - tunnel::client::run_tunnel(client_config, server) is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164  |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165  |     where
166  |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
error: future cannot be sent between threads safely
--> src/main.rs:1068:38
|
1068 |                           tokio::spawn(async move {
|  ______________________________________^
1069 | |                             if let Err(err) = tunnel::client::run_tunnel(
1070 | |                                 client_config,
1071 | |                                 stream::once(async move {
...    |
1083 | |                             }
1084 | |                         });
| |_________________________^ future created by async block is not Send
|
note: opaque type is declared here
--> src/tunnel/client.rs:59:90
|
59   | ...c, incoming_cnx: T) -> anyhow::Result<()>
|                                           ^^^^^^^^^^^^^^^^^^
note: this item depends on auto traits of the hidden type, but may also be registering the hidden type. This is not supported right now. You can try moving the opaque type and the item that actually registers a hidden type into a new submodule
--> src/main.rs:651:10
|
651  | async fn main() {
|          ^^^^
note: future is not Send as this value is used across an await
--> src/main.rs:1080:30
|
1069 |                               if let Err(err) = tunnel::client::run_tunnel(
|  __________________-
1070 | |                                 client_config,
1071 | |                                 stream::once(async move {
1072 | |                                     let remote = RemoteAddr {
...    |
1078 | |                                 }),
1079 | |                             )
| |- has type impl futures_util::Future<Output = Result<(), anyhow::Error>> which is not Send
1080 |                               .await
|                                ^^^^^ await occurs here, with the value maybe used later
...
1084 |                           });
|                           - the value is later dropped here
note: required by a bound in tokio::spawn
--> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.35.1/src/task/spawn.rs:166:21
|
164  |     pub fn spawn(future: F) -> JoinHandle<F::Output>
|            ----- required by a bound in this function
165  |     where
166  |         F: Future + Send + 'static,
|                     ^^^^ required by this bound in spawn
Some errors have detailed explanations: E0562, E0706.
For more information about an error, try rustc --explain E0562.
error: could not compile wstunnel (bin "wstunnel") due to 34 previous errors
`

Hello,
You need rust 1.75 or higher :)

Compiled in Ubuntu without any problem with rust 1.76.0


Delete an account in the service

As a developper
I need connection to the REST API
and existing accounts on the service (that can be querried
by name or ID)
So that I could delete an account from the service

Details and Assumptions

 * There are existing accounts on the service already

Acceptance Criteria

 gherkin

Given the REST API populated with a number of accounts

And a successful connection to the service

When a specific account is queried to be deleted

Then said account should be deleted from the service


Add support for Wagtail 2.1, and remove support for Wagtail < 2

Implemented in fc4018e. Will close this issue once 2.11 is released.


EWS does not have scipy.spatial

So no native KDTree. Ideas?

I seem to no be able to reproduce this issue. Can you take a screenshot and post it here so that I can know the exact issue?

Okay so you need to be on a windows ews computer. They have the libraries that you need to do this. You can also work from your own computer by using something called pip to install the libraries that are needed.

I am going to go ahead and close this issue.
If you keep having problems, you can go ahead and open at again.


New seabass provision forced improvements

Improvements to the ci provision and deployment code, updated when adding a new OME ci slave. https://github.com/openmicroscopy/management_tools/pull/197

The LVM section may need a when not spacewalk (when baremetal?) clause as well, since on openstack we haven't been using LVM (though maybe it won't hurt and we can start)

Something looks fishy here- you shouldn't need enablerepo: epel. If it's not spacewalk then epel should be enabled by default.

@manics: it seemed to be similar to your comment on ome-internal docs, which was that a freshly imaged system doesn't have any repo definition files, which it seems Ansible needs to read. epel is 'enabled' via spacewalk, but Ansible can't seem to understand that, and it fails, despite being able to install things from epel via yum.
After the first boot /etc/yum.repos.d/ is missing the standard repo files which can break Ansible
``` from `ome-internal/sysadmin/provisioning/index.html`

I thought LSC said you have to wait a bit until spacewalk updates the system?

@manics - even if that's the case, if we refactor the ansible code so we can bypass steps like "wait for system to refresh itself" then we might as well, no?
Note, enablerepo: epel was in there when I started, and if it is removed, and avoids this problem in the first place, then great. I was just writing a way around it, and assumed it was there for a reason, put there by someone else for a purpose.

It was probably put there whilst I was trying to figure out how LSC/spacewalk worked (or not). Do you want to have a go at reverting this change and removing enablerepo: epel, or do you want someone else to?

No preference. I don't have time to work on that at the moment, so if anyone else wants to pick it up, then fair enough.


Unable run demo to contribute

I am unable to get the library demo setup to run on a simulator so I can assist with some cleanup and features.
I installed dependencies, changed main in package.json, and tried running the app :/

😮 sorry about that
I cloned a fresh copy of this repo, and noticed that react-native-svg was missing from dev dependencies. I pushed a fix for that. Could you try again?

No worries, I just want to help!
I see two things that are problems

and

I figured it out, issue on my machine :) I'll start contributing! woot woot!

I get the first problem too, but it's quite expected. It happens because I don't want to lock react-native into a particular version, it's listed as a peer dependency. The packager works fine this way.


ci: merge setup.cfg into pyproject.toml

We had two separated files, setup.cfg and pyproject.toml because some fields were marked as experimental back when they were created: https://github.com/projectmesa/mesa-geo/pull/54#issuecomment-1093635010. Now that Mesa uses only pyproject.toml, it would be nice to follow its convention, and making it easier to maintain too.
For example in pyproject.toml  we have
https://github.com/projectmesa/mesa-geo/blob/574e3a6c0fd49d6cf6e1cdc5dda72407517c3c47/pyproject.toml#L5
whereas in setup.cfg  it is
https://github.com/projectmesa/mesa-geo/blob/574e3a6c0fd49d6cf6e1cdc5dda72407517c3c47/setup.cfg#L33
something that I forgot to update in https://github.com/projectmesa/mesa-geo/pull/186.

I think we should also remove the setup.py in that case. I think that's still leading?

I think this is a good start: pyproject-toml Only thing I don't know how to handle is the scripts in setup.py. Are those still essential?
Feel free to continue working on that branch.

Implemented in https://github.com/projectmesa/mesa-geo/pull/208. Closing.


!cams command throws an exception

Issuing the !cams command in chat always results in the following error:
error: uncaughtException: TypeError: Cannot read properties of undefined (reading 'sourceTypes')

Commit a01b74ca2ef2c8b543578d3097a546db30e97e27 in v1.6.3


No code will run anymore and I'm not sure why.

Issue Report Checklist

[x] Searched the issues page for similar reports
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[ ] Could not reproduce inside jupyter qtconsole (if console-related)
[x] Tried basic troubleshooting (if a bug/error)

[x] Restarted Spyder
[x] Reset preferences with spyder --reset
[x] Reinstalled the latest version of Anaconda
[x] Tried the other applicable steps from the Troubleshooting Guide

[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
When trying to run a script that worked earlier today I am now getting the error
 File "PDFtoDatabase.py", line 19, in <module>                                                                                spacy_nlp = spacy.load('en_core_web_lg')                                                                                File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/__init__.py", line 15, in load                                                                               return util.load_model(name, **overrides)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 114, in load_model     return load_model_from_package(name, **overrides)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 135, in load_model_from_package     return cls.load(**overrides)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/en_core_web_lg/__init__.py", line 12, in load     return load_model_from_init_py(__file__, **overrides)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 173, in load_model_from_init_py     return load_model_from_path(data_path, meta, **overrides)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 156, in load_model_from_path     return nlp.from_disk(model_path)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/language.py", line 653, in from_disk     util.from_disk(path, deserializers, exclude)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 511, in from_disk     reader(path / key)   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/language.py", line 649, in <lambda>     deserializers[name] = lambda p, proc=proc: proc.from_disk(p, vocab=False)   File "pipeline.pyx", line 643, in spacy.pipeline.Tagger.from_disk   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/spacy/util.py", line 511, in from_disk     reader(path / key)   File "pipeline.pyx", line 626, in spacy.pipeline.Tagger.from_disk.load_model   File "pipeline.pyx", line 627, in spacy.pipeline.Tagger.from_disk.load_model   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/thinc/neural/_classes/model.py", line 352, in from_bytes     copy_array(dest, param[b'value'])   File "/home/greenbur/anaconda3/lib/python3.7/site-packages/thinc/neural/util.py", line 48, in copy_array     dst[:] = src ValueError: could not broadcast input array from shape (96) into shape (128)
What steps reproduce the problem?

Open Spyder
Run any Python code
Watch it fail in frustration

What is the expected output? What do you see instead?
I am expecting my code to take PDF's and put it into a database instead my code doesn't run at all with the above error.
Paste Traceback/Error Below (if applicable)

PASTE TRACEBACK HERE

Versions

Spyder version: 3.3.2
Python version: 3.7.4
Qt version: 5.9.7
PyQt version:
Operating System name/version: Ubuntu 18.04 LTS

Dependencies

PASTE DEPENDENCIES HERE

The same exact code runs in PyCharm though.


Fix 2755: msvs tool, msvs tests, and msvc detection fixes

Fixes:

Fixes #2755: the msvs tool no longer writes the OS environment SCONS_HOME value into the SCons environment when the SCONS_HOME variable already exists in the SCons environment.
Update the windows registry keys for detection of Visual Studio 2015 Express ('14.0Exp'): the VS2015 registry key (WDExpress) appears to be different than the registry key (VCExpress) for earlier Visual Studio express versions.
Fix the vs-6.0-exec.py test script: the msvs generated project is foo.dsp and the command-line invocation of the Visual Studio development environment program was attempting to build test.dsp.
Update the msvs project generation test scripts: the msvs project execution tests could produce a false positive test result when the test executable is correctly built via the SConstruct env.Program() call and the command-line invocation of the Visual Studio development environment program fails.
Add method unlink_files to TestCmd class that unlinks a list of files from a specified directory.  Add test cases for unlink_files to TestCmdtTests.

No documentation changes were necessary.
Contributor Checklist:

[x] I have created a new test or updated the unit tests to cover the new/changed functionality.
[x] I have updated CHANGES.txt (and read the README.rst)
[x] I have updated the appropriate documentation

No additional work is planned.

Look good. Merging!


[WIP] Add acs1 test in tokenConverterTest

:white_check_mark: Build AElf <IP_ADDRESS>63 completed (commit https://github.com/AElfProject/AElf/commit/11082bea96 by @xiangxingxing)


Build broken by Kotlin 1.2.70 and kapt

https://youtrack.jetbrains.com/issue/KT-26977

Fixed with 1.3.60 upgrade


.Net: Fixes for Chroma connector to be compatible with Chroma 0.4.10

Motivation and Context

Resolves: https://github.com/microsoft/semantic-kernel/issues/2790
This PR contains changes to update processing of boolean values in order to be compatible with Chroma 0.4.10.
With new Chroma updates we need to update Chroma connector on regular basis to be compatible.
The note has been added to Chroma notebook and README file to show the latest version of Chroma, which was used to verify the connector.
In order to fix notebook to be compatible with latest version, the notebook should be updated as soon as this PR is released.
Description

Removed ChromaBooleanConverter to be compatible with Chroma 0.4.10.
Added note with latest tested version of Chroma in notebook and README file.
Updated unit tests.

Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

I still get this error downloading main semantic-kernel and main chroma and executing the 09 tutorial notebook in C#.
It can write data into Chroma, and query them, looks like it fails to deserialize:
Error: Microsoft.SemanticKernel.Diagnostics.SKException: Function `recall` execution failed. System.Text.Json.JsonException: The JSON value could not be converted to Microsoft.SemanticKernel.Memory.MemoryRecordMetadata. Path: $.is_reference | LineNumber: 0 | BytePositionInLine: 102.
---> System.Text.Json.JsonException: The JSON value could not be converted to Microsoft.SemanticKernel.Memory.MemoryRecordMetadata. Path: $.is_reference | LineNumber: 0 | BytePositionInLine: 102.
---> System.InvalidOperationException: Cannot get the value of a token type 'False' as a number.
at System.Text.Json.ThrowHelper.ThrowInvalidOperationException_ExpectedNumber(JsonTokenType tokenType)
at System.Text.Json.Utf8JsonReader.TryGetInt16(Int16& value)
at Microsoft.SemanticKernel.Connectors.Memory.Chroma.ChromaBooleanConverter.Read(Utf8JsonReader& reader, Type typeToConvert, JsonSerializerOptions options)

@jamescarter-le Thanks for reporting. As mentioned in notebook, current version of SK in notebook is compatible with Chroma version 0.4.0 at the moment and not above. We plan to upgrade SK version in all notebook examples soon, and after that it will be compatible with latest Chroma version. Meanwhile, you can test using Example15_TextMemoryPlugin example, which should be compatible with latest Chroma version:
https://github.com/microsoft/semantic-kernel/blob/11fdd4390f55622045eee7d771ba0915c3097331/dotnet/samples/KernelSyntaxExamples/Example15_TextMemoryPlugin.cs#L54-L55

@dmytrostruk
Oh I see! The notebook is referencing a nuget package whilst the KernelSyntaxExamples reference the latest code and project.
I was able to run the same by pulling 0.4.0 chroma, my fault for not reading the notebook thoroughly.
Could change the chroma download instructions to include:
git fetch --all --tags
git checkout tags/0.4.0 -b sk-notebooks

Appreciate the support and enjoying SK so far.


'variant' visualizer optimized

Variation over a number of template parameters is simplified using 'Optional' attribute.
Done for VS2015 and VS2017.

I think 'Optional' not supported in VS2015. I need to check this.


[DOC] Incorrect reference for data streams explanation in "_dashboard/im-dashboards/datastream"

What do you want to do?

[x] Request a change to existing documentation
[ ] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request and all versions that are affected.
There is a problem with the link in the path "https://opensearch.org/docs/latest/dashboards/im-dashboards/datastream/". The first link is "data stream" and it leads to nothing because the destination page does not exist. I think it should link to the explanation of what is a data stream (https://opensearch.org/docs/latest/im-plugin/data-streams/).
Affected versions:

2.6

What other resources are available? Provide links to related issues, POCs, steps for testing, etc.

I am creating a PR to solve this issue


Add support for streams in a contract

It is not possible now to declare a method returning Stream, e.g.
public interface IComputingService
{
    Stream GetBigFile();
}

In my use case machines need to transmit big index files between each other, and the file size can be up to 4 GB. There is no possibility to create a byte array more than 2GB. Even if it would be possible, it's undesirable to copy the whole file to memory of both sides of a communication channel.
When using WCF, streamed transmission mode can be used to achieve that. Here is an example of NetTcpBinding configuration:
private static Binding GetBinding()
{
    var binding = WcfHelper.GetNetTcpBinding();

    // Expand properties to allow the transfer of bigger files (> 100MB)
    var netTcpBinding = binding as NetTcpBinding;
    if (netTcpBinding != null)
    {
           netTcpBinding.TransferMode = TransferMode.Streamed;
           netTcpBinding.MaxReceivedMessageSize = Configuration.Instance.MaxSizeOfIndexFileInBytes;
    }
    binding.ReceiveTimeout = TimeSpan.FromMinutes(60);
    binding.SendTimeout = TimeSpan.FromMinutes(60);

    return binding;
}

It would be nice to have the same feature in the IpcServiceFramework.

Sorry I didn't find my time to implement streaming support for v2.


Postgres State Store: Add support for cluster behind pgBouncer

Expected Behavior
I would like to use Postgres as a State Store Component when my cluster is behind pgBouncer (most production clusters are).
Actual Behavior
If using pgBouncer, component will fail:
initialization error occurred for pgsql-state (state.postgresql/v1): faild to acquire advisory lock: ERROR: prepared statement \"stmtcache_1\" already exists (SQLSTATE 42P05)"
Steps to Reproduce the Problem
Deploy a Postgres cluster behind pgBouncer, try to initialize component.
Extra comments
There was a Discord fast discussion about this with @ItalyPaleAle and @berndverst being present.
Reference links for a similar issue and a possible solution:
https://github.com/jackc/pgx/issues/602#issuecomment-532236718
https://dba.stackexchange.com/questions/274307/prepared-statements-with-pgbouncer

+1 to a resolution for this.
FYI @ostreek

@ItalyPaleAle did you ever get a moment to take a look at this issue? Thanks :)

@olitomlinson @danielbichuetti have either of you tried adding statement_cache_mode=describe to your connection string? That is one of the two recommended solutions. For now I suggest we go this route per the linked issue.

I'm feeling generous :D opened a PR for this https://github.com/dapr/components-contrib/pull/3103
Note that this exposes the low level queryExecMode and it is up to you to set this to a value compatible with pgBouncer. This could be either exec, simple_protocol, or cache_describe.
The connection string technique I describe previously should allow you to use Dapr 1.11 already. But the PR here is likely coming out in 1.12.

Thank you very much @berndverst !


Shovel of the Earthmover created with -31267 durability.

Not sure of the cause but I created a Shovel of the Earthmover and it had -31267 durability.
Broke on first use.

This should be fixed in b23


Improve form elements with specific methods e.g. week element with getWeek() and getYear()

I recently started adding HTML5 elements like the week picker.
A valid value would look like this: 2012-W01.
I have seen no method to get the year and week from the value.
it would be nice to have custom methods on the element. In this case a getYear() and getWeek() method that would return the values depending on the set Datetime Format after validation.
Maybe setters would be nice too but I don't think this would work with the hydration.
These methods would be customized for each element e.g. other Datetime elements like the MonthSelect element. Methods added: getMonth() and getYear().
Is this a good improvement or should users "simply" extend their own elements?

This issue has been closed as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html


Implement endpoints whose results are pushed into Gatus externally

Describe the feature request
This feature has been requested dozens of times to me, and I'm feeling motivated to implement it right now, so here goes nothing.
The crux of it is, let's say Gatus doesn't support something, but you want to use Gatus to display and alert on that "unsupported something" anyways. Well, this is the feature that enables it.
The steps involved are:

Figure out a way to classify an endpoint as "external"
1.1. said endpoint must have an individually configurable "token" which is used for authentication purposes.
Create an API that allows an HTTP request to "report" a result about an endpoint
Said endpoint must automatically check if an alert has been triggered

Why do you personally want this feature to be implemented?
No response
How long have you been using this project?
Forever
Additional information
No response

that's great.
For step 3. , will it also include the negative "Said endpoint must automatically check if an alert has not been triggered" i.e. raise an alert if no result received within a specified period ?
(aka push-based monitoring)

@r3mi For the first implementation, probably not, but once the foundation is laid down, that'll be the next step.


Can't Add Controller

The instructions say to add a Controller, but Visual Studio gives a message stating there are no scaffolders supported for this item. I cannot proceed in the tutorial.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 20264150-9ac7-2b21-3314-64ffa114410f
Version Independent ID: 3477519b-1bc2-73be-33e3-63067383d426
Content: Part 2, add a controller to an ASP.NET Core MVC app
Content Source: aspnetcore/tutorials/first-mvc-app/adding-controller.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

What version of .NET? What's the exact error message? Did you install https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-5.0&tabs=visual-studio#prerequisites ?

.NET 5.0
[image: error-1.png]
I did not install anything as I already have up to date versions of .NET
and VS (downloaded within the last 2 months)
On Mon, Jun 14, 2021 at 5:43 PM Rick Anderson @.***>
wrote:

What version of .NET? What's the exact error message? Did you install
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?view=aspnetcore-5.0&tabs=visual-studio#prerequisites
?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dotnet/AspNetCore.Docs/issues/22540#issuecomment-861040823,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANQE2ZCEGPMBT7VNBGB4C7DTS2AXLANCNFSM46WCE4QA
.

Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog clean. If you believe there is a concern related to the ASP.NET Core which hasn't been addressed, please file a new issue.


【BUG Crash】panic: runtime error: index out of range [16] with length 16

time="2021-05-22T19:47:47+08:00" level=warning msg="cannot continue until there is sufficient ETH (for Gas) available on ad256b983bc08ea4b61669c89adb21835abb3475"
time="2021-05-22T19:47:47+08:00" level=warning msg="get your Goerli ETH and Goerli BZZ now via the bzzaar at https://bzz.ethswarm.org/?transaction=buy&amount=1&slippage=30&receiver=0xad256b983bc08ea4b61669c89adb21835abb3475"
time="2021-05-22T19:48:07+08:00" level=warning msg="cannot continue until there is sufficient ETH (for Gas) available on ad256b983bc08ea4b61669c89adb21835abb3475"
time="2021-05-22T19:48:07+08:00" level=warning msg="get your Goerli ETH and Goerli BZZ now via the bzzaar at https://bzz.ethswarm.org/?transaction=buy&amount=1&slippage=30&receiver=0xad256b983bc08ea4b61669c89adb21835abb3475"
time="2021-05-22T19:48:28+08:00" level=trace msg="sending transaction 1deedf9c702ff491daf6487a5ac3043cfb14bb91bd7d852a8a966453f6ac3a7f with nonce 0"
time="2021-05-22T19:48:28+08:00" level=info msg="deploying new chequebook in transaction 1deedf9c702ff491daf6487a5ac3043cfb14bb91bd7d852a8a966453f6ac3a7f"
time="2021-05-22T19:48:28+08:00" level=trace msg="starting to watch transaction 1deedf9c702ff491daf6487a5ac3043cfb14bb91bd7d852a8a966453f6ac3a7f with nonce 0"
time="2021-05-22T19:48:43+08:00" level=info msg="deployed chequebook at address 1e2c48165bdda96724ccfa7e28594f6967e0c343"
time="2021-05-22T19:48:43+08:00" level=info msg="depositing<PHONE_NUMBER>0000000 token into new chequebook"
time="2021-05-22T19:48:43+08:00" level=trace msg="sending transaction 7c704407dd4c7626cd71ed763534992a49827100516828f8e53d7a89425b5a0a with nonce 1"
time="2021-05-22T19:48:43+08:00" level=info msg="sent deposit transaction 7c704407dd4c7626cd71ed763534992a49827100516828f8e53d7a89425b5a0a"
time="2021-05-22T19:48:43+08:00" level=trace msg="starting to watch transaction 7c704407dd4c7626cd71ed763534992a49827100516828f8e53d7a89425b5a0a with nonce 1"
time="2021-05-22T19:48:58+08:00" level=info msg="successfully deposited to chequebook"
time="2021-05-22T19:48:58+08:00" level=info msg="using the chequebook transaction hash 1deedf9c702ff491daf6487a5ac3043cfb14bb91bd7d852a8a966453f6ac3a7f"
time="2021-05-22T19:48:58+08:00" level=info msg="using datadir in: './data/node1'"
time="2021-05-22T19:48:58+08:00" level=info msg="database capacity: 1000000 chunks (approximately 20.3GB)"
time="2021-05-22T19:48:58+08:00" level=debug msg="initializing NAT manager"
time="2021-05-22T19:49:11+08:00" level=debug msg="NAT manager initialized"
time="2021-05-22T19:49:11+08:00" level=info msg="waiting to sync postage contract data, this may take a while... more info available in Debug loglevel"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819123"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated chain price to 1"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819245"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id cb34d9bf3d088ef5530455b5164df5bcc715c96b41aa73a12b2cbd792f3eaff4"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819259"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id f1d89909e2fde297d7a4d578b6549952aacf5c25ef8883d8f4b170a36ac75f71"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819285"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id ccd5b87c4e9f3ba0b6d62dbbcec7ce3ad474ccd8877f4acaa36507d2d255b643"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819298"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id b7b7737d93a043e075f236f01b81e9a89fecf388fa116cd79205d69aa3de9fd9"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819304"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 1311a4ac94c6fd0e14f14666081de3787c6dd4205d7f882b873f054e8a3b367d"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819322"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 7ff31be685931e7e5837828892587300a3fb6565a96ad4415b4dbecd8e0fb564"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819355"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 9dd106465a85f1220034bbf1f0113526f69d129c6a5ffaafad2c984417901e1f"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4819376"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id d72d1a2aec97fd564d9faae3b52ea819826cda96f50fb0fcf7e763c5f6ab7cc8"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4820073"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id ab15d7dec8b99e1e10ae51fe54b56bd6f2106d790651e5ddd39fce051485a22b"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4823980"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4828981"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4829823"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 07b2f766324dfb3054e6c4934cd624f78135b6ac7c9c840d4cf40bf02b593aae"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4830238"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 4d4ab39bef3347200521682e83f30525526e5ca0e008371f870b6df8ea576d57"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4830265"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id b998cd3a1eabfbeec53655945574c4461aefcb3d87f207ef0c462cbf5657035f"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4830590"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 310ed0ca9cf209c0653e936b34212dc5ac475a3a3ddef4fca96eb769a01e9173"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4832597"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: created batch id 073a5eba7b4105969ae662c7792feeee83c99fbb183c7a7e10e5d31a7b081614"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4833982"
time="2021-05-22T19:49:11+08:00" level=debug msg="p2p address: /ip4/<IP_ADDRESS>/tcp/1634/p2p/16Uiu2HAmKFVrBFoFBD4vUkFwmeuFjXz2dKmPxxbsT5PpS9Hx2yWW"
time="2021-05-22T19:49:11+08:00" level=debug msg="p2p address: /ip4/<IP_ADDRESS>/tcp/1634/p2p/16Uiu2HAmKFVrBFoFBD4vUkFwmeuFjXz2dKmPxxbsT5PpS9Hx2yWW"
time="2021-05-22T19:49:11+08:00" level=debug msg="p2p address: /ip6/::1/tcp/1634/p2p/16Uiu2HAmKFVrBFoFBD4vUkFwmeuFjXz2dKmPxxbsT5PpS9Hx2yWW"
time="2021-05-22T19:49:11+08:00" level=info msg="starting in full mode"
time="2021-05-22T19:49:11+08:00" level=info msg="name resolver: no name resolution service provided"
time="2021-05-22T19:49:11+08:00" level=info msg="api address: [::]:1633"
time="2021-05-22T19:49:11+08:00" level=trace msg="kademlia: connector took 5.448µs to finish: old depth 0; new depth 0"
time="2021-05-22T19:49:11+08:00" level=debug msg="kademlia: no connected peers, trying bootnodes"
time="2021-05-22T19:49:11+08:00" level=trace msg="connecting to bootnode /ip4/<IP_ADDRESS>/tcp/31309/p2p/16Uiu2HAmLe8hu7N9cnkY4BjwjtdfsPzYLoebk5rUbHsiYKvMpBHW"
time="2021-05-22T19:49:11+08:00" level=debug msg="batch service: updated block height to 4835778"
time="2021-05-22T19:49:11+08:00" level=trace msg="handshake finished for peer (outbound) 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8"
time="2021-05-22T19:49:11+08:00" level=info msg="greeting \"Welcome to the Swarm, you are Bee-ing connected!\" from peer: 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8"
time="2021-05-22T19:49:11+08:00" level=trace msg="received payment threshold announcement from peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 of<PHONE_NUMBER>0000"
time="2021-05-22T19:49:11+08:00" level=trace msg="sending payment threshold announcement to peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 of<PHONE_NUMBER>0000"
time="2021-05-22T19:49:11+08:00" level=trace msg="initial swap handshake peer: 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 beneficiary: 087db473170e9564a4daa5b96d3391843c9420ec"
time="2021-05-22T19:49:11+08:00" level=debug msg="successfully connected to peer [Overlay: 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8, Underlay: /ip4/<IP_ADDRESS>/tcp/31309/p2p/16Uiu2HAmLe8hu7N9cnkY4BjwjtdfsPzYLoebk5rUbHsiYKvMpBHW] (outbound)"
time="2021-05-22T19:49:11+08:00" level=info msg="successfully connected to peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 (outbound)"
time="2021-05-22T19:49:11+08:00" level=trace msg="connected to bootnode /ip4/<IP_ADDRESS>/tcp/31309/p2p/16Uiu2HAmLe8hu7N9cnkY4BjwjtdfsPzYLoebk5rUbHsiYKvMpBHW"
time="2021-05-22T19:49:11+08:00" level=trace msg="connecting to bootnode /ip4/<IP_ADDRESS>/tcp/31308/p2p/16Uiu2HAmRHY7h1cdpmB6S48MGfwecG3kfhLT9cXpE8SokS9o1Cck"
time="2021-05-22T19:49:11+08:00" level=trace msg="handshake finished for peer (outbound) b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae"
time="2021-05-22T19:49:11+08:00" level=info msg="greeting \"Welcome to the Swarm, you are Bee-ing connected!\" from peer: b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae"
time="2021-05-22T19:49:11+08:00" level=trace msg="received payment threshold announcement from peer b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae of<PHONE_NUMBER>0000"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 15 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 3 cursor 70"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 2 cursor 94"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 11 cursor 1"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 13 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 12 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 10 cursor 1"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 3 cursor 70"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 9 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 10 cursor 1"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 6 cursor 10"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 4 cursor 44"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 4 cursor 44"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 6 cursor 10"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 7 cursor 9"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 7 cursor 9"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 11 cursor 1"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 8 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 5 cursor 19"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 5 cursor 19"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 1 cursor 375"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 1 cursor 375"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 14 cursor 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="histSyncWorker starting, peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 bin 2 cursor 94"
time="2021-05-22T19:49:11+08:00" level=trace msg="sending payment threshold announcement to peer b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae of<PHONE_NUMBER>0000"
time="2021-05-22T19:49:11+08:00" level=trace msg="initial swap handshake peer: b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae beneficiary: 2e25103bf91b0952e6e8075ad3011e91361196e8"
time="2021-05-22T19:49:11+08:00" level=debug msg="successfully connected to peer [Overlay: b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae, Underlay: /ip4/<IP_ADDRESS>/tcp/31308/p2p/16Uiu2HAmRHY7h1cdpmB6S48MGfwecG3kfhLT9cXpE8SokS9o1Cck] (outbound)"
time="2021-05-22T19:49:11+08:00" level=info msg="successfully connected to peer b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae (outbound)"
time="2021-05-22T19:49:11+08:00" level=trace msg="connected to bootnode /ip4/<IP_ADDRESS>/tcp/31308/p2p/16Uiu2HAmRHY7h1cdpmB6S48MGfwecG3kfhLT9cXpE8SokS9o1Cck"
time="2021-05-22T19:49:11+08:00" level=trace msg="connecting to bootnode /ip4/<IP_ADDRESS>/tcp/31301/p2p/16Uiu2HAmHgthsmN99SDMaApv5XY2YaCLeU9gkrPWBzRWBCaLPphs"
time="2021-05-22T19:49:11+08:00" level=trace msg="handshake finished for peer (outbound) fdf53bb6dfc06daea4b8dbd9aa348533f6fbc5038f7f50a1ffdb950d133ac968"
time="2021-05-22T19:49:11+08:00" level=info msg="greeting \"Welcome to the Swarm, you are Bee-ing connected!\" from peer: fdf53bb6dfc06daea4b8dbd9aa348533f6fbc5038f7f50a1ffdb950d133ac968"
time="2021-05-22T19:49:11+08:00" level=debug msg="puller recalculating peer 339cf2ca75f154ffb8dd13de024c4a5c5b53827b8fd21f24bec05835e0cdc2e8 po 1 depth 0"
time="2021-05-22T19:49:11+08:00" level=trace msg="liveSyncWorker starting, peer b4e5df012cfc281e74bb517fcf87fc2c07cd787929c332fc805f8124401fabae bin 1 cursor 341"
panic: runtime error: index out of range [16] with length 16

goroutine 604 [running]:
github.com/ethersphere/bee/pkg/puller.(*Puller).recalcPeer(0xc0001fc0f0, 0x1893840, 0xc001199000, 0xc000e66440, 0x20, 0x20, 0xc0012a0001)
	github.com/ethersphere/bee/pkg/puller/puller.go:220 +0x67d
github.com/ethersphere/bee/pkg/puller.(*Puller).manage(0xc0001fc0f0)
	github.com/ethersphere/bee/pkg/puller/puller.go:170 +0x425
created by github.com/ethersphere/bee/pkg/puller.New
	github.com/ethersphere/bee/pkg/puller/puller.go:82 +0x2aa

get the same issue here.

Duplicate of #1823


Feature and benchmark against RiotJS?

What are the advantages of MoonJS vs RiotJS(http://riotjs.com/)?

Moon and Riot share a lot in terms of design and API, and I feel like both have similar goals.

Moon is lighter, weighing in at 6kb, Riot is 9kb
Moon is more performant in most cases. Riot traverses the DOM, while Moon generates a highly optimized virtual DOM. Since Moon has a templating engine, it can also intelligently skip over static elements, Riot cannot.
Both frameworks have a beautiful component system ("tags" in Riot). Moon also has support for single file components via moon-cli
Both frameworks have a router library (moon-router and riot router)

It all comes down to your preferences. Which API would you prefer? Do you want a smaller bundle size and more performant library?
Let me know if you want a comparison of something else, I'm closing this for now.


fixes #63: AIOCallback is now decorated with UnmanagedFunctionPointer…

AIOCallback deelegate is now decorated with UnmanagedFunctionPointer(CallingConvention.Cdecl) attribute so as not to cause ESP-register error in native dll. Modification does not seem to impact x64 targets.

Sorry about not responding sooner.  Since I moved this from an organization and my work account to my personal account apparently I don't get notifications.
This looks correct to me.  Looks like it needs to be attached to all delegates that cross managed/unmanaged boundry.