@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.
Files changed (153) hide show
  1. package/Cargo.lock +255 -48
  2. package/package.json +4 -4
  3. package/releases/aarch64-apple-darwin/index.node +0 -0
  4. package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
  5. package/releases/x86_64-apple-darwin/index.node +0 -0
  6. package/releases/x86_64-pc-windows-msvc/index.node +0 -0
  7. package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
  8. package/sdk-core/.buildkite/pipeline.yml +1 -3
  9. package/sdk-core/.cargo/config.toml +5 -2
  10. package/sdk-core/.github/workflows/heavy.yml +28 -0
  11. package/sdk-core/Cargo.toml +1 -1
  12. package/sdk-core/README.md +9 -5
  13. package/sdk-core/client/src/lib.rs +211 -36
  14. package/sdk-core/client/src/raw.rs +1 -1
  15. package/sdk-core/client/src/retry.rs +32 -20
  16. package/sdk-core/core/Cargo.toml +23 -9
  17. package/sdk-core/core/src/abstractions.rs +11 -0
  18. package/sdk-core/core/src/core_tests/activity_tasks.rs +6 -5
  19. package/sdk-core/core/src/core_tests/local_activities.rs +263 -22
  20. package/sdk-core/core/src/core_tests/queries.rs +2 -2
  21. package/sdk-core/core/src/core_tests/workflow_tasks.rs +249 -5
  22. package/sdk-core/core/src/ephemeral_server/mod.rs +5 -6
  23. package/sdk-core/core/src/lib.rs +2 -0
  24. package/sdk-core/core/src/protosext/mod.rs +1 -1
  25. package/sdk-core/core/src/telemetry/log_export.rs +1 -1
  26. package/sdk-core/core/src/telemetry/mod.rs +23 -8
  27. package/sdk-core/core/src/test_help/mod.rs +8 -1
  28. package/sdk-core/core/src/worker/activities/local_activities.rs +259 -125
  29. package/sdk-core/core/src/worker/activities.rs +3 -2
  30. package/sdk-core/core/src/worker/mod.rs +53 -26
  31. package/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  32. package/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
  33. package/sdk-core/core/src/worker/workflow/history_update.rs +835 -277
  34. package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +9 -17
  35. package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +3 -5
  36. package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +1 -2
  37. package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +3 -5
  38. package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +1 -2
  39. package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +1 -2
  40. package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +1 -2
  41. package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +73 -51
  42. package/sdk-core/core/src/worker/workflow/machines/mod.rs +3 -3
  43. package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +4 -4
  44. package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +1 -2
  45. package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +3 -5
  46. package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +6 -7
  47. package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
  48. package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +4 -4
  49. package/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
  50. package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +89 -58
  51. package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +4 -7
  52. package/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +21 -9
  53. package/sdk-core/core/src/worker/workflow/managed_run.rs +1021 -360
  54. package/sdk-core/core/src/worker/workflow/mod.rs +306 -346
  55. package/sdk-core/core/src/worker/workflow/run_cache.rs +29 -53
  56. package/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  57. package/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
  58. package/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +115 -0
  59. package/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  60. package/sdk-core/core/src/worker/workflow/workflow_stream.rs +444 -714
  61. package/sdk-core/core-api/Cargo.toml +2 -0
  62. package/sdk-core/core-api/src/errors.rs +1 -34
  63. package/sdk-core/core-api/src/lib.rs +6 -2
  64. package/sdk-core/core-api/src/worker.rs +14 -1
  65. package/sdk-core/etc/deps.svg +115 -140
  66. package/sdk-core/etc/regen-depgraph.sh +5 -0
  67. package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +6 -6
  68. package/sdk-core/fsm/rustfsm_trait/src/lib.rs +7 -3
  69. package/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  70. package/sdk-core/protos/api_upstream/Makefile +5 -5
  71. package/sdk-core/protos/api_upstream/build/go.mod +7 -0
  72. package/sdk-core/protos/api_upstream/build/go.sum +5 -0
  73. package/sdk-core/protos/api_upstream/build/tools.go +29 -0
  74. package/sdk-core/protos/api_upstream/go.mod +6 -0
  75. package/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +9 -2
  76. package/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +12 -19
  77. package/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +2 -2
  78. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
  79. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +3 -2
  80. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
  81. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +3 -3
  82. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +20 -2
  83. package/sdk-core/protos/api_upstream/temporal/api/{update/v1/message.proto → enums/v1/interaction_type.proto} +11 -18
  84. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
  85. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
  86. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
  87. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
  88. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
  89. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +2 -13
  90. package/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
  91. package/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
  92. package/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
  93. package/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
  94. package/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +13 -19
  95. package/sdk-core/protos/api_upstream/temporal/api/interaction/v1/message.proto +87 -0
  96. package/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +2 -2
  97. package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +2 -2
  98. package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -2
  99. package/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
  100. package/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
  101. package/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
  102. package/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -2
  103. package/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
  104. package/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +2 -2
  105. package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +13 -8
  106. package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +2 -2
  107. package/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +2 -0
  108. package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
  109. package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
  110. package/sdk-core/sdk/Cargo.toml +4 -3
  111. package/sdk-core/sdk/src/lib.rs +87 -21
  112. package/sdk-core/sdk/src/workflow_future.rs +7 -12
  113. package/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  114. package/sdk-core/sdk-core-protos/build.rs +36 -2
  115. package/sdk-core/sdk-core-protos/src/history_builder.rs +26 -19
  116. package/sdk-core/sdk-core-protos/src/history_info.rs +4 -0
  117. package/sdk-core/sdk-core-protos/src/lib.rs +78 -34
  118. package/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  119. package/sdk-core/test-utils/Cargo.toml +3 -1
  120. package/sdk-core/test-utils/src/histfetch.rs +1 -1
  121. package/sdk-core/test-utils/src/lib.rs +50 -18
  122. package/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  123. package/sdk-core/test-utils/src/workflows.rs +29 -0
  124. package/sdk-core/tests/fuzzy_workflow.rs +130 -0
  125. package/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +114 -7
  126. package/sdk-core/tests/integ_tests/heartbeat_tests.rs +5 -2
  127. package/sdk-core/tests/integ_tests/metrics_tests.rs +1 -1
  128. package/sdk-core/tests/integ_tests/polling_tests.rs +1 -39
  129. package/sdk-core/tests/integ_tests/queries_tests.rs +2 -127
  130. package/sdk-core/tests/integ_tests/visibility_tests.rs +52 -5
  131. package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +74 -1
  132. package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +5 -13
  133. package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +1 -1
  134. package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +2 -10
  135. package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +69 -197
  136. package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +4 -28
  137. package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +12 -7
  138. package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +14 -14
  139. package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +3 -19
  140. package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +3 -19
  141. package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +1 -1
  142. package/sdk-core/tests/integ_tests/workflow_tests.rs +5 -6
  143. package/sdk-core/tests/main.rs +2 -12
  144. package/sdk-core/tests/runner.rs +71 -34
  145. package/sdk-core/tests/wf_input_replay.rs +32 -0
  146. package/sdk-core/bridge-ffi/Cargo.toml +0 -24
  147. package/sdk-core/bridge-ffi/LICENSE.txt +0 -23
  148. package/sdk-core/bridge-ffi/build.rs +0 -25
  149. package/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -224
  150. package/sdk-core/bridge-ffi/src/lib.rs +0 -746
  151. package/sdk-core/bridge-ffi/src/wrappers.rs +0 -221
  152. package/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
  153. 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 prost_types::TimestampError;
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 concurrently.
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 concurrently.
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 {
@@ -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 2.43.0 (0)
4
+ <!-- Generated by graphviz version 7.0.4 (0)
5
5
  -->
6
- <!-- Title: %3 Pages: 1 -->
7
- <svg width="525pt" height="476pt"
8
- viewBox="0.00 0.00 524.50 476.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 472)">
10
- <title>%3</title>
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="173,-468 0,-468 0,-432 173,-432 173,-468"/>
16
- <text text-anchor="middle" x="86.5" y="-446.3" font-family="Times,serif" font-size="14.00">temporal&#45;sdk&#45;core&#45;bridge&#45;ffi</text>
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&#45;sdk&#45;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="369.5,-396 253.5,-396 253.5,-360 369.5,-360 369.5,-396"/>
22
- <text text-anchor="middle" x="311.5" y="-374.3" font-family="Times,serif" font-size="14.00">temporal&#45;sdk&#45;core</text>
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&#45;&gt;1 -->
25
24
  <g id="edge1" class="edge">
26
25
  <title>0&#45;&gt;1</title>
27
- <path fill="none" stroke="black" d="M141.25,-431.97C173.1,-422.06 213.42,-409.51 246.83,-399.12"/>
28
- <polygon fill="black" stroke="black" points="247.99,-402.42 256.5,-396.11 245.91,-395.74 247.99,-402.42"/>
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
- <!-- 6 -->
31
- <g id="node5" class="node">
32
- <title>6</title>
33
- <polygon fill="none" stroke="black" points="401,-36 246,-36 246,0 401,0 401,-36"/>
34
- <text text-anchor="middle" x="323.5" y="-14.3" font-family="Times,serif" font-size="14.00">temporal&#45;sdk&#45;core&#45;protos</text>
35
- </g>
36
- <!-- 0&#45;&gt;6 -->
37
- <g id="edge3" class="edge">
38
- <title>0&#45;&gt;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&#45;sdk&#45;core&#45;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&#45;client</text>
47
34
  </g>
48
- <!-- 0&#45;&gt;7 -->
35
+ <!-- 0&#45;&gt;3 -->
49
36
  <g id="edge2" class="edge">
50
- <title>0&#45;&gt;7</title>
51
- <path fill="none" stroke="black" d="M85.71,-431.86C84.92,-401.65 85.97,-337.48 105.5,-288 120.88,-249.04 151.5,-211.31 173.18,-187.68"/>
52
- <polygon fill="black" stroke="black" points="175.88,-189.92 180.16,-180.23 170.77,-185.14 175.88,-189.92"/>
37
+ <title>0&#45;&gt;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
- <!-- 2 -->
55
- <g id="node3" class="node">
56
- <title>2</title>
57
- <polygon fill="none" stroke="black" points="172.5,-324 114.5,-324 114.5,-288 172.5,-288 172.5,-324"/>
58
- <text text-anchor="middle" x="143.5" y="-302.3" font-family="Times,serif" font-size="14.00">rustfsm</text>
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&#45;sdk&#45;core&#45;protos</text>
59
46
  </g>
60
- <!-- 1&#45;&gt;2 -->
61
- <g id="edge4" class="edge">
62
- <title>1&#45;&gt;2</title>
63
- <path fill="none" stroke="black" d="M270.4,-359.88C243.41,-348.63 208.34,-334.02 181.91,-323"/>
64
- <polygon fill="black" stroke="black" points="183.17,-319.74 172.59,-319.12 180.47,-326.2 183.17,-319.74"/>
47
+ <!-- 0&#45;&gt;4 -->
48
+ <g id="edge5" class="edge">
49
+ <title>0&#45;&gt;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="node4" class="node">
54
+ <g id="node5" class="node">
68
55
  <title>5</title>
69
- <polygon fill="none" stroke="black" points="412.5,-108 312.5,-108 312.5,-72 412.5,-72 412.5,-108"/>
70
- <text text-anchor="middle" x="362.5" y="-86.3" font-family="Times,serif" font-size="14.00">temporal&#45;client</text>
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&#45;sdk&#45;core&#45;api</text>
71
58
  </g>
72
- <!-- 1&#45;&gt;5 -->
73
- <g id="edge5" class="edge">
74
- <title>1&#45;&gt;5</title>
75
- <path fill="none" stroke="black" d="M369.63,-361.71C391.38,-353.54 414.82,-341.45 431.5,-324 455.23,-299.18 453.17,-285.75 459.5,-252 462.45,-236.27 464.68,-231.14 459.5,-216 445.69,-175.67 412.97,-138.29 389.35,-115.12"/>
76
- <polygon fill="black" stroke="black" points="391.67,-112.5 382.03,-108.11 386.83,-117.55 391.67,-112.5"/>
59
+ <!-- 0&#45;&gt;5 -->
60
+ <g id="edge4" class="edge">
61
+ <title>0&#45;&gt;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
- <!-- 1&#45;&gt;6 -->
79
- <g id="edge8" class="edge">
80
- <title>1&#45;&gt;6</title>
81
- <path fill="none" stroke="black" d="M369.7,-363.34C430.3,-345.24 516.5,-306.87 516.5,-235 516.5,-235 516.5,-235 516.5,-161 516.5,-98.28 449.55,-60.18 394.51,-39.46"/>
82
- <polygon fill="black" stroke="black" points="395.69,-36.16 385.1,-36.04 393.3,-42.74 395.69,-36.16"/>
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&#45;sdk</text>
83
70
  </g>
84
- <!-- 1&#45;&gt;7 -->
85
- <g id="edge7" class="edge">
86
- <title>1&#45;&gt;7</title>
87
- <path fill="none" stroke="black" d="M264.03,-359.96C247.39,-351.64 230.2,-339.91 219.5,-324 192.37,-283.65 191.8,-224.66 194.32,-190.41"/>
88
- <polygon fill="black" stroke="black" points="197.83,-190.49 195.22,-180.22 190.86,-189.87 197.83,-190.49"/>
71
+ <!-- 0&#45;&gt;6 -->
72
+ <g id="edge3" class="edge">
73
+ <title>0&#45;&gt;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
- <!-- 8 -->
77
+ <!-- 7 -->
91
78
  <g id="node7" class="node">
92
- <title>8</title>
93
- <polygon fill="none" stroke="black" points="450,-252 361,-252 361,-216 450,-216 450,-252"/>
94
- <text text-anchor="middle" x="405.5" y="-230.3" font-family="Times,serif" font-size="14.00">temporal&#45;sdk</text>
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&#45;sdk&#45;core&#45;test&#45;utils</text>
95
82
  </g>
96
- <!-- 1&#45;&gt;8 -->
83
+ <!-- 0&#45;&gt;7 -->
97
84
  <g id="edge6" class="edge">
98
- <title>1&#45;&gt;8</title>
99
- <path fill="none" stroke="blue" d="M354.05,-359.78C369.82,-351.61 386.07,-340.02 395.5,-324 406.38,-305.52 405.76,-280.93 404.34,-262.27"/>
100
- <polygon fill="blue" stroke="blue" points="407.81,-261.75 403.49,-252.07 400.83,-262.32 407.81,-261.75"/>
85
+ <title>0&#45;&gt;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
- <!-- 9 -->
103
- <g id="node8" class="node">
104
- <title>9</title>
105
- <polygon fill="none" stroke="black" points="395,-324 228,-324 228,-288 395,-288 395,-324"/>
106
- <text text-anchor="middle" x="311.5" y="-302.3" font-family="Times,serif" font-size="14.00">temporal&#45;sdk&#45;core&#45;test&#45;utils</text>
89
+ <!-- 3&#45;&gt;4 -->
90
+ <g id="edge7" class="edge">
91
+ <title>3&#45;&gt;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
- <!-- 1&#45;&gt;9 -->
109
- <g id="edge9" class="edge">
110
- <title>1&#45;&gt;9</title>
111
- <path fill="none" stroke="blue" d="M305.58,-359.7C304.79,-351.98 304.56,-342.71 304.9,-334.11"/>
112
- <polygon fill="blue" stroke="blue" points="308.4,-334.32 305.6,-324.1 301.42,-333.84 308.4,-334.32"/>
95
+ <!-- 5&#45;&gt;3 -->
96
+ <g id="edge8" class="edge">
97
+ <title>5&#45;&gt;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&#45;&gt;6 -->
115
- <g id="edge10" class="edge">
116
- <title>5&#45;&gt;6</title>
117
- <path fill="none" stroke="black" d="M352.86,-71.7C348.37,-63.64 342.94,-53.89 337.98,-44.98"/>
118
- <polygon fill="black" stroke="black" points="340.95,-43.14 333.03,-36.1 334.84,-46.54 340.95,-43.14"/>
101
+ <!-- 5&#45;&gt;4 -->
102
+ <g id="edge9" class="edge">
103
+ <title>5&#45;&gt;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
- <!-- 7&#45;&gt;5 -->
107
+ <!-- 6&#45;&gt;0 -->
121
108
  <g id="edge11" class="edge">
122
- <title>7&#45;&gt;5</title>
123
- <path fill="none" stroke="black" d="M237.86,-143.88C260.52,-134.26 288.97,-122.19 312.97,-112.01"/>
124
- <polygon fill="black" stroke="black" points="314.43,-115.2 322.27,-108.07 311.69,-108.75 314.43,-115.2"/>
125
- </g>
126
- <!-- 7&#45;&gt;6 -->
127
- <g id="edge12" class="edge">
128
- <title>7&#45;&gt;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&#45;&gt;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
- <!-- 8&#45;&gt;1 -->
133
- <g id="edge14" class="edge">
134
- <title>8&#45;&gt;1</title>
135
- <path fill="none" stroke="black" d="M416.59,-252.07C423.07,-271.04 426.51,-301.89 413.5,-324 405.57,-337.47 392.82,-347.8 378.95,-355.62"/>
136
- <polygon fill="black" stroke="black" points="376.99,-352.69 369.71,-360.39 380.2,-358.91 376.99,-352.69"/>
113
+ <!-- 6&#45;&gt;3 -->
114
+ <g id="edge10" class="edge">
115
+ <title>6&#45;&gt;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
- <!-- 8&#45;&gt;5 -->
119
+ <!-- 6&#45;&gt;4 -->
139
120
  <g id="edge13" class="edge">
140
- <title>8&#45;&gt;5</title>
141
- <path fill="none" stroke="black" d="M400.31,-215.87C392.95,-191.56 379.4,-146.82 370.68,-118.01"/>
142
- <polygon fill="black" stroke="black" points="373.95,-116.75 367.71,-108.19 367.25,-118.77 373.95,-116.75"/>
121
+ <title>6&#45;&gt;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&#45;&gt;5 -->
126
+ <g id="edge12" class="edge">
127
+ <title>6&#45;&gt;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
- <!-- 8&#45;&gt;6 -->
131
+ <!-- 7&#45;&gt;0 -->
145
132
  <g id="edge16" class="edge">
146
- <title>8&#45;&gt;6</title>
147
- <path fill="none" stroke="black" d="M413.59,-215.56C426.78,-184.32 448.83,-117.84 421.5,-72 413.54,-58.64 400.91,-48.45 387.34,-40.75"/>
148
- <polygon fill="black" stroke="black" points="388.8,-37.56 378.32,-36.04 385.56,-43.77 388.8,-37.56"/>
133
+ <title>7&#45;&gt;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
- <!-- 8&#45;&gt;7 -->
151
- <g id="edge15" class="edge">
152
- <title>8&#45;&gt;7</title>
153
- <path fill="none" stroke="black" d="M360.88,-217.98C330.78,-207.86 290.71,-194.37 257.79,-183.29"/>
154
- <polygon fill="black" stroke="black" points="258.86,-179.96 248.26,-180.08 256.62,-186.59 258.86,-179.96"/>
137
+ <!-- 7&#45;&gt;3 -->
138
+ <g id="edge14" class="edge">
139
+ <title>7&#45;&gt;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
- <!-- 9&#45;&gt;1 -->
157
- <g id="edge19" class="edge">
158
- <title>9&#45;&gt;1</title>
159
- <path fill="none" stroke="black" d="M317.4,-324.1C318.2,-331.79 318.44,-341.05 318.1,-349.67"/>
160
- <polygon fill="black" stroke="black" points="314.61,-349.48 317.42,-359.7 321.59,-349.96 314.61,-349.48"/>
143
+ <!-- 7&#45;&gt;4 -->
144
+ <g id="edge18" class="edge">
145
+ <title>7&#45;&gt;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
- <!-- 9&#45;&gt;5 -->
149
+ <!-- 7&#45;&gt;5 -->
163
150
  <g id="edge17" class="edge">
164
- <title>9&#45;&gt;5</title>
165
- <path fill="none" stroke="black" d="M315.59,-287.85C324.43,-250.75 345.39,-162.81 356.04,-118.1"/>
166
- <polygon fill="black" stroke="black" points="359.48,-118.77 358.39,-108.23 352.67,-117.15 359.48,-118.77"/>
167
- </g>
168
- <!-- 9&#45;&gt;6 -->
169
- <g id="edge21" class="edge">
170
- <title>9&#45;&gt;6</title>
171
- <path fill="none" stroke="black" d="M308.43,-287.86C302.03,-249.05 288.97,-151.64 303.5,-72 305.11,-63.2 308.1,-53.95 311.29,-45.7"/>
172
- <polygon fill="black" stroke="black" points="314.62,-46.79 315.19,-36.21 308.15,-44.12 314.62,-46.79"/>
173
- </g>
174
- <!-- 9&#45;&gt;7 -->
175
- <g id="edge20" class="edge">
176
- <title>9&#45;&gt;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&#45;&gt;8 -->
181
- <g id="edge18" class="edge">
182
- <title>9&#45;&gt;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&#45;&gt;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&#45;&gt;6 -->
156
+ <g id="edge15" class="edge">
157
+ <title>7&#45;&gt;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>
@@ -0,0 +1,5 @@
1
+ # Run this from the repo root
2
+ cargo depgraph \
3
+ --focus temporal-sdk,temporal-sdk-core-protos,temporal-client,temporal-sdk-core-api,temporal-sdk-core,rustfsm \
4
+ --dev-deps \
5
+ | dot -Tsvg > etc/deps.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", name), name.span());
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", name), name.span());
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", name), name.span());
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!("{} --> [*]", s)),
619
+ .map(|s| format!("{s} --> [*]")),
620
620
  )
