Skip to content

docs: refresh release archive guidance#480

Open
elibosley wants to merge 1 commit into
mainfrom
codex/clarify-eol-docs
Open

docs: refresh release archive guidance#480
elibosley wants to merge 1 commit into
mainfrom
codex/clarify-eol-docs

Conversation

@elibosley
Copy link
Copy Markdown
Member

@elibosley elibosley commented May 13, 2026

Summary

  • Clarifies the Version Archive so releases are grouped by supported and EOL status.
  • Documents how current and previous public minor series are supported in the licensing FAQ and release-types guide.
  • Simplifies the versions table to mark supported, security-update, superseded, and EOL releases dynamically.

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.tsx
  • pnpm exec tsc --ignoreDeprecations 6.0 (fails on existing unrelated type errors in RedirectList, ReleasesList, and theme Layout files)
  • Full build not run per repo guidance.

Summary by CodeRabbit

  • Documentation

    • Clarified release-archive grouping by support status, updated licensing-eligibility guidance, expanded USB boot-media and licensing FAQ instructions, and refined pre-release/support-policy wording and formatting.
    • Reformatted release-type guidance and WebGUI menu reference styles.
  • Refactor

    • Reworked the versions display to be data-driven, showing per-release status badges (Supported, Security updates, Superseded, EOL) and organizing releases by series.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 9e7daea7-7888-4484-b209-7fa8de90ef13

📥 Commits

Reviewing files that changed from the base of the PR and between a99a04b and ebb55e1.

📒 Files selected for processing (4)
  • docs/unraid-os/download_list.mdx
  • docs/unraid-os/troubleshooting/licensing-faq.mdx
  • docs/unraid-os/updating-unraid/release-types.mdx
  • src/components/VersionsTable.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/unraid-os/updating-unraid/release-types.mdx
  • src/components/VersionsTable.tsx

📝 Walkthrough

Walkthrough

This 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.

Changes

Support Policy and Dynamic Release Table

Layer / File(s) Summary
Release types policy documentation
docs/unraid-os/updating-unraid/release-types.mdx
"Release types at a glance" table markup reformatted; WebGUI inline emphasis (Tools → Update OS, Tools → Diagnostics) adjusted; pre-release support rule split into public-minor counting and per-build supersession bullets.
Licensing FAQ and USB/manual install updates
docs/unraid-os/troubleshooting/licensing-faq.mdx
Support-policy wording updated for patch/minor-series/EOL behavior; standardized Tools → Registration emphasis; expanded USB boot-media backup/install procedure (require recent USB backup, copy single .key), and reformatted attached-storage footnotes.
Download page content and import formatting
docs/unraid-os/download_list.mdx
Import specifier switched to double quotes; page content expanded to explain release-archive grouping by support status (supported minors receive latest patches/pre-releases; older builds superseded; EOL receives no updates); licensing-eligibility link added.
VersionsTable typings and helpers
src/components/VersionsTable.tsx (types/helpers)
Adds Release typing (optional basefile/url/md5/downloadable), version parsing (parseVersion, minorOf), comparator, status badge renderer, and getSupportPolicies generator.
VersionsTable fetch and grouping
src/components/VersionsTable.tsx (fetch/group)
Viewer now fetches includePublic=1, sorts releases, groups into current/previous minor series, and computes latestCurrentRelease/latestPreviousRelease for classification.
VersionsTable row logic and rendering
src/components/VersionsTable.tsx (row/render)
Determinisitic getRowStatus replaces expandable changelog model; "Release notes" links to changelog_pretty; download/MD5 cells conditionally shown or display guidance/N/A.
VersionsTable UI controls and layout
src/components/VersionsTable.tsx (UI)
Filter buttons replaced by supported/eol tabs; policy panel driven by supportPolicies[filter]; table rendered from groups[filter]; removed "What's next?" and future release sections.
VersionsTable export wrapper
src/components/VersionsTable.tsx (export)
Exports VersionsTable as BrowserOnly wrapper rendering the Viewer.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐰 A table once carved in stone,
Now hums with parsed releases shown,
Minor series sorted, badges bright,
Supported, Superseded, EOL in sight—
Hop on, click the notes, and bite!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title directly matches the PR's primary objective: refreshing release archive guidance by clarifying version grouping and support status.
Description check ✅ Passed The description comprehensively covers the changes, objectives, and validation performed, meeting the repository's requirements for documentation updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/clarify-eol-docs

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

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Comment @coderabbitai help to get the list of available commands and usage tips.

@elibosley elibosley marked this pull request as ready for review May 13, 2026 21:25
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 13, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

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

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 30eeb5c and a99a04b.

📒 Files selected for processing (4)
  • docs/unraid-os/download_list.mdx
  • docs/unraid-os/troubleshooting/licensing-faq.mdx
  • docs/unraid-os/updating-unraid/release-types.mdx
  • src/components/VersionsTable.tsx

Comment on lines +22 to +28
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;
});
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

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.
@elibosley elibosley force-pushed the codex/clarify-eol-docs branch from a99a04b to ebb55e1 Compare May 13, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant