Final locks before 1.0
This page is the control point before promoting 1.0.0-rc.1, then 1.0.0. It does not replace the scripts: it states what to run, where evidence is kept, and which decisions remain manual.
GitHub Actions matrix to stabilize
The dedicated workflow is .github/workflows/rc-stability.yml. Run it from GitHub Actions on the real repository, against the same commit that will be used to publish the release candidate.
The matrix runs three passes with bun install --frozen-lockfile:
bun install --frozen-lockfile
bun run release:doctor
bun run e2e:ci:functional
bun run release:browser:check
bun run package:ci:artifact
bun run npm:publish:dry-run -- --skip-gatesAfter three green passes, fill release/rc-ci-stability.json with run links, the Git SHA and the date. Do not mix runs from different commits.
Accessibility review to complete
Automated coverage remains required, but it is not enough for the 1.0 promotion. Complete release/manual-accessibility-review.json with these checks:
| Check | Expected result |
|---|---|
keyboard-only | Complete navigation without a mouse, visible focus, reversible dialog actions. |
zoom-200 | Interface remains usable at 200 percent without losing critical information. |
reflow-320-css-px | Main reading and actions remain possible at 320 CSS px. |
nvda-chromium | NVDA pass under Chromium, with coherent announcements for panels, dialogs and fields. |
custom-theme-contrast | Contrast checked after theme customization. |
artifact-review | Tarball, manifests and public exports reviewed before publication. |
Any exception goes into release/accessibility-derogations.json. An exception must be bounded, justified, mitigated and tied to a correction target.
Bundle and components to watch
The CI bundle report is .artifacts/bundle-budget.json. After bun run bundle:budget:inspect, run:
bun run bundle:watchlist:checkThe two areas to watch before 1.0 are Theme Builder and IconPicker. If a chunk approaches the budget, first split editor-only branches that are not required by the public runtime: heavy presets, popup paths, icon lists or advanced options.
Distinct business application
Before 1.0.0, integrate 1.0.0-rc.1 into a Nuxt 4 application outside the QForm Builder repository. Fill release/rc-real-app-integration.json with:
- installed package source, npm or verified tarball;
- page rendering
FormBuilderandFormViewer; - import/export of one versioned document;
- reload of a persisted document through the public migration registry;
- no direct import from
app/.
After publishing the release candidate, only compatible regression fixes should land before 1.0.0.
Schema and theme migrations
The migration contract is no longer a functional blocker: it already exists. Any future persisted document, schema or theme evolution must go through the public migration registry. The detailed rule is in the Schema migration policy reference.