Skip to content

Commit a027dc9

Browse files
committed
chore: add some initial data
1 parent e134265 commit a027dc9

File tree

10 files changed

+308
-40
lines changed

10 files changed

+308
-40
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
TO create an equivalent of sdkVersions.json for the docs site:
2+
FOR each SDK in data/sdks.json
3+
GET all the associated repo and SDK ID
4+
IF monorepo:
5+
GET all releases for that repo + ID
6+
ELSE:
7+
GET all releases for that repo
8+
GET the u2c version from data/features.json
9+
LET sdk-name be SDK.name
10+
CREATE JSON OBJECT with properties:
11+
name: $sdk-name
12+
u2cVersion: $u2c-version
13+
versions: [
14+
Object {
15+
versionMajorMinor: parse the semantic version to drop the patch
16+
releaseYear: parse the date to get hte releaseYear
17+
releaseMonthDay: parse the date to get the month/day
18+
}
19+
]

data/features.json

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
{
2+
"dotnet-client-sdk": {
3+
"u2c": {
4+
"introduced": "3.0"
5+
}
6+
},
7+
"dotnet-server-sdk": {
8+
"u2c": {
9+
"introduced": "7.0"
10+
}
11+
},
12+
"akamai": {
13+
"u2c": {
14+
"introduced": "1.0"
15+
}
16+
},
17+
"android-client-sdk": {
18+
"u2c": {
19+
"introduced": "4.0"
20+
}
21+
},
22+
"apex-server-sdk": {},
23+
"cpp-client-sdk": {
24+
"u2c": {
25+
"introduced": "3.0"
26+
}
27+
},
28+
"cpp-server-sdk": {
29+
"u2c": {
30+
"introduced": "3.0"
31+
}
32+
},
33+
"cloudflare": {},
34+
"electron": {},
35+
"erlang-server-sdk": {
36+
"u2c": {
37+
"introduced": "2.0"
38+
}
39+
},
40+
"flutter-client-sdk": {
41+
"u2c": {
42+
"introduced": "2.0"
43+
}
44+
},
45+
"go-server-sdk": {
46+
"u2c": {
47+
"introduced": "6.0"
48+
}
49+
},
50+
"haskell-server-sdk": {
51+
"u2c": {
52+
"introduced": "4.0"
53+
}
54+
},
55+
"ios-client-sdk": {
56+
"u2c": {
57+
"introduced": "8.0"
58+
}
59+
},
60+
"java-server-sdk": {
61+
"u2c": {
62+
"introduced": "6.0"
63+
}
64+
},
65+
"javascript-client-sdk": {
66+
"u2c": {
67+
"introduced": "3.0"
68+
}
69+
},
70+
"lua-server-sdk": {
71+
"u2c": {
72+
"introduced": "2.0"
73+
}
74+
},
75+
"node-client-sdk": {
76+
"u2c": {
77+
"introduced": "3.0"
78+
}
79+
},
80+
"node-server-sdk": {
81+
"u2c": {
82+
"introduced": "7.0"
83+
}
84+
},
85+
"php-server-sdk": {
86+
"u2c": {
87+
"introduced": "5.0"
88+
}
89+
},
90+
"python-server-sdk": {
91+
"u2c": {
92+
"introduced": "8.0"
93+
}
94+
},
95+
"react-client-sdk": {
96+
"u2c": {
97+
"introduced": "3.0"
98+
}
99+
},
100+
"react-native-client-sdk": {
101+
"u2c": {
102+
"introduced": "7.0"
103+
}
104+
},
105+
"roku-client-sdk": {
106+
"u2c": {
107+
"introduced": "2.0"
108+
}
109+
},
110+
"ruby-server-sdk": {
111+
"u2c": {
112+
"introduced": "7.0"
113+
}
114+
},
115+
"rust-server-sdk": {
116+
"u2c": {
117+
"introduced": "1.0"
118+
}
119+
},
120+
"vercel-client-sdk": {},
121+
"vue-client-sdk": {
122+
"u2c": {
123+
"introduced": "2.0"
124+
}
125+
}
126+
}

data/sdks.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[
2+
"akamai",
3+
"android-client-sdk",
4+
"apex-server-sdk",
5+
"cloudflare",
6+
"cpp-client-sdk",
7+
"cpp-server-sdk",
8+
"dotnet-client-sdk",
9+
"dotnet-server-sdk",
10+
"electron",
11+
"erlang-server-sdk",
12+
"flutter-client-sdk",
13+
"go-server-sdk",
14+
"haskell-server-sdk",
15+
"ios-client-sdk",
16+
"java-server-sdk",
17+
"javascript-client-sdk",
18+
"lua-server-sdk",
19+
"node-client-sdk",
20+
"node-server-sdk",
21+
"php-server-sdk",
22+
"python-server-sdk",
23+
"react-client-sdk",
24+
"react-native-client-sdk",
25+
"roku-client-sdk",
26+
"ruby-server-sdk",
27+
"rust-server-sdk",
28+
"vercel-client-sdk",
29+
"vue-client-sdk"
30+
]

