rosotacom-dev 2.5.dev82__tar.gz → 2.5.dev83__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/PKG-INFO +1 -1
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/cli.py +66 -3
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/PKG-INFO +1 -1
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/scm_version.json +2 -2
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_benchmark_peer_exec.py +64 -4
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.devcontainer/devcontainer.json.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.devcontainer/re_generate_devcontainer_json.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/CODEOWNERS +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/documentation-audit.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/implementation-cleanup.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/quality-workflow.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/redesign.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/release-process.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/repository-diagnosis.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/test-ci-audit.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/work-item.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/actions/setup-just/action.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/dependabot.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/benchmark-calibrate.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/benchmark-gate.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/dev-release.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/image-scan.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/nightly-e2e.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/pr-lightweight.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/pr-merge-gate.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/release.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.pre-commit-config.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/AGENTS.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/CONCURRENCY.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/CONTRIBUTING.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/DEVELOPMENT_PRINCIPLES.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/MANIFEST.in +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/budgets.jsonl +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/capacity-size-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-gop-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-nominal-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-tight-fastdds.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-tight-zenoh.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/codecov.yml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/deployment-configuration.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/benchmark-ab.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/benchmark-bag-as-load.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/ci.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/ffmpeg-keyframes.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/a-fitted-delay-table-never-reached-the-shaper.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/a-shorter-group-does-not-lose-fewer-key-frames.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/a-transport-element-doubles-every-fastdds-sample.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/cyclone-fragment-equal-to-max-drops-fragmented-samples.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/cyclone-spdp-discovery-bursts.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/delay-alone-no-loss.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/fastdds-datagram-cap-drops-large-samples.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/graph-derived-types-block-a-non-graph-transport.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/head-of-line-irregularity.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/jitter-loss-bandwidth-latency.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/keyframe-loss-kills-the-next-deltas.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/lifespan-is-enforced-by-one-reader-and-not-the-other.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/lighter-message-loss.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/neither-a-queue-nor-a-burst-tilts-the-size-law.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/one-domain-two-cyclone-configs-stop-interoperating.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/oversubscription-queues-not-losses.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/queueing-adds-delay-not-loss.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/reorder-becomes-reader-loss.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/repro/decode_chain_repro.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/repro/reorder_drop_repro.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/sender-rows-make-a-dead-link-look-loss-free.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/the-size-law-belongs-to-the-transport-not-the-link.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/zero-loss-boundaries-18kb-20hz.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/forensics-report.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/geo-link-map.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/github-repository-settings.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/link-bandwidth.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/link-trace.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/ota-pcap.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/owner-runbook.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/performance-bands.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/playbooks/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/quality-model.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release-notes/TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release-notes/v2.1.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release-notes/v2.2.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release-notes/v2.3.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release-notes/v2.4.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/release.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0001-expectation-driven-test-suite.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0002-expectation-concepts.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0003-metric-backbone.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0004-network-profiles.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0005-benchmark-genres-and-ci.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0006-dynamic-qos.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0007-regression-gate.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/testing.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/work-items.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/install.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/justfile +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/media/control_center.png +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/media/echo_test.png +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/media/forensics-report-example.png +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/media/host.png +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/media/vehicle.png +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/pyproject.toml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/requirements.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/session-configuration.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/__init__.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/__main__.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/anonymize.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/benched_set.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/benchmark.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/benchmark_delta.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/deployment.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/forensics.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/geomap.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/image_cache.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/netem_dist.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/network_preflight.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/plots.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/py.typed +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/benched-set.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/.gitignore +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/README.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/__init__.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/bags/8_drop_reference/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/deployment.example.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/dist/field-20260817.dist +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/profiles.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/ros2docker.lyrical.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scenarios/2_native_chatter/scenario-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_a.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_b.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.lyrical.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/wait_for_echo_topic.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.lyrical.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/10_restamp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/11_trickle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/12_content_integrity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/13_link_latency/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/14_remote_assist_anonymized/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/15_remote_assist_anonymized_costmap/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/16_remote_assist_anonymized_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/17_synthetic_camera_quality/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/1_heartbeat/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/1_heartbeat_status/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/2_native_chatter/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/3_comp_occ_grid/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/4_comp_occ_grid_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/5_sized_payload/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/6_sized_payload_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/7_latched_static/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/8_drop/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/9_throttle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/bench_1_1_capacity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/bench_1_2_load_sweep/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/bench_1_3_ramp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/bench_1_4_recovery/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/sessions/bench_1_5_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ros2docker.json.example +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ros2docker.lyrical.json.example +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/.vscode/c_cpp_properties.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/.vscode/settings.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_easy_mode.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_initial_peer_list.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v2.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v3.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v4.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v5.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/create_zenoh_json5.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/cyclonedds_local_participants.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/cyclonedds_minimal.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/cyclonedds_scoped.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/cyclonedds_tuned.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/fastdds_easy_mode.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/fastdds_local.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/fastdds_tuned.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/fastdds_unicast.xml.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/get_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/utils.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ota_configs/zenoh.json5.template +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/.gitkeep +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/COLCON_IGNORE +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/package.xml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/src/hz_monitor.cpp +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_compressor.cpp +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_decompressor.cpp +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/CompressedData.msg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/EchoHeartbeat.msg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/OtaStamped.msg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/SizedPayload.msg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_msgs/package.xml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/__init__.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/base_bridge_relay.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_in.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_out.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/ffmpeg_flags.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/heartbeat_echo.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/hz_monitor.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_bandwidth_reducer.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_pixel_capper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/lanelet_saver.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/latch_relay.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/costmap_remapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/marker_remapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/speed_test.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/tf_remapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/traffic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/wifi_network_analysis_1.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_trace.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/local_global_frame_bridge.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/localization_map_split_reduce_saver.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/msg_transform.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/ota_pcap.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pair_management.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/playout_pacer.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/playout_pacer_core.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pub_sub_pair.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/qos.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_in.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_out.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/restamp.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/sized_publisher.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency_core.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview_core.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/tf_map_to_cart_saver.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_resolution.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/trickle.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_compressor.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_decompressor.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_unwrapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_wrapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/package.xml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/resource/com_py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/setup.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/test/test_copyright.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/test/test_flake8.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/ros2src/com_py/test/test_pep257.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/content/base/session_plugin_base.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/content/network/up_connectivity.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/content/network/wifi_network_analysis_2.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/anonymize_bag.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/catmux_log_setup.sh +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/create_session_yaml.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/generate_session_files.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/run_session.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/run_session_in_external_terminal.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/ws/session/creation/strip_ansi.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/status_eval.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/transit.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/video_quality.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/SOURCES.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/dependency_links.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/entry_points.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/requires.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/scm_file_list.json +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom_dev.egg-info/top_level.txt +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/terminology.md +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_benched_set_registry.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_findings.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_generated_topics_have_a_producer.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_lyrical_runtime_compat.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_markdown_links.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_ota_source_bundle.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_package_metadata.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_packaged_resources.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_profile_covers_generated_commands.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_pytest_policy.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_readme_examples.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_security_maintenance_config.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_session_configuration_doc.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_session_template_substitution.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/contract/test_workflow_contracts.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/conftest.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_anonymize_e2e.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_benchmark_ab.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_benchmark_capacity.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_benchmark_replay.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_parallel_smoke.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_smoke.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_timeline_stepping.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/e2e/test_video_quality_e2e.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/generate_rmw_matrix.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-local_zenoh-ros2dds-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota-tuned/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_fastdds/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_fastdds-default/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/sessions/rmw_matrix/1_heartbeat_zen-endpoints/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_anonymize.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_benched_set.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_benchmark_delta.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_catmux_pane_logging.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_cli.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_concurrency.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_container_shaping.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_deployment.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ffmpeg_flags.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_field_profiles.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_forensics.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_geomap.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_image_cache.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_link_trace.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_netem_dist.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_network_preflight.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_link_configs.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_pcap.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_unwrapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_wrapper.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_playout_pacer.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_plots.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_pub_sub_pair_types.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_qos_fallback_logging.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_relay_optional_parameters.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ros_node_entity_ownership.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_session_pipeline.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_status_eval.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_status_overview.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_status_overview_observer.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_terminology_stage_ownership.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_transit.py +0 -0
- {rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_video_quality.py +0 -0
|
@@ -2437,9 +2437,19 @@ def _ota_stop_parts(
|
|
|
2437
2437
|
#: How a benchmark's load maps onto `publish-test-topics` flags. The keys are
|
|
2438
2438
|
#: `_sized_publisher_param_args`'s own, so a load dict travels from the
|
|
2439
2439
|
#: benchmark to the peer's publisher without being rewritten on the way.
|
|
2440
|
+
#:
|
|
2441
|
+
#: `size_pattern` and not `pattern`, and that distinction is the whole reason a
|
|
2442
|
+
#: mixed-size load never reached a peer. `parse_size_pattern_load` turns one CLI
|
|
2443
|
+
#: string into five keys -- `sizes`, `pattern`, `size_pattern`, and one
|
|
2444
|
+
#: `size_<label>` per distinct size -- and only three of them used to cross the
|
|
2445
|
+
#: hop. A two-size pattern therefore arrived as `pattern=a*6,b*1` with `size_a`
|
|
2446
|
+
#: and no `size_b`, and the publisher died on `Pattern references size 'b' but
|
|
2447
|
+
#: it was not provided` inside a detached `docker exec`, which the orchestrator
|
|
2448
|
+
#: reported as the topic not advertising. Sending the *source* string instead
|
|
2449
|
+
#: cannot lose a size, whatever the pattern turns out to contain.
|
|
2440
2450
|
_OTA_LOAD_FLAGS: tuple[tuple[str, str], ...] = (
|
|
2441
2451
|
("size", "--load-size"),
|
|
2442
|
-
("
|
|
2452
|
+
("size_pattern", "--load-size-pattern"),
|
|
2443
2453
|
("rate", "--load-rate-hz"),
|
|
2444
2454
|
("streams", "--load-streams"),
|
|
2445
2455
|
("interval_jitter_ms", "--load-interval-jitter-ms"),
|
|
@@ -2469,6 +2479,16 @@ def _ota_publish_parts(
|
|
|
2469
2479
|
merged = dict(load or {})
|
|
2470
2480
|
if "size" not in merged and merged.get("size_a") is not None:
|
|
2471
2481
|
merged["size"] = merged["size_a"]
|
|
2482
|
+
if merged.get("pattern") and not merged.get("size_pattern"):
|
|
2483
|
+
# Only `parse_size_pattern_load` produces `pattern`, and it always
|
|
2484
|
+
# produces `size_pattern` beside it. A load carrying one without the
|
|
2485
|
+
# other was assembled by hand, and sending the expanded form would
|
|
2486
|
+
# drop every size but the first -- loudly here rather than as a peer
|
|
2487
|
+
# whose publisher will not start.
|
|
2488
|
+
raise RuntimeError(
|
|
2489
|
+
f"load carries pattern {merged['pattern']!r} without the size pattern it came from; "
|
|
2490
|
+
"build it with parse_size_pattern_load so every size reaches the peer."
|
|
2491
|
+
)
|
|
2472
2492
|
for key, flag in _OTA_LOAD_FLAGS:
|
|
2473
2493
|
if merged.get(key) is not None:
|
|
2474
2494
|
parts.extend([flag, str(merged[key])])
|
|
@@ -7580,6 +7600,33 @@ def _smoke_publish_specs(cfg: dict[str, Any], source_peer_key: str | None = None
|
|
|
7580
7600
|
return specs
|
|
7581
7601
|
|
|
7582
7602
|
|
|
7603
|
+
#: Where a detached smoke publisher's own output goes inside its container.
|
|
7604
|
+
#: `docker exec -d` returns before the process says anything and keeps nothing,
|
|
7605
|
+
#: so without this the only evidence of a publisher that refused to start is the
|
|
7606
|
+
#: topic never appearing -- which reads as a broken graph rather than as a bad
|
|
7607
|
+
#: parameter. One file per topic, overwritten per attempt.
|
|
7608
|
+
_SMOKE_PUBLISHER_LOG_DIR = "/tmp"
|
|
7609
|
+
|
|
7610
|
+
|
|
7611
|
+
def _smoke_publisher_log_path(topic: str) -> str:
|
|
7612
|
+
slug = re.sub(r"[^A-Za-z0-9]+", "_", topic).strip("_") or "topic"
|
|
7613
|
+
return f"{_SMOKE_PUBLISHER_LOG_DIR}/rosotacom-smoke-publisher-{slug}.log"
|
|
7614
|
+
|
|
7615
|
+
|
|
7616
|
+
def _smoke_publisher_failure_detail(container: str, log_path: str) -> str:
|
|
7617
|
+
"""What the publisher said before it stopped, if it said anything."""
|
|
7618
|
+
result = subprocess.run(
|
|
7619
|
+
["docker", "exec", container, "tail", "-n", "20", log_path],
|
|
7620
|
+
capture_output=True,
|
|
7621
|
+
text=True,
|
|
7622
|
+
check=False,
|
|
7623
|
+
)
|
|
7624
|
+
detail = ((result.stdout or "") + (result.stderr or "")).strip()
|
|
7625
|
+
if not detail:
|
|
7626
|
+
return f" Nothing was written to {log_path} in the container, so it never got as far as starting."
|
|
7627
|
+
return f"\nWhat it wrote to {log_path}:\n{detail}"
|
|
7628
|
+
|
|
7629
|
+
|
|
7583
7630
|
def _start_smoke_topic_publishers(
|
|
7584
7631
|
containers: dict[str, str],
|
|
7585
7632
|
ros_setups: dict[str, str],
|
|
@@ -7606,8 +7653,9 @@ def _start_smoke_topic_publishers(
|
|
|
7606
7653
|
f"Starting smoke publisher {spec.source_peer_key}->{spec.receiver_peer_key} "
|
|
7607
7654
|
f"{spec.publish_topic} ({spec.publish_type}) in {container}{offered}"
|
|
7608
7655
|
)
|
|
7656
|
+
log_path = _smoke_publisher_log_path(spec.publish_topic)
|
|
7609
7657
|
subprocess.run(
|
|
7610
|
-
["docker", "exec", "-d", container, "bash", "-c", cmd],
|
|
7658
|
+
["docker", "exec", "-d", container, "bash", "-c", f"{{ {cmd} ; }} > {shlex.quote(log_path)} 2>&1"],
|
|
7611
7659
|
capture_output=True,
|
|
7612
7660
|
text=True,
|
|
7613
7661
|
check=False,
|
|
@@ -7626,6 +7674,7 @@ def _start_smoke_topic_publishers(
|
|
|
7626
7674
|
raise RuntimeError(
|
|
7627
7675
|
f"Smoke publisher {spec.source_peer_key}->{spec.receiver_peer_key} "
|
|
7628
7676
|
f"{spec.publish_topic} ({spec.publish_type}) did not advertise in {container}."
|
|
7677
|
+
+ _smoke_publisher_failure_detail(container, log_path)
|
|
7629
7678
|
)
|
|
7630
7679
|
return started
|
|
7631
7680
|
|
|
@@ -7981,7 +8030,21 @@ def _publish_load_override(args: argparse.Namespace) -> dict[str, Any] | None:
|
|
|
7981
8030
|
load["size"] = int(args.load_size)
|
|
7982
8031
|
load["size_a"] = int(args.load_size)
|
|
7983
8032
|
if getattr(args, "load_size_pattern", None):
|
|
7984
|
-
|
|
8033
|
+
# Re-derived here rather than carried in pieces: the orchestrator sends
|
|
8034
|
+
# the pattern it was given, and this side expands it into `sizes`,
|
|
8035
|
+
# `pattern` and every `size_<label>` the publisher needs. `size_a` from
|
|
8036
|
+
# `--load-size` above is overwritten on purpose -- a pattern names its
|
|
8037
|
+
# own sizes, and the scalar is only a fallback for callers without one.
|
|
8038
|
+
from .benchmark import parse_size_pattern_load
|
|
8039
|
+
|
|
8040
|
+
try:
|
|
8041
|
+
load.update(parse_size_pattern_load(str(args.load_size_pattern)))
|
|
8042
|
+
except ValueError as error:
|
|
8043
|
+
raise RuntimeError(
|
|
8044
|
+
f"--load-size-pattern {args.load_size_pattern!r} is not a size pattern ({error}). "
|
|
8045
|
+
"An orchestrator older than this peer sends the expanded token form here instead of the "
|
|
8046
|
+
"pattern; the two sides have to agree, so bring them to the same rosotacom."
|
|
8047
|
+
) from error
|
|
7985
8048
|
if getattr(args, "load_rate_hz", None) is not None:
|
|
7986
8049
|
load["rate"] = float(args.load_rate_hz)
|
|
7987
8050
|
if getattr(args, "load_streams", None) is not None:
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/tests/unit/test_ota_benchmark_peer_exec.py
RENAMED
|
@@ -11,12 +11,16 @@ from __future__ import annotations
|
|
|
11
11
|
|
|
12
12
|
import argparse
|
|
13
13
|
|
|
14
|
+
import pytest
|
|
15
|
+
|
|
16
|
+
from rosotacom.benchmark import parse_size_pattern_load
|
|
14
17
|
from rosotacom.cli import (
|
|
15
18
|
_ota_instances_rel,
|
|
16
19
|
_ota_publish_parts,
|
|
17
20
|
_profile_directions_for,
|
|
18
21
|
_publish_load_override,
|
|
19
22
|
)
|
|
23
|
+
from rosotacom.cli_benchmark import _sized_publisher_param_args
|
|
20
24
|
|
|
21
25
|
|
|
22
26
|
class _Target:
|
|
@@ -72,11 +76,67 @@ def test_the_benchmark_load_reaches_the_peer_command():
|
|
|
72
76
|
assert "--load-streams" in parts and parts[parts.index("--load-streams") + 1] == "2"
|
|
73
77
|
|
|
74
78
|
|
|
75
|
-
def
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
def test_a_size_pattern_travels_as_the_string_it_was_given():
|
|
80
|
+
"""The source pattern, not the expanded token form it was compiled into.
|
|
81
|
+
|
|
82
|
+
`parse_size_pattern_load` turns one string into `sizes`, `pattern`,
|
|
83
|
+
`size_pattern` and a `size_<label>` per distinct size, and only three of
|
|
84
|
+
those used to cross the hop. A two-size pattern arrived as `a*6,b*1` with a
|
|
85
|
+
`size_a` and no `size_b`, so the peer's publisher died on `Pattern
|
|
86
|
+
references size 'b' but it was not provided` -- inside a detached
|
|
87
|
+
`docker exec`, which the orchestrator could only report as the topic never
|
|
88
|
+
advertising. Sending the source string cannot lose a size.
|
|
89
|
+
"""
|
|
90
|
+
load = parse_size_pattern_load("6x200B+1x28000B")
|
|
91
|
+
parts = _ota_publish_parts(_Target(), "a", [], load=load)
|
|
92
|
+
|
|
93
|
+
assert parts[parts.index("--load-size-pattern") + 1] == "6x200B+1x28000B"
|
|
94
|
+
assert "a*6,b*1" not in parts
|
|
78
95
|
# `size_a` is the pattern's own base size and must reach the peer as --load-size.
|
|
79
|
-
assert parts[parts.index("--load-size") + 1] == "
|
|
96
|
+
assert parts[parts.index("--load-size") + 1] == "200"
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def test_a_hand_built_pattern_load_is_refused_rather_than_silently_truncated():
|
|
100
|
+
with pytest.raises(RuntimeError, match="without the size pattern it came from"):
|
|
101
|
+
_ota_publish_parts(_Target(), "a", [], load={"pattern": "a*4,b*1", "size_a": 5000})
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def test_every_size_of_a_pattern_survives_the_round_trip_to_the_publisher():
|
|
105
|
+
"""Orchestrator load -> peer flags -> peer load -> publisher parameters.
|
|
106
|
+
|
|
107
|
+
The end the defect lived at: each step looked right on its own, and only
|
|
108
|
+
the whole chain shows that the second size never arrives.
|
|
109
|
+
"""
|
|
110
|
+
parts = _ota_publish_parts(_Target(), "a", [], load=parse_size_pattern_load("6x200B+1x28000B"))
|
|
111
|
+
args = argparse.Namespace(
|
|
112
|
+
load_size=int(parts[parts.index("--load-size") + 1]),
|
|
113
|
+
load_size_pattern=parts[parts.index("--load-size-pattern") + 1],
|
|
114
|
+
load_rate_hz=None,
|
|
115
|
+
load_streams=None,
|
|
116
|
+
load_interval_jitter_ms=None,
|
|
117
|
+
load_interval_jitter_seed=None,
|
|
118
|
+
)
|
|
119
|
+
peer_load = _publish_load_override(args)
|
|
120
|
+
assert peer_load is not None
|
|
121
|
+
|
|
122
|
+
params = _sized_publisher_param_args("/bench_capacity", dict(peer_load))
|
|
123
|
+
|
|
124
|
+
assert "size_a:=200" in params
|
|
125
|
+
assert "size_b:=28000" in params
|
|
126
|
+
assert "pattern:=a*6,b*1" in params
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def test_a_peer_newer_than_its_orchestrator_says_so_instead_of_failing_obscurely():
|
|
130
|
+
args = argparse.Namespace(
|
|
131
|
+
load_size=5000,
|
|
132
|
+
load_size_pattern="a*4,b*1",
|
|
133
|
+
load_rate_hz=None,
|
|
134
|
+
load_streams=None,
|
|
135
|
+
load_interval_jitter_ms=None,
|
|
136
|
+
load_interval_jitter_seed=None,
|
|
137
|
+
)
|
|
138
|
+
with pytest.raises(RuntimeError, match="same rosotacom"):
|
|
139
|
+
_publish_load_override(args)
|
|
80
140
|
|
|
81
141
|
|
|
82
142
|
def test_no_load_leaves_the_session_to_say_what_it_expects():
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.devcontainer/devcontainer.json.template
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.devcontainer/re_generate_devcontainer_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/documentation-audit.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/implementation-cleanup.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/quality-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/release-process.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/ISSUE_TEMPLATE/repository-diagnosis.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/.github/workflows/benchmark-calibrate.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/capacity-size-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-gop-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-nominal-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/calibration/probe-loss-tight-fastdds.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/cyclone-spdp-discovery-bursts.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/head-of-line-irregularity.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/jitter-loss-bandwidth-latency.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/queueing-adds-delay-not-loss.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/reorder-becomes-reader-loss.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/repro/decode_chain_repro.py
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/repro/reorder_drop_repro.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/findings/zero-loss-boundaries-18kb-20hz.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0001-expectation-driven-test-suite.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/docs/rfcs/0005-benchmark-genres-and-ci.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/benched-set.yaml
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/.gitignore
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/README.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/profiles.yaml
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/ros2docker.json
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev82 → rosotacom_dev-2.5.dev83}/src/rosotacom/resources/examples/rosotacom.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|