Skip to content

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:

./gradlew buildReleaseArtifacts
./gradlew qualificationTests
mkdocs build --strict

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.md for a concise human-readable result;
  • build/reports/qualification/summary.json for automation and release records;
  • build/reports/qualification/tests/index.html for detailed navigation;
  • build/test-results/qualification/ for standard JUnit XML consumers.

Use Gradle's native filter for a focused investigation, for example:

./gradlew qualificationTests --tests '*CameraManagerTest'

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-identical ziviDomeLive.pdex, and ziviDomeLive.txt;
  • packaged library.properties with prettyVersion=1.5.0 and version=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:

  1. In Scene 1, confirm +X, -X, +Y, -Y, +Z, and -Z face identity and index.
  2. Inspect 24 x 24 grids, safe-area frames, circles, spokes, crosshairs, and edge continuity.
  3. Confirm UP, R, and numeric markers are neither rotated nor mirrored.
  4. Resolve the 1/2/4/8-pixel line pairs and 1/2/3/4-pixel points and stars.
  5. Inspect continuous RGB/CMY ramps, pure bars, grayscale, and clipping patches on the GPU and receiver.
  6. Capture fisheye, equirectangular, cubemap, and Standard views.
  7. Exercise 90-degree pitch, yaw, and roll steps.
  8. Verify FOV at representative values including the default 210.
  9. Verify Size% scaling around the image center, including 100 and a reduced calibration value.
  10. Switch to Scene 2 and confirm the Paul Bourke sphere places its north pole at +Z, south pole at -Z, and equator on Z=0.
  11. With outputs disabled, resize the window across bucket boundaries and confirm the nearest source is reported in the console.
  12. Enable an output and step through 1024, 2048, 3072, and 4096; confirm the console reports 2400, 4096, 4800, and 8192 source widths respectively.
  13. 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.
  14. Run RenderMode.STANDARD with floating domemaster enabled.
  15. Repeat with each supported native output and receiver.
  16. Repeat enable/disable, pause/resume, and terminal shutdown.
  17. 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.0 and Processing counter 10;
  • the release tag is exactly v1.5.0 and passes verifyReleaseTag;
  • 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.