11# Go SDK for Serverless Workflow
2-
32Here you will find all the [ specification types] ( https://github.com/serverlessworkflow/specification/blob/main/schema/workflow.json ) defined by our Json Schemas, in Go.
43
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
519Current status of features implemented in the SDK is listed in the table below:
620
721| Feature | Status |
@@ -12,8 +26,8 @@ Current status of features implemented in the SDK is listed in the table below:
1226| Validate workflow definitions (Integrity) | :heavy_check_mark : |
1327| Generate workflow diagram (SVG) | :no_entry_sign : |
1428
15- ## Status
1629
30+ ## Releases
1731| Latest Releases | Conformance to spec version |
1832| :--------------------------------------------------------------------------:| :---: |
1933| [ 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.
6680## Slack Channel
6781
6882Join 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