CI: establish cross-platform feature and native dependency matrix #99

Closed
opened 2026-08-08 08:26:25 +00:00 by hugo · 1 comment
Owner

Objective

Create release-quality Linux, macOS, and Windows CI for default, all supported feature groups, docs, tests, examples, and native adapters.

Deliverables

  • Cover Rust MSRV/current stable, default/no-default/all relevant features, J2K, Skia, Vorbis/Opus/audio/WebRTC as supported, and platform packaging prerequisites.
  • Cache safely without masking clean builds.
  • Separate unavailable proprietary/live prerequisites with explicit manual gates.

Validation

  • Required matrix is green from clean environments.
  • Default consumers avoid optional native dependencies.
  • Artifacts and logs identify exact features/toolchains/native versions.

Prerequisite

All implementation and program milestones are complete with their fixed parity suites green.

Project constraints

  • The released implementation is entirely native Rust and must pass the explicit no-CLR/no-bridge artifact audit.
  • Do not weaken API coverage or semantic parity to satisfy hardening, performance, or packaging goals.
  • Preserve reproducible evidence, update release documentation, and keep all default/live destructive boundaries explicit.
## Objective Create release-quality Linux, macOS, and Windows CI for default, all supported feature groups, docs, tests, examples, and native adapters. ## Deliverables - Cover Rust MSRV/current stable, default/no-default/all relevant features, J2K, Skia, Vorbis/Opus/audio/WebRTC as supported, and platform packaging prerequisites. - Cache safely without masking clean builds. - Separate unavailable proprietary/live prerequisites with explicit manual gates. ## Validation - Required matrix is green from clean environments. - Default consumers avoid optional native dependencies. - Artifacts and logs identify exact features/toolchains/native versions. ## Prerequisite All implementation and program milestones are complete with their fixed parity suites green. ## Project constraints - The released implementation is entirely native Rust and must pass the explicit no-CLR/no-bridge artifact audit. - Do not weaken API coverage or semantic parity to satisfy hardening, performance, or packaging goals. - Preserve reproducible evidence, update release documentation, and keep all default/live destructive boundaries explicit.
hugo added this to the 12 - Hardening and release milestone 2026-08-08 08:26:25 +00:00
hugo added the enhancement label 2026-08-08 08:26:25 +00:00
Author
Owner

Implemented and pushed in commit 9779e50.

What changed:

  • Added a validated seven-profile Rust release matrix and ubuntu-latest-only Gitea workflow covering Rust 1.96 MSRV compatibility, current stable 1.97.1, native Linux default/minimal/feature/release surfaces, plus portable Windows GNU and macOS cross-target checks.
  • Added the metacrate-ci-matrix Rust runner with shell-free allowlisted Cargo commands, clean isolated target directories, immutable JSON evidence, workflow/profile audits, download-only cache enforcement, and default dependency-tree checks.
  • Made OpenJPEG and Vorbis opt-in for default libremetaverse consumers, added the explicit vorbis feature, retained a typed feature-disabled API, and documented exact feature/native/manual boundaries.
  • Added real independent OpenJPEG, Skia, Vorbis, CPAL/Opus, all-features, test, docs, doctest, and shipped program-binary gates. Fixed two stale test fixtures revealed by the clean minimal run.

Validation from clean isolated targets:

  • linux-msrv-portable: 1/1 commands green on rustc 1.96.0.
  • linux-stable-default: 3/3 green on rustc 1.97.1; all targets, all default test binaries, and warning-free docs compiled.
  • linux-stable-minimal: 2/2 green; 260 core tests plus integrations passed without optional codecs.
  • linux-stable-features: 6/6 green; OpenJPEG 15 tests, Skia 6 tests, real Vorbis encoding, CPAL/Opus, and workspace all-features.
  • linux-stable-release-surface: 2/2 green; doctests executed and all shipped program binaries compiled. A discovered no-op Cargo examples gate was replaced and the audit now prevents regression.
  • windows-stable-portable and macos-stable-portable: 1/1 green each.
  • Matrix audit, tool unit/doc tests, cargo fmt, git diff check, strict tool Clippy, and strict issue-scoped core Clippy for minimal and Vorbis configurations are green.

The unrelated pre-existing all-target Clippy warnings in tests/network_manager.rs were left outside this issue. Live grid credentials, physical devices, and proprietary services remain explicit manual gates; no tests silently claim those validations.

Implemented and pushed in commit 9779e50. What changed: - Added a validated seven-profile Rust release matrix and ubuntu-latest-only Gitea workflow covering Rust 1.96 MSRV compatibility, current stable 1.97.1, native Linux default/minimal/feature/release surfaces, plus portable Windows GNU and macOS cross-target checks. - Added the metacrate-ci-matrix Rust runner with shell-free allowlisted Cargo commands, clean isolated target directories, immutable JSON evidence, workflow/profile audits, download-only cache enforcement, and default dependency-tree checks. - Made OpenJPEG and Vorbis opt-in for default libremetaverse consumers, added the explicit vorbis feature, retained a typed feature-disabled API, and documented exact feature/native/manual boundaries. - Added real independent OpenJPEG, Skia, Vorbis, CPAL/Opus, all-features, test, docs, doctest, and shipped program-binary gates. Fixed two stale test fixtures revealed by the clean minimal run. Validation from clean isolated targets: - linux-msrv-portable: 1/1 commands green on rustc 1.96.0. - linux-stable-default: 3/3 green on rustc 1.97.1; all targets, all default test binaries, and warning-free docs compiled. - linux-stable-minimal: 2/2 green; 260 core tests plus integrations passed without optional codecs. - linux-stable-features: 6/6 green; OpenJPEG 15 tests, Skia 6 tests, real Vorbis encoding, CPAL/Opus, and workspace all-features. - linux-stable-release-surface: 2/2 green; doctests executed and all shipped program binaries compiled. A discovered no-op Cargo examples gate was replaced and the audit now prevents regression. - windows-stable-portable and macos-stable-portable: 1/1 green each. - Matrix audit, tool unit/doc tests, cargo fmt, git diff check, strict tool Clippy, and strict issue-scoped core Clippy for minimal and Vorbis configurations are green. The unrelated pre-existing all-target Clippy warnings in tests/network_manager.rs were left outside this issue. Live grid credentials, physical devices, and proprietary services remain explicit manual gates; no tests silently claim those validations.
hugo closed this issue 2026-08-11 22:13:23 +00:00
Sign in to join this conversation.