Hydration Proof

Search documentation

Find a page or section

Both packages, one version number.

hydration-proof releases publish both packages, hydration-proof and eslint-plugin-hydration-proof, together at the same version. The timeline below lists every release on GitHub with its highlights. Version 1.0.0 is the first stable release: from it on, the CLI, the config, the report schema, the issue codes and the exit codes follow semver.

No releases published yet.

This timeline is built from the GitHub releases of re-sohail/hydration-proof. It fills in on its own once the first one is published — see releases on GitHub.

The full notes are on GitHub releases and in each package's CHANGELOG.md.

How versions are numbered

  • Lockstep. The two packages are versioned together with Changesets, so a release always publishes both, even when only one of them changed.
  • Semver. A patch release fixes bugs. A minor release adds detections and options. A major release is the only kind that may break something the compatibility promise covers.
  • What is not frozen. Diagnosis keeps improving in minor releases: which cause a finding gets, confidence scores and the wording of messages. Pin the behavior you rely on with ci.failOn and ci.budget, not with the causes.

Releases are published from CI with npm trusted publishing, so every version has a provenance attestation. You can check the packages you installed:

npm audit signatures

How to upgrade

  1. Update both packages to the new version.
  2. Run migrate to see which config options were renamed or replaced.
  3. Apply the safe renames with --write. The old file is kept as a backup, and anything that needs a judgment call is listed for you to change by hand.
  4. Run your tests. Between minor versions, expect new findings: better detection is the point of a release.
npx hydration-proof migrate
npx hydration-proof migrate --write

If a release reports something you have decided to live with, park it with an ignore rule that has a reason and an expiry date, or adopt the release with ci.newIssuesOnly and a baseline so the pipeline stays green on day one. The CLI reference has the details of migrate.

hydration-proof releases from 0.1 to 1.0

VersionWhat it added
0.1.0The first release: hydration-proof test loads every route in Chromium, Firefox or WebKit through the React DevTools hook, and reports text, structure, attribute, class and style mismatches, invalid HTML, changes before hydration and CDN rewrites. Stable issue codes, fingerprints and exit codes, plus init, install and doctor
0.2.0Findings explain themselves: a likely cause with a confidence score, the component and source line, the HTML report, --mode both, and the suppressHydrationWarning audit
0.3.0The whole app: pre-rendered dynamic pages, the not-found page, query variants, sitemaps and crawling; signed-in pages with login; API mocks; hooks; --shard; the route cache
0.4.0Environments: the matrix, probes that prove a cause, and --repeat for flaky findings
0.5.0The ESLint plugin: 15 rules for render code, with the recommended, next and strict presets
0.6.0Streaming and Suspense boundaries compared one by one, document checks, navigation and interaction checks
0.7.0CI and teams: JUnit, SARIF, GitHub and GitLab reports, baselines, budgets, owners, --changed, merge-reports, monorepos, trends and redaction
0.8.0Adapters for React Router, Remix, Astro, Vite SSR and custom Node servers, defineAdapter, plugins, and the dev, test --watch and ui tools
0.9.0Hardening: source maps only from the app's own origin (sourceOrigins), migrate, and a regression gate of recorded browser captures
1.0.0The written compatibility promise, form controls and SVG attributes audited, causes limited to the element's own function, and baselines that survive a fingerprint change

The ESLint plugin first appeared in 0.5.0; its later releases have had no changes of their own. At 1.0, the package's test suite covered 63 fixture cases across the Next.js App Router and Pages Router: 40 broken pages and 23 correct control pages, each checked against React's own verdict.