@@ -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