4.1 KiB
4.1 KiB
Release Candidate Process
Use explicit release candidates. Each RC should have a written scope, known issues, validation matrix, generated artifacts, migration/status notes, and feedback request.
RC1: API And Architecture Candidate
Exit criteria:
- RC1 tag and notes exist;
- build/test/spec validation is recorded;
- feature table, visible parity table, known gaps, Python binding scope, and WebGPU/WASM scope are published or linked;
- release examples are documented enough for early testers;
- public headers, ownership rules, and lower-layer support labels have been reviewed.
Success criteria:
- a small number of serious external testers, roughly 5-10, try the release candidate;
- installation feedback arrives from Linux, macOS, and Windows;
- at least several release examples run outside the main development machine;
- reports distinguish build/install failures, rendering or driver bugs, example issues, API feedback, documentation gaps, and platform/GPU details;
- public discussion does not confuse Datoviz v0.4 RC1 with VisPy 2.0 or with the final v0.4 release.
RC2: Packaged Native-Window Hotfix
Exit criteria:
- the macOS packaged Vulkan-loader/GLFW mismatch is fixed;
- installed-wheel native windows have automated Linux/Xvfb regression proof, while hosted macOS retains offscreen MoltenVK render proof without claiming an interactive desktop session;
- the exact canonical macOS wheel has explicit attended Quickstart evidence on the MacBook M3;
- all six replacement wheels pass the normal RC artifact and conformance gates;
- public guidance discloses the RC1 limitation until RC2 is available;
- RC2 notes record physical Linux and Windows as unavailable exclusions, not passes; and
- unrelated documentation, gallery, provider, and feature work remains deferred.
RC3: Documentation, Packaging, And Quality Candidate
Exit criteria:
- documentation and gallery structure are mostly final;
- generated C reference, captured artifacts, RC feedback triage, attribution, and gallery review are complete;
- Qt/PyQt hosting has a tested packaged
datoviz_qtbridgeprovider, preferably conda-first, without adding Qt to the base wheel; - only blocker fixes remain after the planned RC3 deliverables;
- packaging, licenses, generated artifacts, release notes, and docs are final candidates;
- source archives and wheels build, install, and pass installed smoke tests on supported platforms;
- static-analysis, memory/UB, Vulkan validation, long-running loop, docs link, gallery smoke, and example smoke results are either clean or recorded as known issues;
- checksums/signing policy and required third-party notices are decided.
Final v0.4.0
Exit criteria:
v0.4.0is tagged and published with reproducible artifacts;- documentation and release notes are public;
- launch screenshots, short clips, README/website assets, and announcement text are generated from current gallery examples;
- direct feedback channels are open for early users, especially scientists whose public datasets are used in showcase examples;
- the active queue resets for v0.4 patch work and v0.5 planning.
Required RC Notes
Every RC note should include:
- exact commit and tag;
- feature status table;
- known issues;
- platform validation matrix;
- test/static-analysis summary;
- docs/gallery build links;
- wheel/source artifacts;
- migration/status notes from v0.3 and development snapshots;
- feedback request targeted at users and contributors.
Feedback Triage
Each RC should have issue labels or project fields that separate:
- installation and packaging failures;
- rendering, driver, and platform-specific bugs;
- example and gallery failures;
- API and ownership/lifetime feedback;
- documentation issues;
- final-release blockers.
After one to two weeks of RC1 feedback, summarize the findings and decide whether the next RC is a blocker fix, a documentation/gallery candidate, or unnecessary before the next planned gate. RC1 feedback produced a narrow RC2 packaged native-window hotfix, moving its former planned scope to RC3.