diff --git a/CHANGELOG.md b/CHANGELOG.md index c683d303..f033c731 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.4.19](https://github.com/primitivefinance/arbiter/compare/arbiter-v0.4.18...arbiter-v0.4.19) - 2024-02-26 + +### Added +- `error!` output from behavior ([#913](https://github.com/primitivefinance/arbiter/pull/913)) + ## [0.4.18](https://github.com/primitivefinance/arbiter/compare/arbiter-v0.4.17...arbiter-v0.4.18) - 2024-02-20 ### Other diff --git a/Cargo.lock b/Cargo.lock index 26f1f638..267acd45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -139,7 +139,7 @@ checksum = "1a047897373be4bbb0224c1afdabca92648dc57a9c9ef6e7b0be3aff7a859c83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -213,7 +213,7 @@ checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arbiter" -version = "0.4.18" +version = "0.4.19" dependencies = [ "Inflector", "anyhow", @@ -233,7 +233,7 @@ dependencies = [ "revm-primitives 2.0.0", "serde", "serde_json", - "syn 2.0.50", + "syn 2.0.52", "tempfile", "thiserror", "tokio", @@ -323,7 +323,7 @@ dependencies = [ [[package]] name = "arbiter-engine" -version = "0.3.1" +version = "0.3.2" dependencies = [ "anyhow", "arbiter-bindings 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -376,7 +376,7 @@ name = "arbiter-macros" version = "0.1.3" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -386,7 +386,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac4a04ffa19e2845c4ea58bb8470d19b13d3c95a8c846e7524d718b7dc182020" dependencies = [ "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -583,7 +583,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -594,7 +594,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -650,7 +650,7 @@ checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -845,7 +845,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -1022,7 +1022,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -1217,9 +1217,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -1552,7 +1552,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -1563,7 +1563,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -1718,7 +1718,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.50", + "syn 2.0.52", "toml 0.8.10", "walkdir", ] @@ -1736,7 +1736,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -1762,7 +1762,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.50", + "syn 2.0.52", "tempfile", "thiserror", "tiny-keccak", @@ -2146,7 +2146,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3085,7 +3085,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3295,7 +3295,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3344,7 +3344,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3418,7 +3418,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3456,7 +3456,7 @@ checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3925,7 +3925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -3987,7 +3987,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", "version_check", "yansi 1.0.0-rc.1", ] @@ -4139,7 +4139,7 @@ checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -4701,7 +4701,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -5011,7 +5011,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -5079,9 +5079,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.50" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74f1bdc9872430ce9b75da68329d1c1746faf50ffac5f19e02b71e37ff881ffb" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -5143,9 +5143,9 @@ checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd" [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", @@ -5187,7 +5187,7 @@ checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -5291,7 +5291,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -5451,7 +5451,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -5763,7 +5763,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", "wasm-bindgen-shared", ] @@ -5797,7 +5797,7 @@ checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6106,7 +6106,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] @@ -6126,7 +6126,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.50", + "syn 2.0.52", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 12580a5f..ced92266 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ exclude = ["benches", "docs"] # Package configuration [package] name = "arbiter" -version = "0.4.18" +version = "0.4.19" edition = "2021" authors = [ "Waylon Jepsen ", @@ -58,9 +58,9 @@ futures = "0.3.30" futures-util = { version = "0.3.30" } async-stream = "0.3.5" async-trait = { version = "0.1.77" } -crossbeam-channel = { version = "0.5.11" } +crossbeam-channel = { version = "0.5.12" } -syn = { version = "2.0.50", features = ["full"] } +syn = { version = "2.0.52", features = ["full"] } proc-macro2 = { version = "1.0.78" } tracing = "0.1.40" @@ -85,7 +85,7 @@ Inflector = { version = "=0.11.4" } # Building files foundry-config = { version = "=0.2.0" } -tempfile = { version = "3.10.0" } +tempfile = { version = "3.10.1" } # Errors thiserror.workspace = true diff --git a/engine/CHANGELOG.md b/engine/CHANGELOG.md index cb552f5a..f5d82788 100644 --- a/engine/CHANGELOG.md +++ b/engine/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.2](https://github.com/primitivefinance/arbiter/compare/arbiter-engine-v0.3.1...arbiter-engine-v0.3.2) - 2024-02-26 + +### Added +- `error!` output from behavior ([#913](https://github.com/primitivefinance/arbiter/pull/913)) + ## [0.3.1](https://github.com/primitivefinance/arbiter/compare/arbiter-engine-v0.3.0...arbiter-engine-v0.3.1) - 2024-02-20 ### Other diff --git a/engine/Cargo.toml b/engine/Cargo.toml index ce766755..69996c26 100644 --- a/engine/Cargo.toml +++ b/engine/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "arbiter-engine" -version = "0.3.1" +version = "0.3.2" edition = "2021" authors = [ "Waylon Jepsen ", diff --git a/engine/src/machine.rs b/engine/src/machine.rs index 38084dca..d6e3d888 100644 --- a/engine/src/machine.rs +++ b/engine/src/machine.rs @@ -7,6 +7,7 @@ use anyhow::Result; use arbiter_core::middleware::ArbiterMiddleware; use futures_util::{Stream, StreamExt}; use tokio::task::JoinHandle; +use tracing::error; use super::*; @@ -216,15 +217,27 @@ where async fn execute(&mut self, instruction: MachineInstruction) -> Result<()> { // NOTE: The unwraps here are safe because the `Behavior` in an engine is only // accessed here and it is private. + let id: Option; match instruction { MachineInstruction::Start(client, messager) => { + id = messager.id.clone(); + let id_clone = id.clone(); self.state = State::Starting; let mut behavior = self.behavior.take().unwrap(); let behavior_task: JoinHandle>, B)>> = tokio::spawn(async move { - let id = messager.id.clone(); - let stream = behavior.startup(client, messager).await?; - debug!("startup complete for behavior {:?}", id); + let stream = match behavior.startup(client, messager).await { + Ok(stream) => stream, + Err(e) => { + error!( + "startup failed for behavior {:?}: \n reason: {:?}", + id_clone, e + ); + // Throw a panic as we cannot recover from this for now. + panic!(); + } + }; + debug!("startup complete for behavior {:?}", id_clone); Ok((stream, behavior)) }); let (stream, behavior) = behavior_task.await??; @@ -232,7 +245,12 @@ where Some(stream) => { self.event_stream = Some(stream); self.behavior = Some(behavior); - self.execute(MachineInstruction::Process).await?; + match self.execute(MachineInstruction::Process).await { + Ok(_) => {} + Err(e) => { + error!("process failed for behavior {:?}: \n reason: {:?}", id, e); + } + } Ok(()) } None => {