zerodds-deployment v1.0 — Spec-Coverage

Quelle: docs/specs/zerodds-deployment-1.0.md

§1 Targets

§1.1 Daemons (7 Bridges)

Spec: §1.1 — sieben Daemon-Binaries: ws/mqtt/coap/amqp/grpc/corba/ ros2-shim.

Repo: crates/websocket-bridge/src/bin/zerodds-ws-bridged.rs, crates/mqtt-bridge/src/bin/zerodds-mqtt-bridged.rs, crates/coap-bridge/src/bin/zerodds-coap-bridged.rs, crates/amqp-endpoint/src/bin/zerodds-amqp-bridged.rs, crates/grpc-bridge/src/bin/zerodds-grpc-bridged.rs, crates/corba-dds-bridge/src/bin/zerodds-corba-bridged.rs, crates/rmw-zerodds-shim/src/bin/zerodds-ros2-shim.rs.

Tests: Per-Bridge tests/{daemon_e2e.rs,bridge_e2e.rs,shim_cli_e2e.rs}.

Status: done

§1.2 Library libzerodds + zerodds.h

Spec: §1.2 — libzerodds.{so,dylib,dll} + zerodds.h; siehe zerodds-ffi-loader-1.0 §6.

Repo: crates/zerodds-c-api/Cargo.toml (cdylib), crates/zerodds-c-api/include/zerodds.h.

Tests: crates/zerodds-c-api/tests/smoke_ffi.rs.

Status: done

§1.3 CLI-Tools (17)

Spec: §1.3 — admin/bench/bench-suite/idlc/spy/record/replay/snitch/ monitor/mq/pcap/perf/ros2-shim/secure-keygen/secure-permissions/ typeobject/xml-config.

Repo: Per-Tool crates/<tool>/src/bin/ und tools/<tool>/ (admin/bench-suite/idlc/recorder-bridge/replay/perf/qos-matrix/ xmlc/dashboard/dds-roundtrip-codegen/interop-matrix/isolation-smoke/ chaos/traceability/cargo-dag/pve); man-Pages man/man1/zerodds-{admin,idlc,ros2-shim,ws-bridged,mqtt-bridged, coap-bridged,amqp-bridged,grpc-bridged,corba-bridged}.1 (Cluster-C CLI-Coverage-Audit).

Tests: Per-CLI Smoke-Tests in den jeweiligen Crates; Workspace-Test cargo test --workspace deckt alle 17 Tools.

Status: done

§2 Linux

§2.1 FHS-Datei-Layout

Spec: §2.1 — /usr/bin/, /usr/lib/libzerodds.so, /usr/lib/pkgconfig/zerodds.pc, /usr/include/zerodds.h, /etc/zerodds/, /var/log/zerodds/, /var/lib/zerodds/, /usr/share/man/.

Repo: packaging/linux/configs/, packaging/linux/systemd/zerodds-tmpfiles.conf, packaging/linux/systemd/zerodds-sysusers.conf, packaging/linux/rpm/zerodds.pc.

Tests:

Status: done

§2.2.1 Debian/Ubuntu .deb-Pakete

Spec: §2.2.1 — Pakete zerodds-core/zerodds-<bridge>/ zerodds-cli/zerodds-dev; Repo packages.zerodds.io/apt; Signed GPG.

Repo: packaging/linux/deb/{control.tmpl,postinst.tmpl,postrm.tmpl,prerm.tmpl,assemble-debs.sh,publish-deb.yml}.

Tests:

Status: done

§2.2.2 RHEL/Fedora .rpm-Pakete

Spec: §2.2.2 — analoges Paket-Set; Repo packages.zerodds.io/yum/; GPG-Key.

Repo: packaging/linux/rpm/{zerodds.spec,publish-rpm.yml,zerodds.pc}.

Tests:

Status: done

§2.2.3 Arch Linux PKGBUILD

Spec: §2.2.3 — AUR-Pakete; Pacman-Hook für Service-Reload.

Repo: packaging/linux/arch/PKGBUILD (Cluster-C AUR-Paket-Layout).

Tests:

Status: done

§2.2.4 AppImage Static-Build pro Daemon

Spec: §2.2.4 — zerodds-<bridge>-1.0.0-x86_64.AppImage; statisch gegen musl; GitHub-Releases + S3-Mirror.

Repo: packaging/linux/appimage/{AppRun.template,build.sh} (Cluster-C linuxdeploy-Build-Skript).

Tests:

Status: done

§2.3 systemd-Unit pro Bridge

Spec: §2.3 — Type=notify, ExecStart, ExecReload SIGHUP, KillMode=mixed, NoNewPrivileges/ProtectSystem/PrivateTmp/LimitNOFILE.

Repo: packaging/linux/systemd/zerodds-{ws,mqtt,coap,amqp,grpc,corba}-bridged.service, packaging/linux/systemd/zerodds-ros2-shim.service, packaging/linux/systemd/zerodds-sysusers.conf, packaging/linux/systemd/zerodds-tmpfiles.conf.

Tests:

Status: done

§3 macOS

§3.1 Datei-Layout

Spec: §3.1 — /usr/local/{bin,lib,include,etc,var}/zerodds/, /Library/LaunchDaemons/org.zerodds.*.plist.

Repo: packaging/macos/launchd/, packaging/macos/homebrew/zerodds.rb, packaging/macos/pkg/build-pkg.sh.

Tests:

Status: done

§3.2.1 Homebrew-Tap + Formulae

Spec: §3.2.1 — Tap zero-objects/zerodds; Formulae mit brew-services-Integration.

