docs: refresh release archive guidance#480
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThis PR replaces a static release table with a data-driven VersionsTable that classifies releases by current/previous minor series, updates support-policy wording and licensing/USB install guidance, and integrates the new component into the download page. ChangesSupport Policy and Dynamic Release Table
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Comment |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
unraid-docs | ebb55e1 | Commit Preview URL Branch Preview URL |
May 13 2026, 09:45 PM |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/components/VersionsTable.tsx`:
- Around line 22-28: parseVersion treats unknown token parts as 0, which makes
compact prerelease tokens like "rc8" or "beta2" compare equal to the release;
update the parseVersion function to detect tokens matching /^(rc|beta)(\d+)$/i,
map "rc" to -1 and "beta" to -2, and include the parsed numeric suffix (e.g.,
rc8 -> [-1,8], beta2 -> [-2,2]) so comparative ordering distinguishes
prereleases from final releases; keep the existing behavior for plain "rc" or
"beta" and fallback to Number.parseInt with 0 for any other unknown parts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 9bbe47cb-1a1f-4ab6-93a4-d42bed422a75
📒 Files selected for processing (4)
docs/unraid-os/download_list.mdxdocs/unraid-os/troubleshooting/licensing-faq.mdxdocs/unraid-os/updating-unraid/release-types.mdxsrc/components/VersionsTable.tsx
| const parseVersion = (version: string): number[] => | ||
| version.split(/[-.]/).map((part) => { | ||
| if (part === "beta") return -2; | ||
| if (part === "rc") return -1; | ||
| const parsed = Number.parseInt(part, 10); | ||
| return Number.isNaN(parsed) ? 0 : parsed; | ||
| }); |
There was a problem hiding this comment.
Handle compact prerelease tokens (rc8, beta2) in version parsing.
parseVersion currently maps unknown tokens to 0, so versions like 6.12.0-rc8 can compare equal to 6.12.0. That can pick the wrong “latest” release for a minor and mislabel status badges.
🔧 Proposed fix
-const parseVersion = (version: string): number[] =>
- version.split(/[-.]/).map((part) => {
- if (part === "beta") return -2;
- if (part === "rc") return -1;
- const parsed = Number.parseInt(part, 10);
- return Number.isNaN(parsed) ? 0 : parsed;
- });
+const parseVersion = (version: string): number[] => {
+ const parts: number[] = [];
+
+ for (const rawPart of version.split(/[-.]/)) {
+ const part = rawPart.toLowerCase();
+ const betaMatch = part.match(/^beta(\d+)$/);
+ const rcMatch = part.match(/^rc(\d+)$/);
+
+ if (part === "beta") {
+ parts.push(-2);
+ } else if (part === "rc") {
+ parts.push(-1);
+ } else if (betaMatch) {
+ parts.push(-2, Number.parseInt(betaMatch[1], 10));
+ } else if (rcMatch) {
+ parts.push(-1, Number.parseInt(rcMatch[1], 10));
+ } else {
+ const parsed = Number.parseInt(part, 10);
+ parts.push(Number.isNaN(parsed) ? 0 : parsed);
+ }
+ }
+
+ return parts;
+};🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/components/VersionsTable.tsx` around lines 22 - 28, parseVersion treats
unknown token parts as 0, which makes compact prerelease tokens like "rc8" or
"beta2" compare equal to the release; update the parseVersion function to detect
tokens matching /^(rc|beta)(\d+)$/i, map "rc" to -1 and "beta" to -2, and
include the parsed numeric suffix (e.g., rc8 -> [-1,8], beta2 -> [-2,2]) so
comparative ordering distinguishes prereleases from final releases; keep the
existing behavior for plain "rc" or "beta" and fallback to Number.parseInt with
0 for any other unknown parts.
- Purpose: add the EOL support-policy changes to the release archive docs branch. - Before: the version archive grouped releases by stable, previous, and legacy without clearly explaining superseded builds or EOL support boundaries. - Problem: users could confuse archived or older patch builds with currently supported update targets. - Now: the docs define supported minor series, superseded patch builds, and EOL releases across the archive, licensing FAQ, and release-types guide. - Implementation: simplify the VersionsTable status filters, mark current and previous series support status dynamically, and update the 7.3.0 release notes to stable-release wording.
a99a04b to
ebb55e1
Compare
Summary
Validation
pnpm exec prettier --check docs/unraid-os/download_list.mdx docs/unraid-os/troubleshooting/licensing-faq.mdx docs/unraid-os/updating-unraid/release-types.mdx src/components/VersionsTable.tsxpnpm exec tsc --ignoreDeprecations 6.0(fails on existing unrelated type errors in RedirectList, ReleasesList, and theme Layout files)Summary by CodeRabbit
Documentation
Refactor