ziviDomeLive 1.5.0 Release Readiness¶
This document separates automated release evidence from GPU and native-output qualification. It does not convert internal 1.x renderer topology into a permanent API contract.
Release Identity¶
- Semantic version:
1.5.0 - Processing release counter:
10 - Java toolchain: 17
- Processing core:
4.5.6 - Devolay:
2.2.0-vic.1 - License:
GPL-2.0-only
Version values must agree across build.gradle.kts, release.properties, library.properties, CITATION.cff, .zenodo.json, and CHANGELOG.md. ReleaseMetadataTest enforces this alignment.
Automated Evidence¶
| Area | Evidence | Status |
|---|---|---|
| Public 1.x compatibility | Reflection and enum-order tests | Reference run passed |
| Preview/output policies | Pure state and sizing tests | Reference run passed |
| Scene/lifecycle ownership | Headless lifecycle tests | Reference run passed |
| RenderMode routing | Policy and output-routing tests | Reference run passed |
| NDI metadata and encoding | RGBA, stride, progressive, row-order tests | Reference run passed |
| NDI bounded pipeline | Three-slot, bounded-queue, shutdown tests | Reference run passed |
| Release metadata | Cross-file metadata tests | Reference run passed |
| Javadocs | Gradle javadoc task |
Reference run passed |
| Bilingual documentation | MkDocs strict build | Reference run passed |
| Processing artifacts | ZIP, PDEX, and TXT generation | Reference run passed |
Run from a clean checkout:
qualificationTests is the canonical automated evidence task. It always runs
the complete JUnit suite in a single headless fork and writes:
build/reports/qualification/summary.mdfor a concise human-readable result;build/reports/qualification/summary.jsonfor automation and release records;build/reports/qualification/tests/index.htmlfor detailed navigation;build/test-results/qualification/for standard JUnit XML consumers.
Use Gradle's native filter for a focused investigation, for example:
Focused runs are diagnostic only. Release acceptance requires an unfiltered
qualificationTests run. Test sources and generated reports are development
evidence: src/test/** remains in Git, while neither it nor build/** is
included in the Processing release package or sketchbook deployment.
buildReleaseArtifacts finishes with verifyProcessingPackage, which fails if
required metadata or legal notices are absent, if test sources or local
compile-only helper JARs enter the release tree or archives, or if ZIP and PDEX
differ.
Packaging and sketchbook deployment do not execute the JUnit suite; automated
qualification is owned by the dedicated task and workflows.
GitHub runs the same task independently through
.github/workflows/automated-qualification.yml on every push, pull requests
targeting main, and manual dispatches. The workflow adds the concise result to
the job summary and retains the complete evidence as an artifact for 30 days.
This qualification workflow is intentionally separate from the normal Java
build workflow.
The clean reference verification completed before the final documentation pass on 2026-08-11 produced:
- 182 JUnit tests: 181 passed, 0 failed, and 1 environment-conditioned Syphon skip;
- successful Gradle build and Javadocs using Java 17;
ziviDomeLive.zip, byte-identicalziviDomeLive.pdex, andziviDomeLive.txt;- packaged
library.propertieswithprettyVersion=1.5.0andversion=10; - packaged project license, citation metadata, changelog, third-party notice, and Devolay license;
- no test sources or local compile-only helper JARs in the package;
- a successful strict MkDocs build for English and Portuguese.
GPU and Hardware Matrix¶
Automated success does not satisfy these rows:
| Qualification | Required Evidence | Status in this local PR |
|---|---|---|
| GPU visual compatibility | CalibrationTool captures recorded as the qualified 1.5 reference | Not executed |
| Cubemap face identity/layout | Six calibration charts, grids, rotations, mirroring, and seams | Not executed |
| Focus and sampling | 1/2/4/8-pixel lines plus 1/2/3/4-pixel points and stars | Not executed |
| Color and luminance | GLSL gradients, RGB/CMY/W/K bars, grayscale, and clipping levels | Not executed |
| 360-degree spherical reference | Resolution-matched, unmodified Paul Bourke v14 equirectangular patterns, +Z north pole, -Z south pole, longitude seam, and 60-second time-quantized rotation |
Not executed |
| Spherical calibration | FOV, Size%, pitch, yaw, and roll captures | Not executed |
| Standard independence | Standard-only and Standard plus floating domemaster captures | Not executed |
| Syphon interoperability | macOS sender/receiver, resize, pause/resume, shutdown | Not executed |
| Spout interoperability | Windows sender/receiver, resize, pause/resume, shutdown | Not executed |
| NDI interoperability | Discovery, progressive RGBA color, row orientation, resize, telemetry | Not executed |
| OpenGL error 1282 | Sustained target-hardware run with console evidence | Not executed |
No golden images are generated or inferred by the automated suite. Store qualified captures and hardware details as release evidence outside this source-only run.
Manual Visual Protocol¶
Open examples/CalibrationTool/CalibrationTool.pde on each qualified GPU:
- In Scene 1, confirm
+X,-X,+Y,-Y,+Z, and-Zface identity and index. - Inspect 24 x 24 grids, safe-area frames, circles, spokes, crosshairs, and edge continuity.
- Confirm
UP,R, and numeric markers are neither rotated nor mirrored. - Resolve the 1/2/4/8-pixel line pairs and 1/2/3/4-pixel points and stars.
- Inspect continuous RGB/CMY ramps, pure bars, grayscale, and clipping patches on the GPU and receiver.
- Capture fisheye, equirectangular, cubemap, and Standard views.
- Exercise 90-degree pitch, yaw, and roll steps.
- Verify FOV at representative values including the default
210. - Verify Size% scaling around the image center, including
100and a reduced calibration value. - Switch to Scene 2 and confirm the Paul Bourke sphere places its north pole at
+Z, south pole at-Z, and equator onZ=0. - With outputs disabled, resize the window across bucket boundaries and confirm the nearest source is reported in the console.
- Enable an output and step through 1024, 2048, 3072, and 4096; confirm the console reports 2400, 4096, 4800, and 8192 source widths respectively.
- Run the 60-second rotation with both the 30 fps/1800-frame and 60 fps/3600-frame profiles; confirm that switching profiles does not restart the Processing animator, then inspect line shimmer, cadence, texture seams, and blend zones.
- Run
RenderMode.STANDARDwith floating domemaster enabled. - Repeat with each supported native output and receiver.
- Repeat enable/disable, pause/resume, and terminal shutdown.
- Record Processing version, OS, CPU architecture, GPU, driver, receiver, resolution, and observed OpenGL errors.
Release Acceptance¶
A source release candidate is ready to tag only when:
- all automated commands above pass from a clean tree;
- generated artifacts contain version
1.5.0and Processing counter10; - the release tag is exactly
v1.5.0and passesverifyReleaseTag; - packaged legal notices and citation metadata pass
verifyProcessingPackage; - README, Javadocs, examples, and bilingual docs describe the same public API;
- known hardware gaps are explicitly accepted or completed by a maintainer;
- no experimental 2.0 backend is present;
- the worktree contains no uncommitted generated or source changes.