@temporalio/core-bridge 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +255 -48
- package/package.json +4 -4
- package/releases/aarch64-apple-darwin/index.node +0 -0
- package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
- package/releases/x86_64-apple-darwin/index.node +0 -0
- package/releases/x86_64-pc-windows-msvc/index.node +0 -0
- package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
- package/sdk-core/.buildkite/pipeline.yml +1 -3
- package/sdk-core/.cargo/config.toml +5 -2
- package/sdk-core/.github/workflows/heavy.yml +28 -0
- package/sdk-core/Cargo.toml +1 -1
- package/sdk-core/README.md +9 -5
- package/sdk-core/client/src/lib.rs +211 -36
- package/sdk-core/client/src/raw.rs +1 -1
- package/sdk-core/client/src/retry.rs +32 -20
- package/sdk-core/core/Cargo.toml +23 -9
- package/sdk-core/core/src/abstractions.rs +11 -0
- package/sdk-core/core/src/core_tests/activity_tasks.rs +6 -5
- package/sdk-core/core/src/core_tests/local_activities.rs +263 -22
- package/sdk-core/core/src/core_tests/queries.rs +2 -2
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +249 -5
- package/sdk-core/core/src/ephemeral_server/mod.rs +5 -6
- package/sdk-core/core/src/lib.rs +2 -0
- package/sdk-core/core/src/protosext/mod.rs +1 -1
- package/sdk-core/core/src/telemetry/log_export.rs +1 -1
- package/sdk-core/core/src/telemetry/mod.rs +23 -8
- package/sdk-core/core/src/test_help/mod.rs +8 -1
- package/sdk-core/core/src/worker/activities/local_activities.rs +259 -125
- package/sdk-core/core/src/worker/activities.rs +3 -2
- package/sdk-core/core/src/worker/mod.rs +53 -26
- package/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- package/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
- package/sdk-core/core/src/worker/workflow/history_update.rs +835 -277
- package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +9 -17
- package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +3 -5
- package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -2
- package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +3 -5
- package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +1 -2
- package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +1 -2
- package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +1 -2
- package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +73 -51
- package/sdk-core/core/src/worker/workflow/machines/mod.rs +3 -3
- package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +4 -4
- package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +1 -2
- package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +3 -5
- package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +6 -7
- package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
- package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +4 -4
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +89 -58
- package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +4 -7
- package/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +21 -9
- package/sdk-core/core/src/worker/workflow/managed_run.rs +1021 -360
- package/sdk-core/core/src/worker/workflow/mod.rs +306 -346
- package/sdk-core/core/src/worker/workflow/run_cache.rs +29 -53
- package/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
- package/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
- package/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +115 -0
- package/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- package/sdk-core/core/src/worker/workflow/workflow_stream.rs +444 -714
- package/sdk-core/core-api/Cargo.toml +2 -0
- package/sdk-core/core-api/src/errors.rs +1 -34
- package/sdk-core/core-api/src/lib.rs +6 -2
- package/sdk-core/core-api/src/worker.rs +14 -1
- package/sdk-core/etc/deps.svg +115 -140
- package/sdk-core/etc/regen-depgraph.sh +5 -0
- package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +6 -6
- package/sdk-core/fsm/rustfsm_trait/src/lib.rs +7 -3
- package/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- package/sdk-core/protos/api_upstream/Makefile +5 -5
- package/sdk-core/protos/api_upstream/build/go.mod +7 -0
- package/sdk-core/protos/api_upstream/build/go.sum +5 -0
- package/sdk-core/protos/api_upstream/build/tools.go +29 -0
- package/sdk-core/protos/api_upstream/go.mod +6 -0
- package/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +9 -2
- package/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +12 -19
- package/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +3 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +3 -3
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +20 -2
- package/sdk-core/protos/api_upstream/temporal/api/{update/v1/message.proto → enums/v1/interaction_type.proto} +11 -18
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +2 -13
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +13 -19
- package/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +87 -0
- package/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +13 -8
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
- package/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +2 -0
- package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
- package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
- package/sdk-core/sdk/Cargo.toml +4 -3
- package/sdk-core/sdk/src/lib.rs +87 -21
- package/sdk-core/sdk/src/workflow_future.rs +7 -12
- package/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- package/sdk-core/sdk-core-protos/build.rs +36 -2
- package/sdk-core/sdk-core-protos/src/history_builder.rs +26 -19
- package/sdk-core/sdk-core-protos/src/history_info.rs +4 -0
- package/sdk-core/sdk-core-protos/src/lib.rs +78 -34
- package/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- package/sdk-core/test-utils/Cargo.toml +3 -1
- package/sdk-core/test-utils/src/histfetch.rs +1 -1
- package/sdk-core/test-utils/src/lib.rs +50 -18
- package/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- package/sdk-core/test-utils/src/workflows.rs +29 -0
- package/sdk-core/tests/fuzzy_workflow.rs +130 -0
- package/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +114 -7
- package/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -2
- package/sdk-core/tests/integ_tests/metrics_tests.rs +1 -1
- package/sdk-core/tests/integ_tests/polling_tests.rs +1 -39
- package/sdk-core/tests/integ_tests/queries_tests.rs +2 -127
- package/sdk-core/tests/integ_tests/visibility_tests.rs +52 -5
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +74 -1
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +5 -13
- package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +2 -10
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +69 -197
- package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +4 -28
- package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
- package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +14 -14
- package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +3 -19
- package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +3 -19
- package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +1 -1
- package/sdk-core/tests/integ_tests/workflow_tests.rs +5 -6
- package/sdk-core/tests/main.rs +2 -12
- package/sdk-core/tests/runner.rs +71 -34
- package/sdk-core/tests/wf_input_replay.rs +32 -0
- package/sdk-core/bridge-ffi/Cargo.toml +0 -24
- package/sdk-core/bridge-ffi/LICENSE.txt +0 -23
- package/sdk-core/bridge-ffi/build.rs +0 -25
- package/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -224
- package/sdk-core/bridge-ffi/src/lib.rs +0 -746
- package/sdk-core/bridge-ffi/src/wrappers.rs +0 -221
- package/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
- package/sdk-core/sdk/src/conversions.rs +0 -8
|
@@ -17,8 +17,10 @@ async-trait = "0.1"
|
|
|
17
17
|
derive_builder = "0.12"
|
|
18
18
|
opentelemetry = "0.18"
|
|
19
19
|
prost-types = "0.11"
|
|
20
|
+
serde = { version = "1.0", default_features = false, features = ["derive"] }
|
|
20
21
|
serde_json = "1.0"
|
|
21
22
|
thiserror = "1.0"
|
|
23
|
+
tokio = "1.24"
|
|
22
24
|
tonic = "0.8"
|
|
23
25
|
tracing-core = "0.1"
|
|
24
26
|
url = "2.3"
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
//! Error types exposed by public APIs
|
|
2
2
|
|
|
3
|
-
use
|
|
4
|
-
use temporal_sdk_core_protos::coresdk::{
|
|
5
|
-
activity_result::ActivityExecutionResult,
|
|
6
|
-
workflow_activation::remove_from_cache::EvictionReason,
|
|
7
|
-
};
|
|
3
|
+
use temporal_sdk_core_protos::coresdk::activity_result::ActivityExecutionResult;
|
|
8
4
|
|
|
9
5
|
/// Errors thrown by [crate::Worker::poll_workflow_activation]
|
|
10
6
|
#[derive(thiserror::Error, Debug)]
|
|
@@ -64,32 +60,3 @@ pub enum CompleteActivityError {
|
|
|
64
60
|
completion: Option<ActivityExecutionResult>,
|
|
65
61
|
},
|
|
66
62
|
}
|
|
67
|
-
|
|
68
|
-
/// Errors thrown inside of workflow machines
|
|
69
|
-
#[derive(thiserror::Error, Debug)]
|
|
70
|
-
pub enum WFMachinesError {
|
|
71
|
-
#[error("Nondeterminism error: {0}")]
|
|
72
|
-
Nondeterminism(String),
|
|
73
|
-
#[error("Fatal error in workflow machines: {0}")]
|
|
74
|
-
Fatal(String),
|
|
75
|
-
|
|
76
|
-
#[error("Unrecoverable network error while fetching history: {0}")]
|
|
77
|
-
HistoryFetchingError(tonic::Status),
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
impl WFMachinesError {
|
|
81
|
-
pub fn evict_reason(&self) -> EvictionReason {
|
|
82
|
-
match self {
|
|
83
|
-
WFMachinesError::Nondeterminism(_) => EvictionReason::Nondeterminism,
|
|
84
|
-
WFMachinesError::Fatal(_) | WFMachinesError::HistoryFetchingError(_) => {
|
|
85
|
-
EvictionReason::Fatal
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
impl From<TimestampError> for WFMachinesError {
|
|
92
|
-
fn from(_: TimestampError) -> Self {
|
|
93
|
-
Self::Fatal("Could not decode timestamp".to_string())
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -45,13 +45,17 @@ pub trait Worker: Send + Sync {
|
|
|
45
45
|
/// concurrently internally.
|
|
46
46
|
async fn poll_activity_task(&self) -> Result<ActivityTask, PollActivityError>;
|
|
47
47
|
|
|
48
|
-
/// Tell the worker that a workflow activation has completed. May be freely called
|
|
48
|
+
/// Tell the worker that a workflow activation has completed. May (and should) be freely called
|
|
49
|
+
/// concurrently. The future may take some time to resolve, as fetching more events might be
|
|
50
|
+
/// necessary for completion to... complete - thus SDK implementers should make sure they do
|
|
51
|
+
/// not serialize completions.
|
|
49
52
|
async fn complete_workflow_activation(
|
|
50
53
|
&self,
|
|
51
54
|
completion: WorkflowActivationCompletion,
|
|
52
55
|
) -> Result<(), CompleteWfError>;
|
|
53
56
|
|
|
54
|
-
/// Tell the worker that an activity has finished executing. May be freely called
|
|
57
|
+
/// Tell the worker that an activity has finished executing. May (and should) be freely called
|
|
58
|
+
/// concurrently.
|
|
55
59
|
async fn complete_activity_task(
|
|
56
60
|
&self,
|
|
57
61
|
completion: ActivityTaskCompletion,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
use std::time::Duration;
|
|
2
|
+
use tokio::sync::mpsc::UnboundedSender;
|
|
2
3
|
|
|
3
4
|
/// Defines per-worker configuration options
|
|
4
|
-
#[derive(Debug, Clone, derive_builder::Builder)]
|
|
5
|
+
#[derive(Debug, Clone, derive_builder::Builder, serde::Serialize, serde::Deserialize)]
|
|
5
6
|
#[builder(setter(into), build_fn(validate = "Self::validate"))]
|
|
6
7
|
#[non_exhaustive]
|
|
7
8
|
pub struct WorkerConfig {
|
|
@@ -105,6 +106,18 @@ pub struct WorkerConfig {
|
|
|
105
106
|
/// up during shutdown, setting this true saves some back-and-forth.
|
|
106
107
|
#[builder(default = "false")]
|
|
107
108
|
pub ignore_evicts_on_shutdown: bool,
|
|
109
|
+
|
|
110
|
+
/// Maximum number of next page (or initial) history event listing requests we'll make
|
|
111
|
+
/// concurrently. I don't this it's worth exposing this to users until we encounter a reason.
|
|
112
|
+
#[builder(default = "5")]
|
|
113
|
+
pub fetching_concurrency: usize,
|
|
114
|
+
|
|
115
|
+
/// If set, and the `save_wf_inputs` feature is enabled in core, will be sent a serialized
|
|
116
|
+
/// instance of every input to workflow state in order. This is for testing purposes, SDK
|
|
117
|
+
/// implementations never need to care about it.
|
|
118
|
+
#[builder(default)]
|
|
119
|
+
#[serde(skip)]
|
|
120
|
+
pub wf_state_inputs: Option<UnboundedSender<Vec<u8>>>,
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
impl WorkerConfig {
|
package/sdk-core/etc/deps.svg
CHANGED
|
@@ -1,187 +1,162 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<!-- Generated by graphviz version
|
|
4
|
+
<!-- Generated by graphviz version 7.0.4 (0)
|
|
5
5
|
-->
|
|
6
|
-
<!--
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
|
|
10
|
-
<
|
|
11
|
-
<polygon fill="white" stroke="transparent" points="-4,4 -4,-472 520.5,-472 520.5,4 -4,4"/>
|
|
6
|
+
<!-- Pages: 1 -->
|
|
7
|
+
<svg width="436pt" height="404pt"
|
|
8
|
+
viewBox="0.00 0.00 436.26 404.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 400)">
|
|
10
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-400 432.26,-400 432.26,4 -4,4"/>
|
|
12
11
|
<!-- 0 -->
|
|
13
12
|
<g id="node1" class="node">
|
|
14
13
|
<title>0</title>
|
|
15
|
-
<polygon fill="none" stroke="black" points="
|
|
16
|
-
<text text-anchor="middle" x="
|
|
14
|
+
<polygon fill="none" stroke="black" points="255,-396 139,-396 139,-360 255,-360 255,-396"/>
|
|
15
|
+
<text text-anchor="middle" x="197" y="-374.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core</text>
|
|
17
16
|
</g>
|
|
18
17
|
<!-- 1 -->
|
|
19
18
|
<g id="node2" class="node">
|
|
20
19
|
<title>1</title>
|
|
21
|
-
<polygon fill="none" stroke="black" points="
|
|
22
|
-
<text text-anchor="middle" x="
|
|
20
|
+
<polygon fill="none" stroke="black" points="58,-324 0,-324 0,-288 58,-288 58,-324"/>
|
|
21
|
+
<text text-anchor="middle" x="29" y="-302.3" font-family="Times,serif" font-size="14.00">rustfsm</text>
|
|
23
22
|
</g>
|
|
24
23
|
<!-- 0->1 -->
|
|
25
24
|
<g id="edge1" class="edge">
|
|
26
25
|
<title>0->1</title>
|
|
27
|
-
<path fill="none" stroke="black" d="
|
|
28
|
-
<polygon fill="black" stroke="black" points="
|
|
26
|
+
<path fill="none" stroke="black" d="M155.04,-359.52C128.68,-348.53 94.87,-334.45 68.91,-323.63"/>
|
|
27
|
+
<polygon fill="black" stroke="black" points="70.28,-320.41 59.7,-319.79 67.59,-326.87 70.28,-320.41"/>
|
|
29
28
|
</g>
|
|
30
|
-
<!--
|
|
31
|
-
<g id="
|
|
32
|
-
<title>
|
|
33
|
-
<polygon fill="none" stroke="black" points="
|
|
34
|
-
<text text-anchor="middle" x="
|
|
35
|
-
</g>
|
|
36
|
-
<!-- 0->6 -->
|
|
37
|
-
<g id="edge3" class="edge">
|
|
38
|
-
<title>0->6</title>
|
|
39
|
-
<path fill="none" stroke="black" d="M78.81,-431.91C67.71,-405.62 48.5,-353.45 48.5,-307 48.5,-307 48.5,-307 48.5,-161 48.5,-75.33 155.16,-41.29 235.63,-27.8"/>
|
|
40
|
-
<polygon fill="black" stroke="black" points="236.47,-31.21 245.8,-26.18 235.37,-24.3 236.47,-31.21"/>
|
|
41
|
-
</g>
|
|
42
|
-
<!-- 7 -->
|
|
43
|
-
<g id="node6" class="node">
|
|
44
|
-
<title>7</title>
|
|
45
|
-
<polygon fill="none" stroke="black" points="266,-180 129,-180 129,-144 266,-144 266,-180"/>
|
|
46
|
-
<text text-anchor="middle" x="197.5" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
|
29
|
+
<!-- 3 -->
|
|
30
|
+
<g id="node3" class="node">
|
|
31
|
+
<title>3</title>
|
|
32
|
+
<polygon fill="none" stroke="black" points="368,-108 268,-108 268,-72 368,-72 368,-108"/>
|
|
33
|
+
<text text-anchor="middle" x="318" y="-86.3" font-family="Times,serif" font-size="14.00">temporal-client</text>
|
|
47
34
|
</g>
|
|
48
|
-
<!-- 0->
|
|
35
|
+
<!-- 0->3 -->
|
|
49
36
|
<g id="edge2" class="edge">
|
|
50
|
-
<title>0->
|
|
51
|
-
<path fill="none" stroke="black" d="
|
|
52
|
-
<polygon fill="black" stroke="black" points="
|
|
37
|
+
<title>0->3</title>
|
|
38
|
+
<path fill="none" stroke="black" d="M255.43,-370.58C312.02,-363.02 391.98,-348.3 411,-324 461.94,-258.91 386.25,-162.28 343.68,-116.65"/>
|
|
39
|
+
<polygon fill="black" stroke="black" points="346.38,-114.4 336.95,-109.58 341.31,-119.23 346.38,-114.4"/>
|
|
53
40
|
</g>
|
|
54
|
-
<!--
|
|
55
|
-
<g id="
|
|
56
|
-
<title>
|
|
57
|
-
<polygon fill="none" stroke="black" points="
|
|
58
|
-
<text text-anchor="middle" x="
|
|
41
|
+
<!-- 4 -->
|
|
42
|
+
<g id="node4" class="node">
|
|
43
|
+
<title>4</title>
|
|
44
|
+
<polygon fill="none" stroke="black" points="298.5,-36 143.5,-36 143.5,0 298.5,0 298.5,-36"/>
|
|
45
|
+
<text text-anchor="middle" x="221" y="-14.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-protos</text>
|
|
59
46
|
</g>
|
|
60
|
-
<!--
|
|
61
|
-
<g id="
|
|
62
|
-
<title>
|
|
63
|
-
<path fill="none" stroke="black" d="
|
|
64
|
-
<polygon fill="black" stroke="black" points="
|
|
47
|
+
<!-- 0->4 -->
|
|
48
|
+
<g id="edge5" class="edge">
|
|
49
|
+
<title>0->4</title>
|
|
50
|
+
<path fill="none" stroke="black" d="M170.41,-359.59C137.57,-335.74 86,-289.6 86,-235 86,-235 86,-235 86,-161 86,-107.38 137.19,-65.95 176.53,-42.03"/>
|
|
51
|
+
<polygon fill="black" stroke="black" points="178.08,-45.18 184.93,-37.1 174.53,-39.14 178.08,-45.18"/>
|
|
65
52
|
</g>
|
|
66
53
|
<!-- 5 -->
|
|
67
|
-
<g id="
|
|
54
|
+
<g id="node5" class="node">
|
|
68
55
|
<title>5</title>
|
|
69
|
-
<polygon fill="none" stroke="black" points="
|
|
70
|
-
<text text-anchor="middle" x="
|
|
56
|
+
<polygon fill="none" stroke="black" points="289.5,-180 152.5,-180 152.5,-144 289.5,-144 289.5,-180"/>
|
|
57
|
+
<text text-anchor="middle" x="221" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
|
71
58
|
</g>
|
|
72
|
-
<!--
|
|
73
|
-
<g id="
|
|
74
|
-
<title>
|
|
75
|
-
<path fill="none" stroke="black" d="
|
|
76
|
-
<polygon fill="black" stroke="black" points="
|
|
59
|
+
<!-- 0->5 -->
|
|
60
|
+
<g id="edge4" class="edge">
|
|
61
|
+
<title>0->5</title>
|
|
62
|
+
<path fill="none" stroke="black" d="M188.08,-359.89C173.64,-329.74 148.72,-265.64 169,-216 173.27,-205.55 180.7,-196.05 188.64,-188.07"/>
|
|
63
|
+
<polygon fill="black" stroke="black" points="190.92,-190.72 195.87,-181.35 186.16,-185.59 190.92,-190.72"/>
|
|
77
64
|
</g>
|
|
78
|
-
<!--
|
|
79
|
-
<g id="
|
|
80
|
-
<title>
|
|
81
|
-
<
|
|
82
|
-
<
|
|
65
|
+
<!-- 6 -->
|
|
66
|
+
<g id="node6" class="node">
|
|
67
|
+
<title>6</title>
|
|
68
|
+
<polygon fill="none" stroke="black" points="266.5,-252 177.5,-252 177.5,-216 266.5,-216 266.5,-252"/>
|
|
69
|
+
<text text-anchor="middle" x="222" y="-230.3" font-family="Times,serif" font-size="14.00">temporal-sdk</text>
|
|
83
70
|
</g>
|
|
84
|
-
<!--
|
|
85
|
-
<g id="
|
|
86
|
-
<title>
|
|
87
|
-
<path fill="none" stroke="
|
|
88
|
-
<polygon fill="
|
|
71
|
+
<!-- 0->6 -->
|
|
72
|
+
<g id="edge3" class="edge">
|
|
73
|
+
<title>0->6</title>
|
|
74
|
+
<path fill="none" stroke="blue" d="M195.45,-359.59C197.18,-335.5 204.59,-291.75 211.56,-263.03"/>
|
|
75
|
+
<polygon fill="blue" stroke="blue" points="214.89,-264.13 214.02,-253.58 208.12,-262.37 214.89,-264.13"/>
|
|
89
76
|
</g>
|
|
90
|
-
<!--
|
|
77
|
+
<!-- 7 -->
|
|
91
78
|
<g id="node7" class="node">
|
|
92
|
-
<title>
|
|
93
|
-
<polygon fill="none" stroke="black" points="
|
|
94
|
-
<text text-anchor="middle" x="
|
|
79
|
+
<title>7</title>
|
|
80
|
+
<polygon fill="none" stroke="black" points="401.5,-324 234.5,-324 234.5,-288 401.5,-288 401.5,-324"/>
|
|
81
|
+
<text text-anchor="middle" x="318" y="-302.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-test-utils</text>
|
|
95
82
|
</g>
|
|
96
|
-
<!--
|
|
83
|
+
<!-- 0->7 -->
|
|
97
84
|
<g id="edge6" class="edge">
|
|
98
|
-
<title>
|
|
99
|
-
<path fill="none" stroke="blue" d="
|
|
100
|
-
<polygon fill="blue" stroke="blue" points="
|
|
85
|
+
<title>0->7</title>
|
|
86
|
+
<path fill="none" stroke="blue" d="M221.29,-359.52C235.94,-350.51 254.96,-339.42 272.29,-329.76"/>
|
|
87
|
+
<polygon fill="blue" stroke="blue" points="273.86,-332.89 280.93,-324.99 270.48,-326.76 273.86,-332.89"/>
|
|
101
88
|
</g>
|
|
102
|
-
<!--
|
|
103
|
-
<g id="
|
|
104
|
-
<title>
|
|
105
|
-
<
|
|
106
|
-
<
|
|
89
|
+
<!-- 3->4 -->
|
|
90
|
+
<g id="edge7" class="edge">
|
|
91
|
+
<title>3->4</title>
|
|
92
|
+
<path fill="none" stroke="black" d="M294.02,-71.7C282.01,-63.03 267.28,-52.4 254.21,-42.96"/>
|
|
93
|
+
<polygon fill="black" stroke="black" points="256.42,-40.25 246.27,-37.23 252.33,-45.92 256.42,-40.25"/>
|
|
107
94
|
</g>
|
|
108
|
-
<!--
|
|
109
|
-
<g id="
|
|
110
|
-
<title>
|
|
111
|
-
<path fill="none" stroke="
|
|
112
|
-
<polygon fill="
|
|
95
|
+
<!-- 5->3 -->
|
|
96
|
+
<g id="edge8" class="edge">
|
|
97
|
+
<title>5->3</title>
|
|
98
|
+
<path fill="none" stroke="black" d="M244.98,-143.7C256.99,-135.03 271.72,-124.4 284.79,-114.96"/>
|
|
99
|
+
<polygon fill="black" stroke="black" points="286.67,-117.92 292.73,-109.23 282.58,-112.25 286.67,-117.92"/>
|
|
113
100
|
</g>
|
|
114
|
-
<!-- 5->
|
|
115
|
-
<g id="
|
|
116
|
-
<title>5->
|
|
117
|
-
<path fill="none" stroke="black" d="
|
|
118
|
-
<polygon fill="black" stroke="black" points="
|
|
101
|
+
<!-- 5->4 -->
|
|
102
|
+
<g id="edge9" class="edge">
|
|
103
|
+
<title>5->4</title>
|
|
104
|
+
<path fill="none" stroke="black" d="M221,-143.59C221,-119.61 221,-76.14 221,-47.42"/>
|
|
105
|
+
<polygon fill="black" stroke="black" points="224.5,-47.62 221,-37.62 217.5,-47.62 224.5,-47.62"/>
|
|
119
106
|
</g>
|
|
120
|
-
<!--
|
|
107
|
+
<!-- 6->0 -->
|
|
121
108
|
<g id="edge11" class="edge">
|
|
122
|
-
<title>
|
|
123
|
-
<path fill="none" stroke="black" d="
|
|
124
|
-
<polygon fill="black" stroke="black" points="
|
|
125
|
-
</g>
|
|
126
|
-
<!-- 7->6 -->
|
|
127
|
-
<g id="edge12" class="edge">
|
|
128
|
-
<title>7->6</title>
|
|
129
|
-
<path fill="none" stroke="black" d="M210.74,-143.85C225.01,-125.62 248.63,-96.14 270.5,-72 279.24,-62.36 289.24,-52.16 298.18,-43.31"/>
|
|
130
|
-
<polygon fill="black" stroke="black" points="300.7,-45.74 305.39,-36.24 295.8,-40.75 300.7,-45.74"/>
|
|
109
|
+
<title>6->0</title>
|
|
110
|
+
<path fill="none" stroke="black" d="M223.57,-252.11C221.89,-276.03 214.51,-319.76 207.53,-348.6"/>
|
|
111
|
+
<polygon fill="black" stroke="black" points="204.18,-347.56 205.06,-358.12 210.96,-349.32 204.18,-347.56"/>
|
|
131
112
|
</g>
|
|
132
|
-
<!--
|
|
133
|
-
<g id="
|
|
134
|
-
<title>
|
|
135
|
-
<path fill="none" stroke="black" d="
|
|
136
|
-
<polygon fill="black" stroke="black" points="
|
|
113
|
+
<!-- 6->3 -->
|
|
114
|
+
<g id="edge10" class="edge">
|
|
115
|
+
<title>6->3</title>
|
|
116
|
+
<path fill="none" stroke="black" d="M258.49,-215.67C273.19,-206.93 288.99,-194.98 299,-180 310.95,-162.11 315.57,-138.07 317.27,-119.49"/>
|
|
117
|
+
<polygon fill="black" stroke="black" points="320.75,-119.9 317.91,-109.69 313.76,-119.44 320.75,-119.9"/>
|
|
137
118
|
</g>
|
|
138
|
-
<!--
|
|
119
|
+
<!-- 6->4 -->
|
|
139
120
|
<g id="edge13" class="edge">
|
|
140
|
-
<title>
|
|
141
|
-
<path fill="none" stroke="black" d="
|
|
142
|
-
<polygon fill="black" stroke="black" points="
|
|
121
|
+
<title>6->4</title>
|
|
122
|
+
<path fill="none" stroke="black" d="M181.41,-215.53C166.89,-207.06 152.12,-195.34 144,-180 136.51,-165.86 139.64,-159.39 144,-144 154.67,-106.33 180.26,-68.86 199.02,-44.92"/>
|
|
123
|
+
<polygon fill="black" stroke="black" points="201.6,-47.29 205.13,-37.31 196.14,-42.91 201.6,-47.29"/>
|
|
124
|
+
</g>
|
|
125
|
+
<!-- 6->5 -->
|
|
126
|
+
<g id="edge12" class="edge">
|
|
127
|
+
<title>6->5</title>
|
|
128
|
+
<path fill="none" stroke="black" d="M221.75,-215.7C221.65,-208.41 221.52,-199.73 221.41,-191.54"/>
|
|
129
|
+
<polygon fill="black" stroke="black" points="224.91,-191.57 221.27,-181.62 217.91,-191.67 224.91,-191.57"/>
|
|
143
130
|
</g>
|
|
144
|
-
<!--
|
|
131
|
+
<!-- 7->0 -->
|
|
145
132
|
<g id="edge16" class="edge">
|
|
146
|
-
<title>
|
|
147
|
-
<path fill="none" stroke="black" d="
|
|
148
|
-
<polygon fill="black" stroke="black" points="
|
|
133
|
+
<title>7->0</title>
|
|
134
|
+
<path fill="none" stroke="black" d="M294.08,-324.26C279.5,-333.23 260.5,-344.31 243.14,-354"/>
|
|
135
|
+
<polygon fill="black" stroke="black" points="241.54,-350.89 234.48,-358.78 244.93,-357.01 241.54,-350.89"/>
|
|
149
136
|
</g>
|
|
150
|
-
<!--
|
|
151
|
-
<g id="
|
|
152
|
-
<title>
|
|
153
|
-
<path fill="none" stroke="black" d="
|
|
154
|
-
<polygon fill="black" stroke="black" points="
|
|
137
|
+
<!-- 7->3 -->
|
|
138
|
+
<g id="edge14" class="edge">
|
|
139
|
+
<title>7->3</title>
|
|
140
|
+
<path fill="none" stroke="black" d="M318.57,-287.61C319.46,-258.08 320.99,-196.26 320,-144 319.85,-136.05 319.57,-127.44 319.27,-119.51"/>
|
|
141
|
+
<polygon fill="black" stroke="black" points="322.78,-119.54 318.87,-109.69 315.78,-119.83 322.78,-119.54"/>
|
|
155
142
|
</g>
|
|
156
|
-
<!--
|
|
157
|
-
<g id="
|
|
158
|
-
<title>
|
|
159
|
-
<path fill="none" stroke="black" d="
|
|
160
|
-
<polygon fill="black" stroke="black" points="
|
|
143
|
+
<!-- 7->4 -->
|
|
144
|
+
<g id="edge18" class="edge">
|
|
145
|
+
<title>7->4</title>
|
|
146
|
+
<path fill="none" stroke="black" d="M331.1,-287.73C360.65,-246.5 426.21,-140.69 377,-72 361.19,-49.92 335.65,-36.93 309.77,-29.32"/>
|
|
147
|
+
<polygon fill="black" stroke="black" points="310.71,-25.95 300.15,-26.77 308.92,-32.72 310.71,-25.95"/>
|
|
161
148
|
</g>
|
|
162
|
-
<!--
|
|
149
|
+
<!-- 7->5 -->
|
|
163
150
|
<g id="edge17" class="edge">
|
|
164
|
-
<title>
|
|
165
|
-
<path fill="none" stroke="black" d="
|
|
166
|
-
<polygon fill="black" stroke="black" points="
|
|
167
|
-
</g>
|
|
168
|
-
<!--
|
|
169
|
-
<g id="
|
|
170
|
-
<title>
|
|
171
|
-
<path fill="none" stroke="black" d="
|
|
172
|
-
<polygon fill="black" stroke="black" points="
|
|
173
|
-
</g>
|
|
174
|
-
<!-- 9->7 -->
|
|
175
|
-
<g id="edge20" class="edge">
|
|
176
|
-
<title>9->7</title>
|
|
177
|
-
<path fill="none" stroke="black" d="M297.75,-287.87C277.81,-263.03 240.73,-216.85 217.68,-188.14"/>
|
|
178
|
-
<polygon fill="black" stroke="black" points="220.29,-185.8 211.3,-180.19 214.83,-190.18 220.29,-185.8"/>
|
|
179
|
-
</g>
|
|
180
|
-
<!-- 9->8 -->
|
|
181
|
-
<g id="edge18" class="edge">
|
|
182
|
-
<title>9->8</title>
|
|
183
|
-
<path fill="none" stroke="black" d="M334.74,-287.7C346.69,-278.8 361.42,-267.82 374.35,-258.2"/>
|
|
184
|
-
<polygon fill="black" stroke="black" points="376.6,-260.88 382.53,-252.1 372.42,-255.27 376.6,-260.88"/>
|
|
151
|
+
<title>7->5</title>
|
|
152
|
+
<path fill="none" stroke="black" d="M311.96,-287.6C304.98,-268.89 292.34,-238.77 276,-216 268.79,-205.96 259.54,-196.2 250.69,-187.86"/>
|
|
153
|
+
<polygon fill="black" stroke="black" points="253.28,-185.48 243.53,-181.34 248.57,-190.66 253.28,-185.48"/>
|
|
154
|
+
</g>
|
|
155
|
+
<!-- 7->6 -->
|
|
156
|
+
<g id="edge15" class="edge">
|
|
157
|
+
<title>7->6</title>
|
|
158
|
+
<path fill="none" stroke="black" d="M294.27,-287.7C282.38,-279.03 267.81,-268.4 254.86,-258.96"/>
|
|
159
|
+
<polygon fill="black" stroke="black" points="257.16,-256.3 247.01,-253.24 253.03,-261.96 257.16,-256.3"/>
|
|
185
160
|
</g>
|
|
186
161
|
</g>
|
|
187
162
|
</svg>
|
|
@@ -346,12 +346,12 @@ impl StateMachineDefinition {
|
|
|
346
346
|
let name = &self.name;
|
|
347
347
|
let name_str = &self.name.to_string();
|
|
348
348
|
|
|
349
|
-
let transition_result_name = Ident::new(&format!("{}Transition"
|
|
349
|
+
let transition_result_name = Ident::new(&format!("{name}Transition"), name.span());
|
|
350
350
|
let transition_type_alias = quote! {
|
|
351
351
|
type #transition_result_name<Ds, Sm = #name> = TransitionResult<Sm, Ds>;
|
|
352
352
|
};
|
|
353
353
|
|
|
354
|
-
let state_enum_name = Ident::new(&format!("{}State"
|
|
354
|
+
let state_enum_name = Ident::new(&format!("{name}State"), name.span());
|
|
355
355
|
// If user has not defined any shared state, use the unit type.
|
|
356
356
|
let shared_state_type = self
|
|
357
357
|
.shared_state_type
|
|
@@ -390,7 +390,7 @@ impl StateMachineDefinition {
|
|
|
390
390
|
|
|
391
391
|
// Build the events enum
|
|
392
392
|
let events: HashSet<Variant> = self.transitions.iter().map(|t| t.event.clone()).collect();
|
|
393
|
-
let events_enum_name = Ident::new(&format!("{}Events"
|
|
393
|
+
let events_enum_name = Ident::new(&format!("{name}Events"), name.span());
|
|
394
394
|
let events: Vec<_> = events
|
|
395
395
|
.into_iter()
|
|
396
396
|
.map(|v| {
|
|
@@ -616,11 +616,11 @@ impl StateMachineDefinition {
|
|
|
616
616
|
self.all_states()
|
|
617
617
|
.iter()
|
|
618
618
|
.filter(|s| self.is_final_state(s))
|
|
619
|
-
.map(|s| format!("{} --> [*]"
|
|
619
|
+
.map(|s| format!("{s} --> [*]")),
|
|
620
620
|
)
|
|
621
621
|
.collect();
|
|
622
622
|
let transitions = transitions.join("\n");
|
|
623
|
-
format!("@startuml\n{}\n@enduml"
|
|
623
|
+
format!("@startuml\n{transitions}\n@enduml")
|
|
624
624
|
}
|
|
625
625
|
}
|
|
626
626
|
|
|
@@ -643,5 +643,5 @@ fn merge_transition_dests(transitions: Vec<Transition>) -> Vec<Transition> {
|
|
|
643
643
|
}
|
|
644
644
|
}
|
|
645
645
|
}
|
|
646
|
-
map.
|
|
646
|
+
map.into_values().collect()
|
|
647
647
|
}
|
|
@@ -207,10 +207,14 @@ where
|
|
|
207
207
|
new_state: Ds::default(),
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
+
}
|
|
210
211
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
212
|
+
impl<Sm, Ds> Default for TransitionResult<Sm, Ds>
|
|
213
|
+
where
|
|
214
|
+
Sm: StateMachine,
|
|
215
|
+
Ds: Into<Sm::State> + Default,
|
|
216
|
+
{
|
|
217
|
+
fn default() -> Self {
|
|
214
218
|
Self::OkNoShare {
|
|
215
219
|
commands: vec![],
|
|
216
220
|
new_state: Ds::default(),
|
|
@@ -23,7 +23,7 @@ PROTO_ROOT := .
|
|
|
23
23
|
PROTO_FILES = $(shell find $(PROTO_ROOT) -name "*.proto")
|
|
24
24
|
PROTO_DIRS = $(sort $(dir $(PROTO_FILES)))
|
|
25
25
|
PROTO_OUT := .gen
|
|
26
|
-
PROTO_IMPORTS
|
|
26
|
+
PROTO_IMPORTS = -I=$(PROTO_ROOT) -I=$(shell go list -modfile build/go.mod -m -f '{{.Dir}}' github.com/temporalio/gogo-protobuf)/protobuf
|
|
27
27
|
|
|
28
28
|
$(PROTO_OUT):
|
|
29
29
|
mkdir $(PROTO_OUT)
|
|
@@ -45,21 +45,21 @@ fix-path:
|
|
|
45
45
|
##### Plugins & tools #####
|
|
46
46
|
grpc-install: gogo-protobuf-install
|
|
47
47
|
printf $(COLOR) "Install/update gRPC plugins..."
|
|
48
|
-
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@
|
|
48
|
+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
|
|
49
49
|
|
|
50
50
|
gogo-protobuf-install: go-protobuf-install
|
|
51
|
-
|
|
51
|
+
go install -modfile build/go.mod github.com/temporalio/gogo-protobuf/protoc-gen-gogoslick
|
|
52
52
|
|
|
53
53
|
go-protobuf-install:
|
|
54
54
|
go install github.com/golang/protobuf/protoc-gen-go@v1.5.2
|
|
55
55
|
|
|
56
56
|
api-linter-install:
|
|
57
57
|
printf $(COLOR) "Install/update api-linter..."
|
|
58
|
-
go install github.com/googleapis/api-linter/cmd/api-linter@v1.
|
|
58
|
+
go install github.com/googleapis/api-linter/cmd/api-linter@v1.32.3
|
|
59
59
|
|
|
60
60
|
buf-install:
|
|
61
61
|
printf $(COLOR) "Install/update buf..."
|
|
62
|
-
go install github.com/bufbuild/buf/cmd/buf@v1.
|
|
62
|
+
go install github.com/bufbuild/buf/cmd/buf@v1.6.0
|
|
63
63
|
|
|
64
64
|
##### Linters #####
|
|
65
65
|
api-linter:
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
|
|
2
|
+
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
|
3
|
+
github.com/temporalio/gogo-protobuf v1.22.1 h1:K5ja5MqmCQKo4tlX7u3g+ZJqbvRr0589ss2cZQx2dSM=
|
|
4
|
+
github.com/temporalio/gogo-protobuf v1.22.1/go.mod h1:tCaEv+fB8tsyLgoaqKr78K/JOhdRe684yyo0z30SHyA=
|
|
5
|
+
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// The MIT License
|
|
2
|
+
//
|
|
3
|
+
// Copyright (c) 2020 Temporal Technologies Inc. All rights reserved.
|
|
4
|
+
//
|
|
5
|
+
// Copyright (c) 2020 Uber Technologies, Inc.
|
|
6
|
+
//
|
|
7
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
// in the Software without restriction, including without limitation the rights
|
|
10
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
// furnished to do so, subject to the following conditions:
|
|
13
|
+
//
|
|
14
|
+
// The above copyright notice and this permission notice shall be included in
|
|
15
|
+
// all copies or substantial portions of the Software.
|
|
16
|
+
//
|
|
17
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
+
// THE SOFTWARE.
|
|
24
|
+
|
|
25
|
+
package build
|
|
26
|
+
|
|
27
|
+
import (
|
|
28
|
+
_ "github.com/temporalio/gogo-protobuf/gogoproto" // gogoproto is just a random package name for module.
|
|
29
|
+
)
|