From c7a6ff858af7f64b7a6ff75cbeb468fcbfe2b137 Mon Sep 17 00:00:00 2001 From: Afsal Thaj Date: Tue, 21 Jan 2025 23:39:35 +1100 Subject: [PATCH 1/3] Add fork --- Cargo.lock | 9 +++++++-- Cargo.toml | 2 +- golem-worker-executor-base/build.rs | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 02f5a3c77..f684699ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3896,7 +3896,7 @@ dependencies = [ "derive_more", "dir-diff", "fancy-regex", - "golem-wit", + "golem-wit 1.1.2", "include_dir", "itertools 0.14.0", "nanoid", @@ -4177,6 +4177,11 @@ dependencies = [ "wit-parser 0.221.2", ] +[[package]] +name = "golem-wit" +version = "0.0.0" +source = "git+https://github.com/golemcloud/golem-wit.git?branch=add_fork#ec67df3ec43c921439f254d3d87843f1f0fc8fbe" + [[package]] name = "golem-wit" version = "1.1.2" @@ -4258,7 +4263,7 @@ dependencies = [ "golem-test-framework", "golem-wasm-ast", "golem-wasm-rpc", - "golem-wit", + "golem-wit 0.0.0", "hex", "http 1.2.0", "http-body 1.0.1", diff --git a/Cargo.toml b/Cargo.toml index 618edab19..92ee6bce5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,7 +112,7 @@ futures = "0.3" futures-core = "0.3.31" futures-util = "0.3.31" git-version = "0.3.9" -golem-wit = { version = "=1.1.2" } +golem-wit = { git = "https://github.com/golemcloud/golem-wit.git", branch = "add_fork" } hex = "0.4.3" http = "1.2.0" # keep in sync with wasmtime humansize = "2.1.3" diff --git a/golem-worker-executor-base/build.rs b/golem-worker-executor-base/build.rs index f48566249..49425b472 100644 --- a/golem-worker-executor-base/build.rs +++ b/golem-worker-executor-base/build.rs @@ -65,6 +65,7 @@ fn preview2_mod_gen(golem_wit_path: &str) -> String { world golem {{ import golem:api/host@0.2.0; import golem:api/host@1.1.0; + import golem:api/host@1.2.0; import golem:api/oplog@1.1.0; import golem:api/durability@1.2.0; From 6fdc1e8be1df78945b67963a702a0782beaa302f Mon Sep 17 00:00:00 2001 From: Afsal Thaj Date: Tue, 21 Jan 2025 23:52:39 +1100 Subject: [PATCH 2/3] Fix durability package --- golem-worker-executor-base/build.rs | 2 +- .../src/durable_host/durability.rs | 66 +++++++++---------- golem-worker-executor/src/lib.rs | 4 +- 3 files changed, 36 insertions(+), 36 deletions(-) diff --git a/golem-worker-executor-base/build.rs b/golem-worker-executor-base/build.rs index 49425b472..646ee81e6 100644 --- a/golem-worker-executor-base/build.rs +++ b/golem-worker-executor-base/build.rs @@ -67,7 +67,7 @@ fn preview2_mod_gen(golem_wit_path: &str) -> String { import golem:api/host@1.1.0; import golem:api/host@1.2.0; import golem:api/oplog@1.1.0; - import golem:api/durability@1.2.0; + import golem:durability/durability@1.2.0; import wasi:blobstore/blobstore; import wasi:blobstore/container; diff --git a/golem-worker-executor-base/src/durable_host/durability.rs b/golem-worker-executor-base/src/durable_host/durability.rs index ab0807ced..20a7a5aa3 100644 --- a/golem-worker-executor-base/src/durable_host/durability.rs +++ b/golem-worker-executor-base/src/durable_host/durability.rs @@ -17,7 +17,7 @@ use crate::error::GolemError; use crate::metrics::wasm::record_host_function_call; use crate::model::PersistenceLevel; use crate::preview2::golem; -use crate::preview2::golem::api1_2_0; +use crate::preview2::golem::durability::durability; use crate::services::oplog::{CommitLevel, OplogOps}; use crate::workerctx::WorkerCtx; use async_trait::async_trait; @@ -105,62 +105,62 @@ pub trait DurabilityHost { ) -> Result; } -impl From for DurableFunctionType { - fn from(value: api1_2_0::durability::DurableFunctionType) -> Self { +impl From for DurableFunctionType { + fn from(value: durability::DurableFunctionType) -> Self { match value { - api1_2_0::durability::DurableFunctionType::WriteRemote => { + durability::DurableFunctionType::WriteRemote => { DurableFunctionType::WriteRemote } - api1_2_0::durability::DurableFunctionType::WriteLocal => { + durability::DurableFunctionType::WriteLocal => { DurableFunctionType::WriteLocal } - api1_2_0::durability::DurableFunctionType::WriteRemoteBatched(oplog_index) => { + durability::DurableFunctionType::WriteRemoteBatched(oplog_index) => { DurableFunctionType::WriteRemoteBatched(oplog_index.map(OplogIndex::from_u64)) } - api1_2_0::durability::DurableFunctionType::ReadRemote => { + durability::DurableFunctionType::ReadRemote => { DurableFunctionType::ReadRemote } - api1_2_0::durability::DurableFunctionType::ReadLocal => DurableFunctionType::ReadLocal, + durability::DurableFunctionType::ReadLocal => DurableFunctionType::ReadLocal, } } } -impl From for api1_2_0::durability::DurableFunctionType { +impl From for durability::DurableFunctionType { fn from(value: DurableFunctionType) -> Self { match value { DurableFunctionType::WriteRemote => { - api1_2_0::durability::DurableFunctionType::WriteRemote + durability::DurableFunctionType::WriteRemote } DurableFunctionType::WriteLocal => { - api1_2_0::durability::DurableFunctionType::WriteLocal + durability::DurableFunctionType::WriteLocal } DurableFunctionType::WriteRemoteBatched(oplog_index) => { - api1_2_0::durability::DurableFunctionType::WriteRemoteBatched( + durability::DurableFunctionType::WriteRemoteBatched( oplog_index.map(|idx| idx.into()), ) } DurableFunctionType::ReadRemote => { - api1_2_0::durability::DurableFunctionType::ReadRemote + durability::DurableFunctionType::ReadRemote } - DurableFunctionType::ReadLocal => api1_2_0::durability::DurableFunctionType::ReadLocal, + DurableFunctionType::ReadLocal => durability::DurableFunctionType::ReadLocal, } } } -impl From for api1_2_0::durability::OplogEntryVersion { +impl From for durability::OplogEntryVersion { fn from(value: OplogEntryVersion) -> Self { match value { - OplogEntryVersion::V1 => api1_2_0::durability::OplogEntryVersion::V1, - OplogEntryVersion::V2 => api1_2_0::durability::OplogEntryVersion::V2, + OplogEntryVersion::V1 => durability::OplogEntryVersion::V1, + OplogEntryVersion::V2 => durability::OplogEntryVersion::V2, } } } impl From - for api1_2_0::durability::PersistedDurableFunctionInvocation + for durability::PersistedDurableFunctionInvocation { fn from(value: PersistedDurableFunctionInvocation) -> Self { - api1_2_0::durability::PersistedDurableFunctionInvocation { + durability::PersistedDurableFunctionInvocation { timestamp: value.timestamp.into(), function_name: value.function_name, response: value.response, @@ -171,7 +171,7 @@ impl From } #[async_trait] -impl api1_2_0::durability::Host for DurableWorkerCtx { +impl durability::Host for DurableWorkerCtx { async fn observe_function_call( &mut self, iface: String, @@ -183,16 +183,16 @@ impl api1_2_0::durability::Host for DurableWorkerCtx { async fn begin_durable_function( &mut self, - function_type: api1_2_0::durability::DurableFunctionType, - ) -> anyhow::Result { + function_type: durability::DurableFunctionType, + ) -> anyhow::Result { let oplog_idx = DurabilityHost::begin_durable_function(self, &function_type.into()).await?; Ok(oplog_idx.into()) } async fn end_durable_function( &mut self, - function_type: api1_2_0::durability::DurableFunctionType, - begin_index: api1_2_0::durability::OplogIndex, + function_type: durability::DurableFunctionType, + begin_index: durability::OplogIndex, ) -> anyhow::Result<()> { DurabilityHost::end_durable_function( self, @@ -205,11 +205,11 @@ impl api1_2_0::durability::Host for DurableWorkerCtx { async fn current_durable_execution_state( &mut self, - ) -> anyhow::Result { + ) -> anyhow::Result { let state = DurabilityHost::durable_execution_state(self); let persistence_level: golem::api0_2_0::host::PersistenceLevel = state.persistence_level.into(); - Ok(api1_2_0::durability::DurableExecutionState { + Ok(durability::DurableExecutionState { is_live: state.is_live, persistence_level: persistence_level.into(), }) @@ -220,7 +220,7 @@ impl api1_2_0::durability::Host for DurableWorkerCtx { function_name: String, request: Vec, response: Vec, - function_type: api1_2_0::durability::DurableFunctionType, + function_type: durability::DurableFunctionType, ) -> anyhow::Result<()> { DurabilityHost::persist_durable_function_invocation( self, @@ -236,19 +236,19 @@ impl api1_2_0::durability::Host for DurableWorkerCtx { async fn persist_typed_durable_function_invocation( &mut self, function_name: String, - request: api1_2_0::durability::ValueAndType, - response: api1_2_0::durability::ValueAndType, - function_type: api1_2_0::durability::DurableFunctionType, + request: durability::ValueAndType, + response: durability::ValueAndType, + function_type: durability::DurableFunctionType, ) -> anyhow::Result<()> { let request = unsafe { transmute::< - api1_2_0::durability::ValueAndType, + durability::ValueAndType, golem_wasm_rpc::golem::rpc::types::ValueAndType, >(request) }; let response = unsafe { transmute::< - api1_2_0::durability::ValueAndType, + durability::ValueAndType, golem_wasm_rpc::golem::rpc::types::ValueAndType, >(response) }; @@ -265,7 +265,7 @@ impl api1_2_0::durability::Host for DurableWorkerCtx { async fn read_persisted_durable_function_invocation( &mut self, - ) -> anyhow::Result { + ) -> anyhow::Result { let invocation = DurabilityHost::read_persisted_durable_function_invocation(self).await?; Ok(invocation.into()) } diff --git a/golem-worker-executor/src/lib.rs b/golem-worker-executor/src/lib.rs index 6db2782df..757d52335 100644 --- a/golem-worker-executor/src/lib.rs +++ b/golem-worker-executor/src/lib.rs @@ -23,7 +23,7 @@ use async_trait::async_trait; use golem_common::model::component::ComponentOwner; use golem_common::model::plugin::{DefaultPluginOwner, DefaultPluginScope}; use golem_worker_executor_base::durable_host::DurableWorkerCtx; -use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0, api1_2_0}; +use golem_worker_executor_base::preview2::golem::{api0_2_0, api1_1_0, durability}; use golem_worker_executor_base::services::active_workers::ActiveWorkers; use golem_worker_executor_base::services::blob_store::BlobStoreService; use golem_worker_executor_base::services::component::ComponentService; @@ -205,7 +205,7 @@ impl Bootstrap for ServerBootstrap { api0_2_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; api1_1_0::host::add_to_linker_get_host(&mut linker, get_durable_ctx)?; api1_1_0::oplog::add_to_linker_get_host(&mut linker, get_durable_ctx)?; - api1_2_0::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?; + durability::durability::add_to_linker_get_host(&mut linker, get_durable_ctx)?; golem_wasm_rpc::golem::rpc::types::add_to_linker_get_host(&mut linker, get_durable_ctx)?; Ok(linker) } From dc1a08e8b82e87e25c126f561b83dfbd1d5d7b0e Mon Sep 17 00:00:00 2001 From: Afsal Thaj Date: Wed, 22 Jan 2025 00:58:12 +1100 Subject: [PATCH 3/3] Use ubuntu latest --- golem-component-compilation-service/docker/Dockerfile | 2 +- golem-component-service/docker/Dockerfile | 2 +- golem-shard-manager/docker/Dockerfile | 2 +- golem-worker-executor/docker/Dockerfile | 2 +- golem-worker-service/docker/Dockerfile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/golem-component-compilation-service/docker/Dockerfile b/golem-component-compilation-service/docker/Dockerfile index 89636e562..e580aae2b 100644 --- a/golem-component-compilation-service/docker/Dockerfile +++ b/golem-component-compilation-service/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm-slim as base +FROM ubuntu:latest as base ARG TARGETARCH diff --git a/golem-component-service/docker/Dockerfile b/golem-component-service/docker/Dockerfile index 1d988954f..d2c406e87 100644 --- a/golem-component-service/docker/Dockerfile +++ b/golem-component-service/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm-slim as base +FROM ubuntu:latest as base ARG TARGETARCH diff --git a/golem-shard-manager/docker/Dockerfile b/golem-shard-manager/docker/Dockerfile index 043144553..cc05c0c3f 100644 --- a/golem-shard-manager/docker/Dockerfile +++ b/golem-shard-manager/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm-slim as base +FROM ubuntu:latest as base ARG TARGETARCH diff --git a/golem-worker-executor/docker/Dockerfile b/golem-worker-executor/docker/Dockerfile index 6ffdd769c..45ab96b7a 100644 --- a/golem-worker-executor/docker/Dockerfile +++ b/golem-worker-executor/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm-slim as base +FROM ubuntu:latest as base ARG TARGETARCH diff --git a/golem-worker-service/docker/Dockerfile b/golem-worker-service/docker/Dockerfile index 6cc9d8922..349d935e4 100644 --- a/golem-worker-service/docker/Dockerfile +++ b/golem-worker-service/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bookworm-slim as base +FROM ubuntu:latest as base ARG TARGETARCH