@@ -40,15 +40,15 @@ echo_latest_stable_version() {
40
40
echo " stable"
41
41
return
42
42
fi
43
-
43
+
44
44
# Try to get latest stable version, fallback to "stable" if it fails
45
45
version=$( curl -fsSLI -o /dev/null -w " %{url_effective}" https://github.com/coder/coder/releases/latest 2> /dev/null || echo " error" )
46
46
if [[ " ${version} " == " error" || -z " ${version} " ]]; then
47
47
log " Warning: Failed to fetch latest stable version. Using 'stable' as placeholder."
48
48
echo " stable"
49
49
return
50
50
fi
51
-
51
+
52
52
version=" ${version# https:// github.com/ coder/ coder/ releases/ tag/ v} "
53
53
echo " v${version} "
54
54
}
@@ -58,23 +58,23 @@ echo_latest_mainline_version() {
58
58
echo " mainline"
59
59
return
60
60
fi
61
-
61
+
62
62
# Try to get the latest mainline version, fallback to "mainline" if it fails
63
63
local version
64
- version=$( curl -fsSL -H " Authorization: token ${GITHUB_TOKEN} " https://api.github.com/repos/coder/coder/releases 2> /dev/null |
64
+ version=$( curl -fsSL -H " Authorization: token ${GITHUB_TOKEN} " https://api.github.com/repos/coder/coder/releases 2> /dev/null |
65
65
awk -F' "' ' /"tag_name"/ {print $4}' |
66
66
tr -d v |
67
67
tr . ' ' |
68
68
sort -k1,1nr -k2,2nr -k3,3nr |
69
69
head -n1 |
70
70
tr ' ' . || echo " " )
71
-
71
+
72
72
if [[ -z " ${version} " ]]; then
73
73
log " Warning: Failed to fetch latest mainline version. Using 'mainline' as placeholder."
74
74
echo " mainline"
75
75
return
76
76
fi
77
-
77
+
78
78
echo " v${version} "
79
79
}
80
80
@@ -86,7 +86,7 @@ sparse_clone_codersdk() {
86
86
echo " "
87
87
return
88
88
fi
89
-
89
+
90
90
# Always return success with a placeholder directory
91
91
echo " ${1} /${2} "
92
92
}
@@ -140,13 +140,13 @@ EOT
140
140
extract_version_experiment_info () {
141
141
local dir=$1
142
142
local version=$2
143
-
143
+
144
144
if [[ " ${GH_AVAILABLE} " == " false" || -z " ${dir} " ]]; then
145
145
# If GitHub isn't available, just set all features to the same version
146
146
extract_local_experiment_info | jq --arg version " ${version} " ' [.[] | . + {"versions": [$version]}]'
147
147
return
148
148
fi
149
-
149
+
150
150
# For simplicity and stability, let's just use the local experiments
151
151
# and mark them as available in the specified version.
152
152
# This avoids the complex Go module replacement that can be error-prone
@@ -158,42 +158,42 @@ combine_experiment_info() {
158
158
local workdir=$1
159
159
local stable_version=$2
160
160
local mainline_version=$3
161
-
161
+
162
162
# Extract information from different versions
163
163
local local_info stable_info mainline_info
164
164
local_info=$( extract_local_experiment_info)
165
-
165
+
166
166
if [[ " ${GH_AVAILABLE} " == " true" ]]; then
167
167
# Create sparse clones and extract info
168
168
local stable_dir mainline_dir
169
-
169
+
170
170
stable_dir=$( sparse_clone_codersdk " ${workdir} " " stable" " ${stable_version} " )
171
171
if [[ -n " ${stable_dir} " ]]; then
172
172
stable_info=$( extract_version_experiment_info " ${stable_dir} " " stable" )
173
173
else
174
174
# Fallback if sparse clone failed
175
175
stable_info=$( extract_local_experiment_info | jq ' [.[] | . + {"versions": ["stable"]}]' )
176
176
fi
177
-
177
+
178
178
mainline_dir=$( sparse_clone_codersdk " ${workdir} " " mainline" " ${mainline_version} " )
179
179
if [[ -n " ${mainline_dir} " ]]; then
180
180
mainline_info=$( extract_version_experiment_info " ${mainline_dir} " " mainline" )
181
181
else
182
182
# Fallback if sparse clone failed
183
183
mainline_info=$( extract_local_experiment_info | jq ' [.[] | . + {"versions": ["mainline"]}]' )
184
184
fi
185
-
185
+
186
186
# Cleanup
187
187
rm -rf " ${workdir} "
188
188
else
189
189
# If GitHub isn't available, just mark everything as available in all versions
190
190
stable_info=$( extract_local_experiment_info | jq ' [.[] | . + {"versions": ["stable"]}]' )
191
191
mainline_info=$( extract_local_experiment_info | jq ' [.[] | . + {"versions": ["mainline"]}]' )
192
192
fi
193
-
193
+
194
194
# Add 'main' version to local info
195
195
local_info=$( echo " ${local_info} " | jq ' [.[] | . + {"versions": ["main"]}]' )
196
-
196
+
197
197
# Combine all info
198
198
echo ' []' | jq \
199
199
--argjson local " ${local_info} " \
@@ -215,20 +215,20 @@ combine_experiment_info() {
215
215
# Generate the early access features table
216
216
generate_experiments_table () {
217
217
local experiment_info=$1
218
-
218
+
219
219
echo " | Feature Flag | Name | Available in |"
220
220
echo " |-------------|------|--------------|"
221
-
221
+
222
222
echo " ${experiment_info} " | jq -r ' .[] | select(.stage=="early access") | "| `\(.value)` | \(.description) | \(.versions | join(", ")) |"'
223
223
}
224
224
225
225
# Generate the beta features table
226
226
generate_beta_table () {
227
227
local experiment_info=$1
228
-
228
+
229
229
echo " | Feature Flag | Name | Available in |"
230
230
echo " |-------------|------|--------------|"
231
-
231
+
232
232
echo " ${experiment_info} " | jq -r ' .[] | select(.stage=="beta") | "| `\(.value)` | \(.description) | \(.versions | join(", ")) |"'
233
233
}
234
234
@@ -315,4 +315,4 @@ rm -f /tmp/ea_content.md /tmp/beta_content.md
315
315
rm -f " ${dest} .bak"
316
316
317
317
# Format the file with prettier
318
- (cd site && pnpm exec prettier --cache --write ../" ${dest} " )
318
+ (cd site && pnpm exec prettier --cache --write ../" ${dest} " )
0 commit comments