data/types.json

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
11
{
2-
"node-server-sdk" : "server-side"
2+
"akamai": "edge",
3+
"android-client-sdk": "client-side",
4+
"apex-server-sdk": "server-side",
5+
"cloudflare": "edge",
6+
"cpp-client-sdk": "client-side",
7+
"cpp-server-sdk": "server-side",
8+
"dotnet-client-sdk": "client-side",
9+
"dotnet-server-sdk": "server-side",
10+
"electron": "client-side",
11+
"erlang-server-sdk": "server-side",
12+
"flutter-client-sdk": "client-side",
13+
"go-server-sdk": "server-side",
14+
"haskell-server-sdk": "server-side",
15+
"ios-client-sdk": "client-side",
16+
"java-server-sdk": "server-side",
17+
"javascript-client-sdk": "client-side",
18+
"lua-server-sdk": "server-side",
19+
"node-client-sdk": "client-side",
20+
"node-server-sdk": "server-side",
21+
"php-server-sdk": "server-side",
22+
"python-server-sdk": "server-side",
23+
"react-client-sdk": "client-side",
24+
"react-native-client-sdk": "client-side",
25+
"roku-client-sdk": "client-side",
26+
"ruby-server-sdk": "server-side",
27+
"rust-server-sdk": "server-side",
28+
"vercel-client-sdk": "client-side",
29+
"vue-client-sdk": "client-side"
330
}

schemas/features.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://launchdarkly.com/sdk-meta/features.json",
4+
"title": "SDK Features",
5+
"description": "List of SDK features",
6+
"type": "object",
7+
"$defs": {
8+
"SDKFeatureMap" : {
9+
"type": "object",
10+
"description": "Map of individual features for a particular SDK",
11+
"patternProperties": {
12+
"^[a-z0-9-]+$" : {
13+
"$ref" : "#/$defs/SDKFeature"
14+
}
15+
}
16+
},
17+
"SDKFeature" : {
18+
"type": "object",
19+
"description": "A single feature definition",
20+
"required" : ["introduced"],
21+
"properties": {
22+
"introduced": {
23+
"description": "The version that the feature was introduced",
24+
"$ref": "#/$defs/SDKVersion"
25+
},
26+
"deprecated": {
27+
"description": "The version that the feature was deprecated",
28+
"$ref": "#/$defs/SDKVersion"
29+
}
30+
}
31+
},
32+
"SDKVersion" : {
33+
"type" : "string",
34+
"description" : "A version string",
35+
"pattern" : "^[0-9]+\\.[0-9]+$"
36+
}
37+
},
38+
"patternProperties" : {
39+
"^[a-z-]+$" : {
40+
"$ref" : "#/$defs/SDKFeatureMap"
41+
}
42+
}
43+
}

scripts/format-json.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
for file in ./data/*.json; do
4+
jq . "$file" > "$file.tmp" && mv "$file.tmp" "$file"
5+
done
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
# This script uses the 'gh' command from Github along with the GraphQL API to enumerate
4+
# all releases for a given repo in the launchdarkly org.
5+
# Releases < 1.0 and alpha/beta tags are filtered out.
6+
7+
8+
if [ -z "$1" ]; then
9+
echo "Usage: $0 <repo>"
10+
exit 1
11+
fi
12+
13+
# TODO: this only fetches up to 100 releases.
14+
15+
# shellcheck disable=SC2016
16+
gh api graphql -f query='
17+
query($repo: String!) {
18+
repository(name: $repo, owner: "launchdarkly") {
19+
releases(last: 100) {
20+
nodes {
21+
tagName
22+
publishedAt
23+
}
24+
}
25+
}
26+
}' -F repo="$1" | jq -c '[.data.repository.releases.nodes[] |'\
27+
'{tag: .tagName, date: .publishedAt }] | map(select(.tag | contains("v0") | not))'\
28+
' | map(select(.tag | contains("beta") | not))'\
29+
' | map(select(.tag | contains("alpha") | not))'

scripts/monorepo-versions.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
# This script uses the 'gh' command from Github along with the GraphQL API to enumerate
4+
# all releases for a given monorepo in the launchdarkly org.
5+
# Releases < 1.0 and alpha/beta tags are filtered out.
6+
7+
if [ -z "$1" ]; then
8+
echo "Usage: $0 <repo> <sdk-id>"
9+
exit 1
10+
fi
11+
12+
# TODO: this only fetches up to 100 releases.
13+
14+
# shellcheck disable=SC2016
15+
releases=$(./releases.sh "$1")
16+
17+
echo "$releases" | jq 'map(select(.tag | contains($sdk)) | .tag = (.tag | sub("^" + $sub; ""; "")))' --arg sdk "$2" --arg sub "$2-v"

scripts/new-data-template.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/bash
2+
3+
# Usage: ./new-data-template.sh table-name
4+
# Outputs a new JSON file in /data with the given name.
5+
6+
if [ -z "$1" ]; then
7+
echo "Usage: $0 <table-name>"
8+
exit 1
9+
fi
10+
11+
jq 'map({(.): {}}) | add' data/sdks.json > data/"$1".json

scripts/releases.sh

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)