rosotacom-dev 2.5.dev5__tar.gz → 2.5.dev6__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.dev5 → rosotacom_dev-2.5.dev6}/PKG-INFO +1 -1
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/testing.md +10 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/cli.py +20 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/status_eval.py +21 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/PKG-INFO +1 -1
- rosotacom_dev-2.5.dev6/src/rosotacom_dev.egg-info/scm_version.json +8 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_status_eval.py +27 -0
- rosotacom_dev-2.5.dev5/src/rosotacom_dev.egg-info/scm_version.json +0 -8
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.devcontainer/devcontainer.json.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.devcontainer/re_generate_devcontainer_json.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/CODEOWNERS +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/documentation-audit.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/implementation-cleanup.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/quality-workflow.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/redesign.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/release-process.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/repository-diagnosis.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/test-ci-audit.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/work-item.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/dependabot.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/benchmark-calibrate.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/benchmark-gate.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/dev-release.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/image-scan.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/nightly-e2e.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/pr-lightweight.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/pr-merge-gate.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/workflows/release.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.pre-commit-config.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/AGENTS.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/CONCURRENCY.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/CONTRIBUTING.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/DEVELOPMENT_PRINCIPLES.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/MANIFEST.in +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/budgets.jsonl +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/capacity-size-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-gop-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-nominal-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-tight-fastdds.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-tight-zenoh.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/codecov.yml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/deployment-configuration.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/benchmark-ab.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/benchmark-bag-as-load.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/ci.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/ffmpeg-keyframes.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/cyclone-spdp-discovery-bursts.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/delay-alone-no-loss.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/head-of-line-irregularity.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/jitter-loss-bandwidth-latency.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/lighter-message-loss.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/zero-loss-boundaries-18kb-20hz.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/forensics-report.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/geo-link-map.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/github-repository-settings.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/link-trace.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/owner-runbook.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/performance-bands.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/playbooks/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/quality-model.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release-notes/TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release-notes/v2.1.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release-notes/v2.2.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release-notes/v2.3.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release-notes/v2.4.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/release.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0001-expectation-driven-test-suite.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0002-expectation-concepts.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0003-metric-backbone.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0004-network-profiles.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0005-benchmark-genres-and-ci.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0006-dynamic-qos.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0007-regression-gate.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/work-items.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/install.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/justfile +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/media/control_center.png +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/media/echo_test.png +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/media/forensics-report-example.png +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/media/host.png +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/media/vehicle.png +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/pyproject.toml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/requirements.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/run_session_in_container.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/session-configuration.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/__init__.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/__main__.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/anonymize.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/benched_set.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/benchmark.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/deployment.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/forensics.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/geomap.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/plots.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/py.typed +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/benched-set.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/.gitignore +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/README.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/__init__.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/bags/8_drop_reference/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/deployment.example.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/profiles.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scenarios/2_native_chatter/scenario-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_a.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_b.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/wait_for_echo_topic.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/10_restamp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/11_trickle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/12_content_integrity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/13_link_latency/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/14_remote_assist_anonymized/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/15_remote_assist_anonymized_costmap/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/16_remote_assist_anonymized_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/17_synthetic_camera_quality/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/1_heartbeat/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/1_heartbeat_status/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/2_native_chatter/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/3_comp_occ_grid/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/4_comp_occ_grid_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/5_sized_payload/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/6_sized_payload_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/7_latched_static/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/8_drop/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/9_throttle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/bench_1_1_capacity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/bench_1_2_load_sweep/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/bench_1_3_ramp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/bench_1_4_recovery/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/sessions/bench_1_5_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ros2docker.json.example +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/.vscode/c_cpp_properties.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/.vscode/settings.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_easy_mode.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_initial_peer_list.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v2.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v3.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v4.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v5.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/create_zenoh_json5.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/cyclonedds_minimal.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/cyclonedds_tuned.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/fastdds_unicast.xml.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/get_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/utils.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ota_configs/zenoh.json5.template +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/.gitkeep +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/COLCON_IGNORE +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/package.xml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/src/hz_monitor.cpp +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_compressor.cpp +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_decompressor.cpp +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/CompressedData.msg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/EchoHeartbeat.msg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/OtaStamped.msg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/SizedPayload.msg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_msgs/package.xml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/__init__.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/base_bridge_relay.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_in.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_out.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/heartbeat_echo.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/hz_monitor.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_bandwidth_reducer.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_pixel_capper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/lanelet_saver.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/latch_relay.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/costmap_remapper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/marker_remapper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/speed_test.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/tf_remapper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/traffic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/wifi_network_analysis_1.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_trace.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/local_global_frame_bridge.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/localization_map_split_reduce_saver.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/msg_transform.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pair_management.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pub_sub_pair.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/qos.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_in.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_out.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/restamp.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/sized_publisher.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency_core.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview_core.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/tf_map_to_cart_saver.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_resolution.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/trickle.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_compressor.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_decompressor.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_unwrapper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_wrapper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/package.xml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/resource/com_py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/setup.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/test/test_copyright.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/test/test_flake8.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/ros2src/com_py/test/test_pep257.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/content/base/session_plugin_base.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/content/network/up_connectivity.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/content/network/wifi_network_analysis_2.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/anonymize_bag.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/catmux_log_setup.sh +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/create_session_yaml.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/generate_session_files.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/run_session.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/run_session_in_external_terminal.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/ws/session/creation/strip_ansi.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/transit.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/video_quality.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/SOURCES.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/dependency_links.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/entry_points.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/requires.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/scm_file_list.json +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom_dev.egg-info/top_level.txt +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/stop_session_in_container.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/terminology.md +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_benched_set_registry.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_findings.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_markdown_links.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_ota_source_bundle.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_package_metadata.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_packaged_resources.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_profile_covers_generated_commands.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_pytest_policy.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_readme_examples.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_security_maintenance_config.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/contract/test_workflow_contracts.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/conftest.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_anonymize_e2e.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_benchmark_ab.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_benchmark_capacity.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_benchmark_replay.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_parallel_smoke.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_smoke.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_timeline_stepping.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/e2e/test_video_quality_e2e.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/generate_rmw_matrix.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-local_zenoh-ros2dds-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota-tuned/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/rmw_matrix/1_heartbeat_fastdds/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/sessions/rmw_matrix/1_heartbeat_zen-endpoints/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_anonymize.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_benched_set.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_cli.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_concurrency.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_deployment.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_forensics.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_geomap.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_link_trace.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_plots.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_status_overview.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_transit.py +0 -0
- {rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/tests/unit/test_video_quality.py +0 -0
|
@@ -75,6 +75,16 @@ planned decimation is not counted as OTA loss. The default `--min-ratio 0.9`
|
|
|
75
75
|
leaves a safety margin for a healthy link; tune it per gate instead of
|
|
76
76
|
committing a brittle 100% threshold.
|
|
77
77
|
|
|
78
|
+
**`vs_bag_ratio` is replay-only, and the run refuses to pretend otherwise.** It
|
|
79
|
+
compares the delivered rate to the source's native rate, which only the bag
|
|
80
|
+
knows, so `rosotacom test` needs `--bag <dir>` to evaluate it. Until #214 a run
|
|
81
|
+
without one skipped those assertions silently and still printed `TEST OK` — a
|
|
82
|
+
session could declare completeness on every topic and have none of it checked.
|
|
83
|
+
`test` now exits non-zero naming the topics instead. If a session genuinely is
|
|
84
|
+
not replay-driven, drop the assertion rather than running without the bag: a
|
|
85
|
+
skipped check reads as coverage, which is the failure mode these contracts
|
|
86
|
+
exist to catch.
|
|
87
|
+
|
|
78
88
|
Transient-local or explicitly latched topics become `mode: latched`, because the
|
|
79
89
|
contract is that the held value arrives, not that the topic keeps ticking.
|
|
80
90
|
Sparse volatile topics become `mode: existence`; the current expect model has no
|
|
@@ -6540,6 +6540,26 @@ def test_command(args: argparse.Namespace) -> int:
|
|
|
6540
6540
|
from . import bag_ground_truth
|
|
6541
6541
|
|
|
6542
6542
|
ground_truth = bag_ground_truth.bag_ground_truth(bag)
|
|
6543
|
+
elif not getattr(args, "suggest", False):
|
|
6544
|
+
# A `vs_bag_ratio` needs the bag's native rate, and without one it is
|
|
6545
|
+
# skipped rather than failed -- so the run would print TEST OK having
|
|
6546
|
+
# checked nothing about completeness. Refuse instead: the declaration
|
|
6547
|
+
# is the statement of intent, and honouring it or failing loudly is
|
|
6548
|
+
# this command's job.
|
|
6549
|
+
needs_bag = status_eval.topics_requiring_bag(expect_by_topic, profile)
|
|
6550
|
+
if needs_bag:
|
|
6551
|
+
listed = "\n".join(f" {base}" for base in needs_bag)
|
|
6552
|
+
print(
|
|
6553
|
+
f"rosotacom test: {len(needs_bag)} topic(s) declare "
|
|
6554
|
+
f"`completeness.vs_bag_ratio`, which compares the delivered rate "
|
|
6555
|
+
f"to the source's native rate and can only be evaluated against "
|
|
6556
|
+
f"the replay bag:\n{listed}\n"
|
|
6557
|
+
f"Pass `--bag <dir>`, or drop the assertion from a session that "
|
|
6558
|
+
f"is not replay-driven. Without a bag it would be skipped in "
|
|
6559
|
+
f"silence and this run would report success.",
|
|
6560
|
+
file=sys.stderr,
|
|
6561
|
+
)
|
|
6562
|
+
return 1
|
|
6543
6563
|
reports: dict[str, Any] = {}
|
|
6544
6564
|
failures: list[str] = []
|
|
6545
6565
|
|
|
@@ -105,6 +105,27 @@ def resolve_expect_for_profile(expect: dict[str, Any], profile: str | None) -> d
|
|
|
105
105
|
return resolved
|
|
106
106
|
|
|
107
107
|
|
|
108
|
+
def topics_requiring_bag(expect_by_topic: dict[str, dict[str, Any]], profile: str | None = None) -> list[str]:
|
|
109
|
+
"""Topics whose expectations can only be evaluated against a replay bag.
|
|
110
|
+
|
|
111
|
+
`completeness.vs_bag_ratio` compares the delivered rate to the *source's*
|
|
112
|
+
native rate, which only a bag knows. `_check_bag_completeness` returns
|
|
113
|
+
early when no ground truth was supplied, so without `--bag` such an
|
|
114
|
+
expectation is skipped in silence and the run still prints `TEST OK`.
|
|
115
|
+
|
|
116
|
+
A skipped assertion reads as coverage, which is worse than no assertion at
|
|
117
|
+
all: it is the exact shape of the defect these contracts exist to catch.
|
|
118
|
+
The caller uses this to refuse the run instead.
|
|
119
|
+
"""
|
|
120
|
+
required = []
|
|
121
|
+
for base, raw in sorted((expect_by_topic or {}).items()):
|
|
122
|
+
expect = resolve_expect_for_profile(raw or {}, profile)
|
|
123
|
+
completeness = expect.get("completeness") or {}
|
|
124
|
+
if isinstance(completeness, dict) and completeness.get("vs_bag_ratio") is not None:
|
|
125
|
+
required.append(base)
|
|
126
|
+
return required
|
|
127
|
+
|
|
128
|
+
|
|
108
129
|
def expectations_from_cfg(cfg: dict[str, Any]) -> dict[str, dict[str, Any]]:
|
|
109
130
|
"""Map a topic's base name -> its `expect` block, from a session config."""
|
|
110
131
|
out: dict[str, dict[str, Any]] = {}
|
|
@@ -7,6 +7,7 @@ from rosotacom.status_eval import (
|
|
|
7
7
|
evaluate_reports,
|
|
8
8
|
expectations_from_cfg,
|
|
9
9
|
resolve_expect_for_profile,
|
|
10
|
+
topics_requiring_bag,
|
|
10
11
|
)
|
|
11
12
|
|
|
12
13
|
|
|
@@ -350,6 +351,9 @@ def test_bag_completeness_above_ratio_passes() -> None:
|
|
|
350
351
|
|
|
351
352
|
|
|
352
353
|
def test_bag_completeness_skipped_without_ground_truth() -> None:
|
|
354
|
+
# `evaluate_report` itself still skips -- it has no bag to compare against.
|
|
355
|
+
# That silence is exactly why the CLI must refuse the run one level up; see
|
|
356
|
+
# the `topics_requiring_bag` tests below (#214).
|
|
353
357
|
topic = {"base": "/tf", "direction": "inbound", "overall": "OK", "stages": [_counted2("app_in", 1.0, 100)]}
|
|
354
358
|
assert (
|
|
355
359
|
evaluate_report({"peer": "a", "topics": [topic]}, {"/tf": {"completeness": {"vs_bag_ratio": 0.9}}}, None, None)
|
|
@@ -357,6 +361,29 @@ def test_bag_completeness_skipped_without_ground_truth() -> None:
|
|
|
357
361
|
)
|
|
358
362
|
|
|
359
363
|
|
|
364
|
+
def test_topics_requiring_bag_lists_only_replay_only_expectations() -> None:
|
|
365
|
+
expect = {
|
|
366
|
+
"/tf": {"completeness": {"vs_bag_ratio": 0.1}},
|
|
367
|
+
"/costmap": {"completeness": {"vs_bag_ratio": 0.85}},
|
|
368
|
+
"/plain": {"hz": {"min": 5}},
|
|
369
|
+
"/within_peer_only": {"completeness": {"min_ratio": 0.7}},
|
|
370
|
+
}
|
|
371
|
+
assert topics_requiring_bag(expect) == ["/costmap", "/tf"]
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
def test_topics_requiring_bag_is_empty_without_any_declaration() -> None:
|
|
375
|
+
assert topics_requiring_bag({"/plain": {"hz": {"min": 5}}}) == []
|
|
376
|
+
assert topics_requiring_bag({}) == []
|
|
377
|
+
|
|
378
|
+
|
|
379
|
+
def test_topics_requiring_bag_sees_a_per_profile_declaration() -> None:
|
|
380
|
+
# RFC 0004: the conditional block can come from a profile override, so a
|
|
381
|
+
# profiled run must be inspected through the same resolution the evaluator
|
|
382
|
+
# uses -- otherwise the requirement is invisible under `--profile`.
|
|
383
|
+
expect = {"/tf": {"per_profile": {"lossy": {"completeness": {"vs_bag_ratio": 0.5}}}}}
|
|
384
|
+
assert topics_requiring_bag(expect, profile="lossy") == ["/tf"]
|
|
385
|
+
|
|
386
|
+
|
|
360
387
|
def test_suggest_stream_topic_emits_hz_band() -> None:
|
|
361
388
|
rep = {"peer": "a", "topics": [_topic("/tf", "inbound", "OK", [_stage("app_in", 10.0, 30.0)])]}
|
|
362
389
|
s = suggest_expectations({"a": rep})
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.devcontainer/re_generate_devcontainer_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/documentation-audit.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/implementation-cleanup.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.github/ISSUE_TEMPLATE/quality-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/.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
|
|
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.dev5 → rosotacom_dev-2.5.dev6}/calibration/capacity-size-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-gop-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/calibration/probe-loss-nominal-cyclone.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
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/cyclone-spdp-discovery-bursts.md
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/head-of-line-irregularity.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/findings/jitter-loss-bandwidth-latency.md
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/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
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/docs/rfcs/0001-expectation-driven-test-suite.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
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/.gitignore
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/README.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/profiles.yaml
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/src/rosotacom/resources/examples/ros2docker.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev5 → rosotacom_dev-2.5.dev6}/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
|
|
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
|
|
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
|