Skip to content

DOCS-3021: Render the deprecated and removed tables from the data file - #2980

Merged
ctauchen merged 1 commit into
tigera:mainfrom
ctauchen:DOCS-3021-deprecated-tables
Aug 28, 2026
Merged

DOCS-3021: Render the deprecated and removed tables from the data file#2980
ctauchen merged 1 commit into
tigera:mainfrom
ctauchen:DOCS-3021-deprecated-tables

Conversation

@ctauchen

@ctauchen ctauchen commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Sits on top of #2979 and will shrink to a single commit once that merges. Review the top commit only.

Every release-notes page carries a second hand-typed table, listing what has been deprecated or removed, with the same duplication and drift problem as the preview table. This renders it from data/feature-status.yaml too. With this and #2979 merged, no feature status is typed into a release-notes page anywhere.

Almost nothing new was needed. buildRows gains an include parameter, and the status filter is the only thing separating the two tables: one selects rows that were in preview during the window, the other rows that were deprecated or removed. The window, the product, carry-forward, ordering, and the legend are already shared. That parameter is the one deliberately left out of #2968 as speculative, on the grounds that it should arrive with a second caller rather than before one. This is the second caller.

Both statuses select a row, so a feature deprecated earlier and removed inside the window stays visible through the release that removed it. Enterprise 3.24 is the case that matters: compliance reporting reads Deprecated, Deprecated, Removed.

Both components are now named exports, so a page imports the pair on one line rather than a default and a name:

import { TechPreviewTable, DeprecatedFeaturesTable } from '@site/src/components/FeatureStatusTable';

Only the table and its legend are replaced. The prose above each table and the per-release list of deprecations below it are untouched.

Verified the same way as #2979, against what docs.tigera.io serves today. Across all seven deprecated tables there is no difference in any column header, in any row, or in any cell. Two things change:

  • Row order, on the four Enterprise pages, by the same first-appearance rule as everywhere else. The Open Source tables happen to already be in that order.
  • Every deprecated legend gains a gloss for the dash. The legend set is fixed per table, so the deprecation table always names generally available, scheduled for removal, no longer present, and not available in that release. No table published today has a dash cell, but a feature introduced and deprecated inside the same window would produce one, and the reader should not meet a symbol the legend does not name.

The tables already carried the same legend regardless of content, so this keeps them consistent with each other and with the preview tables, which #2979 puts on the same footing.

On the deploy preview:

The rendered tables should be indistinguishable from hand-written Markdown ones, since they are plain tables picking up the same theme styles.

Copilot AI lite review requested due to automatic review settings August 28, 2026 17:15
@ctauchen
ctauchen requested a review from a team as a code owner August 28, 2026 17:15
@netlify

netlify Bot commented Aug 28, 2026

Copy link
Copy Markdown

Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit 1088ca8
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6a91e2211469980008ef48ab
😎 Deploy Preview https://deploy-preview-2980--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 54 (🔴 down 41 from production)
Accessibility: 98 (no change from production)
Best Practices: 92 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Aug 28, 2026

Copy link
Copy Markdown

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit 1088ca8
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/6a91e221636ebf00083d9f30
😎 Deploy Preview https://deploy-preview-2980--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

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.

Pull request overview

This PR removes duplicated hand-written “Deprecated and removed features” tables from multiple release-notes pages by rendering them from data/feature-status.yaml, using the same FeatureStatusTable machinery already used for Tech Preview tables. It extends the shared row-building logic with an include status filter so the same component can render both tables consistently.

Changes:

  • Refactors the FeatureStatusTable component to support an include status filter and exports TechPreviewTable and DeprecatedFeaturesTable as named exports.
  • Extends buildRows to accept an include: FeatureStatus[] filter (tech-preview vs deprecated/removed).
  • Replaces hand-typed deprecated/removed Markdown tables in affected release-notes MDX pages with <DeprecatedFeaturesTable /> and updates tests accordingly.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/components/FeatureStatusTable/index.tsx Introduces a shared internal table component parameterized by include, and exports TechPreviewTable + new DeprecatedFeaturesTable.
