Skip to content

Commit e9e8db1

Browse files
docs(swift): Dynamically update the swift SDK version (#2979)
1 parent 61a8753 commit e9e8db1

File tree

3 files changed

+79
-9
lines changed

3 files changed

+79
-9
lines changed

website/.ci/sdkVersions.go

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type Versions struct {
1717
Pypi Pypi `json:"pypi,omitempty"`
1818
Nuget Nuget `json:"nuget,omitempty"`
1919
GO GO `json:"go,omitempty"`
20+
Swift Swift `json:"swift,omitempty"`
2021
}
2122
type Maven struct {
2223
Sdk string `json:"sdk,omitempty"`
@@ -43,6 +44,10 @@ type Nuget struct {
4344
Provider string `json:"provider,omitempty"`
4445
}
4546

47+
type Swift struct {
48+
Provider string `json:"provider,omitempty"`
49+
}
50+
4651
type GO struct {
4752
Provider string `json:"provider,omitempty"`
4853
SDK string `json:"sdk,omitempty"`
@@ -51,7 +56,11 @@ type GO struct {
5156
func main() {
5257
var wg sync.WaitGroup
5358
versions := Versions{}
54-
wg.Add(14)
59+
wg.Add(15)
60+
go func() {
61+
defer wg.Done()
62+
versions.Swift.Provider = getSwiftVersion("go-feature-flag/openfeature-swift-provider")
63+
}()
5564
go func() {
5665
defer wg.Done()
5766
versions.Maven.Android = getMavenVersion("dev.openfeature", "android-sdk")
@@ -296,3 +305,35 @@ func getGOVersion(packageName string) string {
296305
}
297306
return res.Version
298307
}
308+
309+
func getSwiftVersion(repoSlug string) string {
310+
//
311+
u := url.URL{
312+
Scheme: "https",
313+
Host: "api.github.com",
314+
Path: fmt.Sprintf("repos/%s/releases/latest", repoSlug),
315+
}
316+
317+
resp, err := http.Get(u.String())
318+
if err != nil {
319+
log.Fatal(err)
320+
}
321+
defer resp.Body.Close()
322+
323+
body, err := io.ReadAll(resp.Body)
324+
if err != nil {
325+
log.Fatal(err)
326+
}
327+
328+
type githubRes struct {
329+
TagName string `json:"tag_name,omitempty"`
330+
}
331+
332+
var res githubRes
333+
err = json.Unmarshal(body, &res)
334+
if err != nil {
335+
log.Fatal(err)
336+
}
337+
338+
return res.TagName
339+
}

website/docs/sdk/client_providers/openfeature_swift.mdx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ sidebar_position: 20
33
title: Swift
44
description: How to use the OpenFeature Swift SDK for your iOS/tvOS/macOS application
55
---
6-
import Tabs from '@theme/Tabs';
7-
import TabItem from '@theme/TabItem';
6+
import versions from '@site/static/sdk-versions.json';
7+
import CodeBlock from '@theme/CodeBlock';
88

99
# Swift SDK
1010
[![version](https://img.shields.io/github/v/release/go-feature-flag/openfeature-swift-provider?label=Swift&display_name=tag&style=flat-square&logo=Swift)](https://github.com/go-feature-flag/openfeature-swift-provider)
1111

1212
In conjuction with the [OpenFeature SDK](https://openfeature.dev/docs/reference/concepts/provider) you will be able to evaluate your feature flags in your **iOS**/**tvOS**/**macOS** applications.
1313

14-
For documentation related to flags management in GO Feasture Flag, refer to the [GO Feature Flag documentation website](https://gofeatureflag.org/docs).
14+
For documentation related to flags management in GO Feature Flag, refer to the [GO Feature Flag documentation website](https://gofeatureflag.org/docs).
1515

1616
### Functionalities:
1717
- Managed the integration of the OpenFeature Swift SDK and GO Feature Flag relay-proxy.
@@ -23,9 +23,11 @@ For documentation related to flags management in GO Feasture Flag, refer to the
2323
### Swift Package Manager
2424

2525
In the dependencies section of Package.swift add:
26-
```swift
27-
.package(url: "https://github.com/go-feature-flag/openfeature-swift-provider.git", from: "0.1.0")
28-
```
26+
<CodeBlock
27+
language="swift">
28+
.package(url: "https://github.com/go-feature-flag/openfeature-swift-provider.git", from: "{versions.swift.provider.substr(1, versions.swift.provider.length)}")
29+
</CodeBlock>
30+
2931

3032
and in the target dependencies section add:
3133
```swift
@@ -58,7 +60,6 @@ The only required option to create a `GoFeatureFlagProvider` is the URL to your
5860
import GOFeatureFlag
5961
import OpenFeature
6062

61-
6263
let options = GoFeatureFlagProviderOptions(endpoint: "https://your_domain.io")
6364
let provider = GoFeatureFlagProvider(options: options)
6465

website/static/sdk-versions.json

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,29 @@
1-
{"maven":{"sdk":"1.13.0","providerKt":"0.2.0","providerJava":"0.4.0","android":"0.3.2"},"npm":{"core":"1.6.0","webSDK":"1.4.0","providerServer":"0.7.3","providerWeb":"0.2.3"},"pypi":{"sdk":"0.7.4","provider":"0.3.0"},"nuget":{"sdk":"2.2.0","provider":"0.2.0"},"go":{"provider":"v0.2.1","sdk":"v1.14.0"}}
1+
{
2+
"maven": {
3+
"sdk": "1.13.0",
4+
"providerKt": "0.3.0",
5+
"providerJava": "0.4.1",
6+
"android": "0.3.2"
7+
},
8+
"npm": {
9+
"core": "1.6.0",
10+
"webSDK": "1.4.0",
11+
"providerServer": "0.7.4",
12+
"providerWeb": "0.2.4"
13+
},
14+
"pypi": {
15+
"sdk": "0.7.4",
16+
"provider": "0.3.0"
17+
},
18+
"nuget": {
19+
"sdk": "2.2.0",
20+
"provider": "0.2.0"
21+
},
22+
"go": {
23+
"provider": "v0.2.1",
24+
"sdk": "v1.14.0"
25+
},
26+
"swift": {
27+
"provider": "v0.3.0"
28+
}
29+
}

0 commit comments

Comments
 (0)