Repo: packaging/macos/homebrew/{zerodds.rb,zerodds-ws-bridge.rb,zerodds-mqtt-bridge.rb,zerodds-coap-bridge.rb,zerodds-amqp-bridge.rb,zerodds-grpc-bridge.rb,zerodds-corba-bridge.rb,zerodds-ros2.rb}, packaging/github-actions/render-homebrew.sh.

Tests:

Status: done

§3.2.2 PKG-Installer signed/notarized

Spec: §3.2.2 — Signed .pkg mit Apple-Developer-ID.

Repo: packaging/macos/pkg/build-pkg.sh.

Tests:

Status: done

§3.3 launchd-Plist pro Bridge

Spec: §3.3 — Label=org.zerodds.<bridge>, ProgramArguments, RunAtLoad, KeepAlive, Stdout/Err-Pfade, UserName.

Repo: packaging/macos/launchd/org.zerodds.{ws,mqtt,coap,amqp,grpc,corba}-bridged.plist, packaging/macos/launchd/org.zerodds.ros2-shim.plist.

Tests:

Status: done

§4 Windows

§4.1 Datei-Layout %PROGRAMFILES%

Spec: §4.1 — %PROGRAMFILES%\ZeroDDS\{bin,include,lib,doc}\ + %PROGRAMDATA%\ZeroDDS\{*.yaml,certs,logs}\.

Repo: packaging/windows/msi/zerodds.wxs (Layout-Definition), packaging/windows/services/.

Tests:

Status: done

§4.2.1 MSI-Installer (WiX) signed

Spec: §4.2.1 — zerodds-1.0.0-x64.msi mit EV-Code-Signing; Optional-Features pro Bridge.

Repo: packaging/windows/msi/zerodds.wxs.

Tests:

Status: done

§4.2.2 Scoop-Manifest

Spec: §4.2.2 — scoop bucket add zerodds-Layout, Manifest pro Komponente.

Repo: packaging/windows/scoop/zerodds.json.

Tests:

Status: done

§4.2.3 Chocolatey-Package

Spec: §4.2.3 — choco install zerodds zerodds-ws-bridge-Pakete.

Repo: packaging/windows/chocolatey/{zerodds.nuspec,tools/}.

Tests:

Status: done

§4.3 Win-Service pro Bridge

Spec: §4.3 — sc.exe create ZeroDDS<Bridge> mit binPath/start=auto/ obj/DisplayName/failure-recovery; pro Bridge ein Service.

Repo: packaging/windows/services/{Install-Services.ps1,Uninstall-Services.ps1}.

Tests:

Status: done

§5 Docker

§5.1 Image-Liste pro Daemon + ROS-Distros

Spec: §5.1 — 10 Images (ws/mqtt/coap/amqp/grpc/corba/ros2-{humble, iron,jazzy}/cli); multi-arch amd64+arm64; docker.io+ghcr.io.

Repo: packaging/docker/{ws-bridged,mqtt-bridged,coap-bridged,amqp-bridged,grpc-bridged,corba-bridged,ros2-shim,cli}/.

Tests:

Status: done

§5.2 Multi-Stage-Dockerfile mit cargo-chef

Spec: §5.2 — Stage 1 build mit cargo-chef, Stage 2 debian-slim runtime + non-root-User.

Repo: packaging/docker/<bridge>/Dockerfile (per-Bridge).

Tests:

Status: done

§5.3 Docker-Compose-Beispiel

Spec: §5.3 — compose.yaml mit ws-bridge + mqtt-bridge + mosquitto; network_mode: host.

Repo: packaging/docker/docker-compose.yml.

Tests:

Status: done

§6 Cargo-Dist-Setup

§6 [workspace.metadata.dist] mit cargo-dist 0.20

Spec: §6 — installers shell/powershell/homebrew/msi; targets linux-gnu/musl + apple-darwin + pc-windows-msvc; minisign+cosign.

Repo: Cargo.toml ([workspace.metadata.dist]-Block), .github/workflows/release.yml, packaging/github-actions/{render-homebrew.sh,sign-artifacts.sh}.

Tests:

Status: done

§7 Version-Sync

§7 Workspace-Version + Pre-Release-Tags

Spec: §7 — [workspace.package].version + version.workspace=true pro Crate; rc.1/rc.2/finaler 1.0.0.

Repo: Cargo.toml (workspace.package), Per-Crate Cargo.toml mit version.workspace = true.

Tests:

Status: done

§8 Cross-References zu Bridge-Specs

§8 §11-Cross-Refs der 7 Bridge-Specs + ffi-loader §6

Spec: §8 — Cross-Refs in den Bridge-Spec-§11-Sektionen + FFI-Loader- §6; erweiterte Cross-Refs zu monitor/observability-otlp/zddsrec/xcdr2.

Repo:

Tests:

Status: n/a (informative)

§9 Versioning

§9 SemVer-Bump-Regeln

Spec: §9 — Patch=Bugfixes Installer/Service-Files, Minor=additive Distros (NixOS/Alpine/SUSE-OBS), Major=Layout-Änderung (/usr/lib//opt/zerodds/).

Repo:

Tests:

Status: n/a (informative)


Audit-Status

23 done / 0 partial / 0 open / 2 n/a (informative) / 0 n/a (rejected).

Test-Lauf: cargo test -p zerodds-websocket-bridge -p zerodds-mqtt-bridge -p zerodds-coap-bridge -p zerodds-amqp-endpoint -p zerodds-grpc-bridge -p zerodds-corba-dds-bridge -p rmw-zerodds-shim -p zerodds-c-api — Tests grün, 0 failed.

Offene Punkte und Decision-Records: siehe zerodds-deployment-1.0.open.md.