src/components/FeatureStatusTable/featureStatus.ts Updates buildRows signature to filter rows by an include list of statuses.
src/components/FeatureStatusTable/test/index.test.tsx Updates imports to named exports and adds coverage for <DeprecatedFeaturesTable />.
src/components/FeatureStatusTable/test/featureStatus.test.ts Updates helpers/tests for the new include parameter and adds assertions for deprecated/removed tables/legends.
calico-enterprise_versioned_docs/version-3.24-2/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico-enterprise_versioned_docs/version-3.24-1/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico-enterprise_versioned_docs/version-3.23-2/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico-enterprise_versioned_docs/version-3.22-2/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico-enterprise_versioned_docs/version-3.21-2/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico_versioned_docs/version-3.32/release-notes/index.mdx Switches to named import style and replaces the deprecated/removed Markdown table with <DeprecatedFeaturesTable />.
calico_versioned_docs/version-3.31/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.
calico_versioned_docs/version-3.30/release-notes/index.mdx Replaces both hand-written tables with rendered components and imports named exports.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Copilot AI review requested due to automatic review settings August 28, 2026 17:29
@ctauchen
ctauchen force-pushed the DOCS-3021-deprecated-tables branch from ea4b5d0 to 782410a Compare August 28, 2026 17:29

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

features: Feature[],
product: string,
versions: string[],
include: FeatureStatus[]
@ctauchen
ctauchen force-pushed the DOCS-3021-deprecated-tables branch from 782410a to 7d7643c Compare August 28, 2026 19:30
Every release-notes page carries a second hand-typed table, listing what has
been deprecated or removed, with the same duplication and drift problem as the
preview table.

Generalise buildRows with an include parameter and add DeprecatedFeaturesTable
alongside TechPreviewTable. The status filter is the only thing separating the
two: one selects rows that were in preview during the window, the other rows
that were deprecated or removed. Everything else — the window, the product,
carry-forward, ordering, the legend — is already shared. Both statuses select a
row so that a feature deprecated earlier and removed inside the window stays
visible through the release that removed it, which is what Enterprise 3.24 does
with compliance reporting.

Both components are now named exports, so a page imports the pair on one line
rather than a default and a name. The seven pages that already used the preview
table are updated to match.

Place the table in all eight release-notes pages, replacing the table and its
legend and leaving the surrounding prose and the per-release list alone.

No row, cell, or column differs from what is published today. Row order changes
the same way it did for the preview tables, and six of the seven legends lose a
gloss for a status their table never uses: Removed everywhere but Enterprise
3.24, and GA as well in Enterprise 3.22, where every cell is Deprecated.
Copilot AI review requested due to automatic review settings August 28, 2026 19:31
@ctauchen
ctauchen force-pushed the DOCS-3021-deprecated-tables branch from 7d7643c to 1088ca8 Compare August 28, 2026 19:31
@ctauchen

Copy link
Copy Markdown
Collaborator Author

The readonly finding was correct and is fixed: buildRows now takes readonly FeatureStatus[], since it does not mutate the argument.

Worth recording how it survived to review, because the same gap will hide the next one. Nothing in the pipeline type-checks this code. Jest transforms through swc, and the site builds through swc as well, so both strip types without checking them. Running the repo's own tsc fails before it reaches any source, on two pre-existing tsconfig problems: @types/node is listed in types but not installed, and suppressImplicitAnyIndexErrors was removed in TypeScript 5.

Verified the fix rather than assuming it. Type-checking the two files against a minimal config reports the error before the change and nothing after:

src/components/FeatureStatusTable/index.tsx(35,56): error TS2345:
  Argument of type 'readonly FeatureStatus[]' is not assignable to
  parameter of type 'FeatureStatus[]'.

Fixing the repo tsconfig so CI can type-check at all is worth its own ticket. It is out of scope here, but this PR is evidence that a type error can reach review with every check green.

Copilot AI left a comment

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.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.

@ctauchen
ctauchen merged commit 51b2479 into tigera:main Aug 28, 2026
11 checks passed
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.

2 participants