621
621
  .collect();
622
622
  let transitions = transitions.join("\n");
623
- format!("@startuml\n{}\n@enduml", transitions)
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.into_iter().map(|(_, v)| v).collect()
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
- /// Produce a transition with no commands relying on [Default] for the destination state's
212
- /// value
213
- pub fn default() -> Self {
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 := -I=$(PROTO_ROOT) -I=$(GOPATH)/src/github.com/temporalio/gogo-protobuf/protobuf
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@v1.2.0
48
+ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
49
49
 
50
50
  gogo-protobuf-install: go-protobuf-install
51
- GO111MODULE=off go get github.com/temporalio/gogo-protobuf/protoc-gen-gogoslick
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.31.0
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.4.0
62
+ go install github.com/bufbuild/buf/cmd/buf@v1.6.0
63
63
 
64
64
  ##### Linters #####
65
65
  api-linter:
@@ -0,0 +1,7 @@
1
+ module build
2
+
3
+ go 1.18
4
+
5
+ require (
6
+ github.com/temporalio/gogo-protobuf v1.22.1
7
+ )
@@ -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
+ )
@@ -0,0 +1,6 @@
1
+ // There is special go module in `build` directory that is used to control tools versions.
2
+ // This file exists because go 1.18 doesn't allow go sub modules if root dirrectory is not a go module.
3
+
4
+ module api
5
+
6
+ go 1.18