cloudevents / sdk-rust

Rust library to interact with CloudEvents
Apache License 2.0
174 stars 61 forks source link

Upgrade dependencies, including http and hyper, where possible. #233

Open ozabalaferrera opened 3 months ago

ozabalaferrera commented 3 months ago

Description

This PR is the result of the discussion in #227. It upgrades various dependencies, including http and hyper, to the latest versions.

Status

This PR is ready for review. I worked on this sporadically, so I am sure there are better ways to accomplish some of what I did here.

Excluded

warp and actix have not been upgraded to http v1; I found it difficult to convert between types or implement traits. Therefore, those bindings here are mostly unchanged. I also created a separate feature flag for the old http v0.2.

Testing

I ran all the commands on the contributing guide. I also ran cargo test --all --features with all the features individually.

ozabalaferrera commented 2 months ago

@jcrossley3 or @Lazzaretti would you be able to review this?

ozabalaferrera commented 2 months ago

I forgot about the example projects and other archs 🤦‍♂️. I'll work on fixing these.

ozabalaferrera commented 2 months ago

I could use some help with the failing tests. I'm not sure what is causing this error:

It happens when running the test:

cargo test --target wasm32-wasi --features "http-0-2-binding hyper-0-14 hyper_wasi"

But the below works, so I imagine some testing dependency is the issue.

cargo build --target wasm32-wasi --features "http-0-2-binding hyper-0-14 hyper_wasi"

I'm not really sure if that is indicative of a real error, especially since building the example works:

cd example-projects/wasi-example/
cargo build --target wasm32-wasi

That being said, running causes an error, but I think it is due to my environment.

cd example-projects/wasi-example/
cargo run --target wasm32-wasi
target/wasm32-wasi/debug/wasi-example.wasm: 1: : not found
target/wasm32-wasi/debug/wasi-example.wasm: 1: : not found
target/wasm32-wasi/debug/wasi-example.wasm: 1: : not found
target/wasm32-wasi/debug/wasi-example.wasm: 1: : not found
target/wasm32-wasi/debug/wasi-example.wasm: 1: ~: not found
target/wasm32-wasi/debug/wasi-example.wasm: 1: : not found

I've not worked with wasm, so any help would be appreciated.

sophokles73 commented 1 month ago

@ozabalaferrera the problem seems to be that the updated Mockito crate pulls in tokio (which the original version did not).

I am able to build and test for the wasm32-wasi target when I use Cargot.toml

...
mockito = "0.31.1"
...

I have then installed wasmedge (https://wasmedge.org/) and then run the tests successfully using

CARGO_TARGET_WASM32_WASI_RUNNER=wasmedge cargo test --target wasm32-wasi
ozabalaferrera commented 1 month ago

Thanks, @sophokles73 ! I've been pretty busy, but took a minute to apply your fix. It looks like all tests are passing now. @jcrossley3 or @Lazzaretti, sorry for the delay. Could you take another look at this and let me know if there is anything else I should address?

sophokles73 commented 4 weeks ago

@jcrossley3 @Lazzaretti any chance you'll find the time to take a look?