1
1
# Go SDK for Serverless Workflow
2
-
3
2
Here you will find all the [ specification types] ( https://github.com/serverlessworkflow/specification/blob/main/schema/workflow.json ) defined by our Json Schemas, in Go.
4
3
4
+ Table of Contents
5
+ =================
6
+
7
+ - [ Status] ( #status )
8
+ - [ Releases] ( #releases )
9
+ - [ How to Use] ( #how-to-use )
10
+ - [ Parsing Serverless Workflow files] ( #parsing-serverless-workflow-files )
11
+ - [ Slack Channel] ( #slack-channel )
12
+ - [ Contributors Guide] ( #contributors-guide )
13
+ - [ Code Style] ( #code-style )
14
+ - [ EditorConfig] ( #editorconfig )
15
+ - [ Known Issues] ( #known-issues )
16
+
17
+
18
+ ## Status
5
19
Current status of features implemented in the SDK is listed in the table below:
6
20
7
21
| Feature | Status |
@@ -12,8 +26,8 @@ Current status of features implemented in the SDK is listed in the table below:
12
26
| Validate workflow definitions (Integrity) | :heavy_check_mark : |
13
27
| Generate workflow diagram (SVG) | :no_entry_sign : |
14
28
15
- ## Status
16
29
30
+ ## Releases
17
31
| Latest Releases | Conformance to spec version |
18
32
| :--------------------------------------------------------------------------:| :---: |
19
33
| [ v1.0.0] ( https://github.com/serverlessworkflow/sdk-go/releases/tag/v1.0.0 ) | [ v0.5] ( https://github.com/serverlessworkflow/specification/tree/0.5.x ) |
@@ -66,3 +80,58 @@ The `Workflow` structure then can be used in your application.
66
80
## Slack Channel
67
81
68
82
Join us at [ CNCF Slack] ( https://communityinviter.com/apps/cloud-native/cncf ) , channel ` #serverless-workflow-sdk ` and say hello 🙋.
83
+
84
+ ## Contributors Guide
85
+
86
+ This guide aims to guide newcomers to getting started with the project standards.
87
+
88
+
89
+ ### Code Style
90
+
91
+ For this project we use basically the default configuration for most used IDEs.
92
+ For the configurations below, make sure to properly configure your IDE:
93
+
94
+ - ** imports** : goimports
95
+
96
+ This should be enough to get you started.
97
+
98
+ If you are unsure that your IDE is not correctly configured, you can run the lint checks:
99
+
100
+ ``` bash
101
+ make lint
102
+ ```
103
+
104
+ If something goes wrong, the error will be printed, e.g.:
105
+ ``` bash
106
+ $ make lint
107
+ make addheaders
108
+ make fmt
109
+ ./hack/go-lint.sh
110
+ util/floatstr/floatstr_test.go:19: File is not ` goimports` -ed (goimports)
111
+ " k8s.io/apimachinery/pkg/util/yaml"
112
+ make: *** [lint] Error 1
113
+ ```
114
+
115
+ Lint issues can be fixed with the ` --fix ` flag, this command can be used:
116
+ ``` bash
117
+ make lint params=--fix
118
+ ```
119
+
120
+
121
+ ### EditorConfig
122
+ For IntelliJ you can find an example ` editorconfig ` file [ here] ( contrib/intellij.editorconfig ) . To use it please visit
123
+ the Jetbrains [ documentation] ( https://www.jetbrains.com/help/idea/editorconfig.html ) .
124
+
125
+
126
+ ### Known Issues
127
+
128
+ On MacOSX/darwin you might get this issue:
129
+ ```
130
+ goimports: can't extract issues from gofmt diff output
131
+ ```
132
+ To solve install the ` diffutils ` package:
133
+
134
+ ``` bash
135
+ brew install diffutils
136
+ ```
137
+
0 commit comments