Skip to content

Commit 5440570

Browse files
authored
feat: Oeco stability 8 (#69)
* fix: updating sdk generators * fix: updating sdk generators * fix: updating sdk generators --------- Co-authored-by: Dimy Jeannot <>
1 parent a7ca354 commit 5440570

File tree

8 files changed

+129
-33
lines changed

8 files changed

+129
-33
lines changed

go/oeco-sdk/buf.gen.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins:
77
#### v2beta Generation
88
####
99
- local: protoc-gen-platform
10-
out: ./v2beta/gen/platform
10+
out: ./v2beta/gen
1111
opt:
1212
- paths=source_relative
1313
- language=go

go/oeco-sdk/v2beta/CHANGELOG.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,36 @@
22

33
### 🚀 Features
44

5-
- OECO cleanup 30 ([#62](https://github.com/openecosystems/ecosystem/pull/62))
6-
- Oeco cleanup 29 ([#61](https://github.com/openecosystems/ecosystem/pull/61))
5+
- OECO cleanup 30 ([#62](https://github.com/openecosystems/ecosystem/pull/62))
6+
- Oeco cleanup 29 ([#61](https://github.com/openecosystems/ecosystem/pull/61))
77

88
### 🩹 Fixes
99

10-
- disabling typescript projects for now ([#68](https://github.com/openecosystems/ecosystem/pull/68))
11-
- disabling typescript projects for now ([#66](https://github.com/openecosystems/ecosystem/pull/66))
12-
- Oeco stability 3 ([#65](https://github.com/openecosystems/ecosystem/pull/65))
13-
- stability and formatting ([#63](https://github.com/openecosystems/ecosystem/pull/63))
10+
- disabling typescript projects for now ([#68](https://github.com/openecosystems/ecosystem/pull/68))
11+
- disabling typescript projects for now ([#66](https://github.com/openecosystems/ecosystem/pull/66))
12+
- Oeco stability 3 ([#65](https://github.com/openecosystems/ecosystem/pull/65))
13+
- stability and formatting ([#63](https://github.com/openecosystems/ecosystem/pull/63))
1414

1515
### ❤️ Thank You
1616

17-
- Dimy Jeannot @dimyjeannot
17+
- Dimy Jeannot @dimyjeannot
1818

1919
## 0.17.0 (2025-07-26)
2020

2121
### 🚀 Features
2222

23-
- OECO cleanup 30 ([#62](https://github.com/openecosystems/ecosystem/pull/62))
24-
- Oeco cleanup 29 ([#61](https://github.com/openecosystems/ecosystem/pull/61))
23+
- OECO cleanup 30 ([#62](https://github.com/openecosystems/ecosystem/pull/62))
24+
- Oeco cleanup 29 ([#61](https://github.com/openecosystems/ecosystem/pull/61))
2525

2626
### 🩹 Fixes
2727

28-
- disabling typescript projects for now ([#66](https://github.com/openecosystems/ecosystem/pull/66))
29-
- Oeco stability 3 ([#65](https://github.com/openecosystems/ecosystem/pull/65))
30-
- stability and formatting ([#63](https://github.com/openecosystems/ecosystem/pull/63))
28+
- disabling typescript projects for now ([#66](https://github.com/openecosystems/ecosystem/pull/66))
29+
- Oeco stability 3 ([#65](https://github.com/openecosystems/ecosystem/pull/65))
30+
- stability and formatting ([#63](https://github.com/openecosystems/ecosystem/pull/63))
3131

3232
### ❤️ Thank You
3333

34-
- Dimy Jeannot @dimyjeannot
34+
- Dimy Jeannot @dimyjeannot
3535

3636
## 0.16.0 (2025-07-26)
3737

go/oeco-sdk/v2beta/bindings/nats/listener.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
optionv2pb "github.com/openecosystems/ecosystem/go/oeco-sdk/v2beta/gen/platform/options/v2"
1818
specv2pb "github.com/openecosystems/ecosystem/go/oeco-sdk/v2beta/gen/platform/spec/v2"
1919
"go.opentelemetry.io/otel/trace"
20+
"google.golang.org/protobuf/types/known/anypb"
2021
)
2122

2223
// SpecEventListener is an interface for handling event streaming, listening, and processing for specific configurations.
@@ -276,6 +277,28 @@ func RespondToJetstreamEvent(_ context.Context, request *ListenerMessage) {
276277
}
277278
}
278279

280+
func RespondToListenerProcess(ctx context.Context, request *ListenerMessage, response protopb.Message, serr sdkv2betalib.SpecErrorable) {
281+
if serr != nil {
282+
request.Spec.SpecError = serr.ToStatus()
283+
RespondToMultiplexedRequest(ctx, request)
284+
return
285+
}
286+
287+
a, err := anypb.New(response)
288+
if err != nil {
289+
request.Spec.SpecError = sdkv2betalib.ErrServerInternal.WithInternalErrorDetail(err).ToStatus()
290+
RespondToMultiplexedRequest(ctx, request)
291+
return
292+
}
293+
294+
if request.Spec.SpecData != nil {
295+
request.Spec.SpecData = &specv2pb.SpecData{}
296+
}
297+
298+
request.Spec.SpecData.Data = a
299+
RespondToMultiplexedRequest(ctx, request)
300+
}
301+
279302
// convertNatsToListenerMessage transforms a NATS message into a ListenerMessage while setting up the required context.
280303
// It unmarshals data from the NATS message into a Spec object and attaches it to the ListenerMessage.
281304
// Returns a context, ListenerMessage populated with details from the input, and an error if unmarshalling fails.

libs/plugins/protoc-gen-platform/languages/go/plugins/v2beta/sdk/go_sdk.go

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,17 @@ func (m GoSdkModule) GenerateClientFile(file pgs.File) {
113113
return
114114
}
115115

116-
system := fns.DomainSystemName2(file).LowerCamelCase().String()
117-
version := fns.GetPackageVersion(file)
116+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
117+
scope := _scope.LowerCamelCase().String()
118+
system := _system.LowerCamelCase().String()
119+
version := _version.String()
120+
gopackage := fns.GetGoPackageFromFile(file)
118121
fileName := fns.ProtoName(file)
119122

120-
clientFileName := outPath.SetExt("/" + system + "/" + version + "/" + system + version + "pbconnect" + "/" + fileName + ".client.go").String()
123+
// system := fns.DomainSystemName2(file).LowerCamelCase().String()
124+
// version := fns.GetPackageVersion(file)
125+
126+
clientFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + gopackage + "pbconnect" + "/" + fileName + ".client.go").String()
121127
// clientFileName := strings.TrimPrefix(m.ctx.OutputPath(file).SetExt(".client.go").String(), "platform/")
122128
m.OverwriteGeneratorTemplateFile(clientFileName, m.Tpl, file)
123129
}
@@ -149,7 +155,12 @@ func (m GoSdkModule) GenerateProjectJsonFile(file pgs.File) {
149155
template.Must(tpl.ParseFS(templates, "templates/*"))
150156
m.Tpl = tpl
151157

152-
projectJsonFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerCamelCase().String() + "/" + fns.GetPackageVersion(file) + "/project.json").String()
158+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
159+
scope := _scope.LowerCamelCase().String()
160+
system := _system.LowerCamelCase().String()
161+
version := _version.String()
162+
163+
projectJsonFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "project.json").String()
153164
m.OverwriteGeneratorTemplateFile(projectJsonFileName, m.Tpl, file)
154165
}
155166

@@ -180,7 +191,12 @@ func (m GoSdkModule) GeneratePackageJsonFile(file pgs.File) {
180191
template.Must(tpl.ParseFS(templates, "templates/*"))
181192
m.Tpl = tpl
182193

183-
projectJsonFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerCamelCase().String() + "/" + fns.GetPackageVersion(file) + "/package.json").String()
194+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
195+
scope := _scope.LowerCamelCase().String()
196+
system := _system.LowerCamelCase().String()
197+
version := _version.String()
198+
199+
projectJsonFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "package.json").String()
184200
m.OverwriteGeneratorTemplateFile(projectJsonFileName, m.Tpl, file)
185201
}
186202

@@ -211,7 +227,12 @@ func (m GoSdkModule) GenerateGoModFile(file pgs.File) {
211227
template.Must(tpl.ParseFS(templates, "templates/*"))
212228
m.Tpl = tpl
213229

214-
goModFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerCamelCase().String() + "/" + fns.GetPackageVersion(file) + "/go.mod").String()
230+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
231+
scope := _scope.LowerCamelCase().String()
232+
system := _system.LowerCamelCase().String()
233+
version := _version.String()
234+
235+
goModFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "go.mod").String()
215236
m.OverwriteGeneratorTemplateFile(goModFileName, m.Tpl, file)
216237
}
217238

@@ -242,7 +263,12 @@ func (m GoSdkModule) GenerateGoReleaserFile(file pgs.File) {
242263
template.Must(tpl.ParseFS(templates, "templates/*"))
243264
m.Tpl = tpl
244265

245-
name := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerCamelCase().String() + "/" + fns.GetPackageVersion(file) + "/.goreleaser.yaml").String()
266+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
267+
scope := _scope.LowerCamelCase().String()
268+
system := _system.LowerCamelCase().String()
269+
version := _version.String()
270+
271+
name := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + ".goreleaser.yaml").String()
246272
m.OverwriteGeneratorTemplateFile(name, m.Tpl, file)
247273
}
248274

@@ -278,6 +304,11 @@ func (m GoSdkModule) GenerateReadmeFile(file pgs.File) {
278304
return
279305
}
280306

281-
name := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerCamelCase().String() + "/" + fns.GetPackageVersion(file) + "/README.md").String()
307+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
308+
scope := _scope.LowerCamelCase().String()
309+
system := _system.LowerCamelCase().String()
310+
version := _version.String()
311+
312+
name := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "README.md").String()
282313
m.OverwriteGeneratorTemplateFile(name, m.Tpl, file)
283314
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// Code generated by protoc-gen-platform {{ pluginName }}. DO NOT EDIT.
22
// source: {{ .InputPath }}{{ $s := service . }}{{ $version := getPackageVersion .File }}{{ $apiType := getApiOptionsTypeName .File }}{{ $system := domainSystemName2 .File }}
33

4-
# README
4+
# README

libs/plugins/protoc-gen-platform/languages/go/plugins/v2beta/sdk_connector/go_sdk.go

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,17 @@ func (m GoSdkConnectorModule) GenerateClientFile(file pgs.File) {
145145
return
146146
}
147147

148-
system := fns.DomainSystemName2(file).LowerSnakeCase().String()
149-
systemFlattened := strings.ReplaceAll(system, "_", "")
150-
version := fns.GetPackageVersion(file)
148+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
149+
scope := _scope.LowerCamelCase().String()
150+
system := _system.LowerCamelCase().String()
151+
// systemFlattened := strings.ReplaceAll(system, "_", "")
152+
version := _version.String()
153+
gopackage := fns.GetGoPackageFromFile(file)
151154
fileName := fns.ProtoName(file)
152155

153156
// packagePath := fns.DotNotationToFilePath(file.Package().ProtoName().String())
154157

155-
clientFileName := outPath.SetExt("/" + system + "/" + version + "/" + systemFlattened + version + "pbconnect" + "/" + fileName + ".client.go").String()
158+
clientFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + gopackage + "pbconnect" + "/" + fileName + ".client.go").String()
156159
// clientFileName := strings.TrimPrefix(m.ctx.OutputPath(file).SetExt(".client.go").String(), "platform/")
157160
m.OverwriteGeneratorTemplateFile(clientFileName, m.Tpl, file)
158161
}
@@ -186,7 +189,12 @@ func (m GoSdkConnectorModule) GenerateProjectJsonFile(file pgs.File) {
186189
template.Must(tpl.ParseFS(templates, "templates/*"))
187190
m.Tpl = tpl
188191

189-
projectJsonFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerSnakeCase().String() + "/" + fns.GetPackageVersion(file) + "/project.json").String()
192+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
193+
scope := _scope.LowerCamelCase().String()
194+
system := _system.LowerCamelCase().String()
195+
version := _version.String()
196+
197+
projectJsonFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "project.json").String()
190198
m.OverwriteGeneratorTemplateFile(projectJsonFileName, m.Tpl, m.data)
191199
}
192200

@@ -218,7 +226,12 @@ func (m GoSdkConnectorModule) GeneratePackageJsonFile(file pgs.File) {
218226
template.Must(tpl.ParseFS(templates, "templates/*"))
219227
m.Tpl = tpl
220228

221-
projectJsonFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerSnakeCase().String() + "/" + fns.GetPackageVersion(file) + "/package.json").String()
229+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
230+
scope := _scope.LowerCamelCase().String()
231+
system := _system.LowerCamelCase().String()
232+
version := _version.String()
233+
234+
projectJsonFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "package.json").String()
222235
m.OverwriteGeneratorTemplateFile(projectJsonFileName, m.Tpl, m.data)
223236
}
224237

@@ -251,7 +264,12 @@ func (m GoSdkConnectorModule) GenerateGoModFile(file pgs.File) {
251264
template.Must(tpl.ParseFS(templates, "templates/*"))
252265
m.Tpl = tpl
253266

254-
goModFileName := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerSnakeCase().String() + "/" + fns.GetPackageVersion(file) + "/go.mod").String()
267+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
268+
scope := _scope.LowerCamelCase().String()
269+
system := _system.LowerCamelCase().String()
270+
version := _version.String()
271+
272+
goModFileName := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "go.mod").String()
255273
m.OverwriteGeneratorTemplateFile(goModFileName, m.Tpl, m.data)
256274
}
257275

@@ -283,7 +301,12 @@ func (m GoSdkConnectorModule) GenerateGoReleaserFile(file pgs.File) {
283301
template.Must(tpl.ParseFS(templates, "templates/*"))
284302
m.Tpl = tpl
285303

286-
name := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerSnakeCase().String() + "/" + fns.GetPackageVersion(file) + "/.goreleaser.sdk.yaml").String()
304+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
305+
scope := _scope.LowerCamelCase().String()
306+
system := _system.LowerCamelCase().String()
307+
version := _version.String()
308+
309+
name := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + ".goreleaser.sdk.yaml").String()
287310
m.OverwriteGeneratorTemplateFile(name, m.Tpl, m.data)
288311
}
289312

@@ -317,6 +340,11 @@ func (m GoSdkConnectorModule) GenerateReadmeFile(file pgs.File) {
317340
template.Must(tpl.ParseFS(templates, "templates/*"))
318341
m.Tpl = tpl
319342

320-
name := outPath.SetExt("/" + fns.DomainSystemName2(file).LowerSnakeCase().String() + "/" + fns.GetPackageVersion(file) + "/README.md").String()
343+
_scope, _system, _version, _ := fns.GetPackageScopeSystemAndVersion(file)
344+
scope := _scope.LowerCamelCase().String()
345+
system := _system.LowerCamelCase().String()
346+
version := _version.String()
347+
348+
name := outPath.SetExt("/" + scope + "/" + system + "/" + version + "/" + "README.md").String()
321349
m.OverwriteGeneratorTemplateFile(name, m.Tpl, file)
322350
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// Code generated by protoc-gen-platform {{ pluginName }}. DO NOT EDIT.
22
// source: {{ .InputPath }}{{ $s := service . }}{{ $version := getPackageVersion .File }}{{ $apiType := getApiOptionsTypeName .File }}{{ $system := domainSystemName2 .File }}
33

4-
# README
4+
# README

libs/plugins/protoc-gen-platform/shared/functions_package_go.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
11
package shared
22

33
import (
4+
"fmt"
45
"regexp"
56
"sort"
67
"strings"
78

89
pgs "github.com/lyft/protoc-gen-star/v2"
910
)
1011

12+
// GetPackageScopeSystemAndVersion extracts scope, system, version from the proto package name.
13+
// For example, "platform.cryptography.v2alpha" returns ("platform", "cryptography", "v2alpha").
14+
func (fns Functions) GetPackageScopeSystemAndVersion(file pgs.File) (scope pgs.Name, system pgs.Name, version pgs.Name, err error) {
15+
pkgName := file.Package().ProtoName().String()
16+
17+
parts := strings.Split(pkgName, ".")
18+
if len(parts) < 3 {
19+
return "", "", "", fmt.Errorf("invalid proto package format: %q", pkgName)
20+
}
21+
22+
return pgs.Name(parts[0]), pgs.Name(parts[1]), pgs.Name(parts[2]), nil
23+
}
24+
1125
// GetAnyGoFieldPackage returns the Go package name for a given protobuf field based on its type and attributes.
1226
func (fns Functions) GetAnyGoFieldPackage(f pgs.Field) string {
1327
//if f.Type().IsMap() {

0 commit comments

Comments
 (0)