Skip to content

docs: regenerate command compatibility table from source#543

Merged
vyavdoshenko merged 1 commit into
mainfrom
bobik/update_compat_doc
Jul 6, 2026
Merged

docs: regenerate command compatibility table from source#543
vyavdoshenko merged 1 commit into
mainfrom
bobik/update_compat_doc

Conversation

@vyavdoshenko

Copy link
Copy Markdown
Contributor

Regenerates docs/command-reference/compatibility.md deterministically from the
Redis + Dragonfly sources (Dragonfly v1.39.0, Redis 8.6.4).

This PR is machine-generated output. The generator and all of its logic live
in the companion PR: # (tools(docsync): add deterministic compat_sync generator). This PR contains no hand-edited labels — every label is
the tool's source-derived verdict.

Structural change

Adds a Details column (3 → 4 columns) carrying the Missing: <options>. note
for every partially-supported row.

Label changes (46 rows)

Labels reflect surface capability: whether Dragonfly accepts the command/option,
not how it behaves.

Corrected up → Fully supported (23): ACL DRYRUN/LOAD/SAVE/SETUSER, BGSAVE,
CLIENT INFO, CLUSTER KEYSLOT/MYID, CONFIG REWRITE, MEMORY STATS, MODULE LIST,
READONLY, READWRITE, SORT, SORT_RO, FT.INFO, FT.PROFILE, FT.DROPINDEX, HEXPIRE,
BF.LOADCHUNK, BF.SCANDUMP, JSON.DEBUG MEMORY (+ ACL WHOAMI casing fix).

Downgraded → Partially supported (12): BITOP (Redis 8.2 DIFF/ANDOR/ONE),
SET (Redis 8.2 IFEQ/IFNE/…), FLUSHALL, FLUSHDB, MEMORY USAGE, SHUTDOWN,
XADD, XSETID, XTRIM, XREADGROUP, FT.HYBRID, SCRIPT FLUSH — each accepts the base
command but a Redis option is not honored (listed in Details).

→ Unsupported (2): MODULE LOAD (arity allows only MODULE LIST);
FUNCTION FLUSH and LATENCY HISTOGRAM/LATEST are no-op stubs (recognized but reply
empty/OK with no work).

→ Dragonfly-specific (1): FT.CONFIG.

Row cleanup

Fixes corrupted curated row names and a duplicate:

  • BITCCLIENT GETREDIROUNTCLIENT GETREDIR
  • CLUSTER DELSLOTRANGECLUSTER DELSLOTSRANGE
  • BICLUSTER REPLICASTCOUNTCLUSTER REPLICAS
  • removed MSGETEXET (duplicate of GETEX)

Totals

301 Fully supported · 19 Partially supported · 85 Unsupported · 1 Dragonfly-specific.

@vyavdoshenko vyavdoshenko self-assigned this Jul 5, 2026
@vercel

vercel Bot commented Jul 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
documentation Ready Ready Preview, Comment Jul 5, 2026 6:02pm

Request Review

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

docs: regenerate deterministic command compatibility table

📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Regenerate compatibility table from Redis/Dragonfly sources with deterministic, source-derived
 labels.
• Add a Details column listing missing Redis options for partially supported commands.
• Fix corrupted/duplicate rows and append verification versions/totals metadata.
Diagram

graph TD
  R{{"Redis sources"}} --> G["compat_sync generator"] --> M["compatibility.md"] --> S["Docs site"]
  D{{"Dragonfly sources"}} --> G
  subgraph Legend
    direction LR
    _ext{{"External source"}} ~~~ _proc["Generator"] ~~~ _doc["Markdown doc"]
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep manual compatibility table (curated edits)
  • ➕ Smaller, more targeted diffs per change
  • ➕ Can encode nuanced behavior notes beyond surface acceptance
  • ➖ Prone to drift vs actual command surfaces
  • ➖ High ongoing maintenance cost and inconsistent labeling
2. Generate table during docs build/CI (don’t commit output)
  • ➕ Always up-to-date with generator and inputs
  • ➕ Avoids committing large regenerated diffs
  • ➖ Requires generator + inputs available in build environment
  • ➖ Harder to review exact content changes; failures become build-time surprises

Recommendation: Committing deterministic, generated output is a good tradeoff for reviewability and reproducibility. To maximize value, ensure the companion generator PR lands first and consider adding a CI check (or a pre-commit/doc target) that re-runs generation and fails on drift, so future edits don’t accidentally diverge from source-derived truth.

Files changed (1) +410 / -409

Documentation (1) +410 / -409
compatibility.mdRegenerate compatibility matrix; add per-row missing-option details +410/-409

Regenerate compatibility matrix; add per-row missing-option details

• Replaces the existing 3-column compatibility table with a deterministically regenerated 4-column table that includes a new Details column for partially supported commands. Updates many command support labels, fixes corrupted/duplicate command names, and appends a verification line capturing Dragonfly/Redis versions and module set used for generation.

docs/command-reference/compatibility.md

@vyavdoshenko

Copy link
Copy Markdown
Contributor Author

Preview:
compatibility.md

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Wildcard escape renders wrong 🐞 Bug ≡ Correctness
Description
The table row for the wildcard FUNCTION command is now emitted as FUNCTION \* inside an HTML
<span>, so the docs will display a literal backslash ("FUNCTION \*") instead of the intended
"FUNCTION *" label.
Code

docs/command-reference/compatibility.md[137]

+|  | <span class="command">FUNCTION \*</span> | <span class="support unsupported">Unsupported</span> |  |
Evidence
The regenerated markdown table contains FUNCTION \* inside the <span class="command">…</span>,
which will be rendered as literal text within HTML, producing an incorrect visible command name.

docs/command-reference/compatibility.md[135-137]
src/theme/plugins/remark-dragonfly-version.mjs[14-19]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The compatibility table includes an HTML span for the command name `FUNCTION \*`. Because the backslash escape is inside raw HTML, Markdown escaping won’t apply and the rendered docs will show an incorrect command label.

### Issue Context
This PR is machine-generated output; ideally the generator should emit either a literal `*` or an HTML entity (e.g. `&ast;`) inside the `<span>`.

### Fix Focus Areas
- docs/command-reference/compatibility.md[135-137]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread docs/command-reference/compatibility.md Outdated
@vyavdoshenko
vyavdoshenko merged commit e6cd271 into main Jul 6, 2026
3 checks passed
@vyavdoshenko
vyavdoshenko deleted the bobik/update_compat_doc branch July 6, 2026 14: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.

2 participants