rosotacom-dev 2.5.dev72__tar.gz → 2.5.dev73__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.dev72 → rosotacom_dev-2.5.dev73}/PKG-INFO +1 -1
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/cli.py +27 -5
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/PKG-INFO +1 -1
- rosotacom_dev-2.5.dev73/src/rosotacom_dev.egg-info/scm_version.json +8 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_concurrency.py +73 -0
- rosotacom_dev-2.5.dev72/src/rosotacom_dev.egg-info/scm_version.json +0 -8
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.devcontainer/devcontainer.json.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.devcontainer/re_generate_devcontainer_json.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/CODEOWNERS +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/documentation-audit.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/implementation-cleanup.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/quality-workflow.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/redesign.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/release-process.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/repository-diagnosis.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/test-ci-audit.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/work-item.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/actions/setup-just/action.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/dependabot.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/benchmark-calibrate.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/benchmark-gate.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/dev-release.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/image-scan.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/nightly-e2e.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/pr-lightweight.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/pr-merge-gate.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/workflows/release.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.pre-commit-config.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/AGENTS.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/CONCURRENCY.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/CONTRIBUTING.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/DEVELOPMENT_PRINCIPLES.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/MANIFEST.in +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/budgets.jsonl +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/capacity-size-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-gop-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-nominal-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-tight-cyclone.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-tight-fastdds.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-tight-zenoh.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/codecov.yml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/deployment-configuration.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/benchmark-ab.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/benchmark-bag-as-load.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/ci.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/ffmpeg-keyframes.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/a-transport-element-doubles-every-fastdds-sample.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/cyclone-fragment-equal-to-max-drops-fragmented-samples.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/cyclone-spdp-discovery-bursts.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/delay-alone-no-loss.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/fastdds-datagram-cap-drops-large-samples.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/graph-derived-types-block-a-non-graph-transport.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/head-of-line-irregularity.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/jitter-loss-bandwidth-latency.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/keyframe-loss-kills-the-next-deltas.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/lifespan-is-enforced-by-one-reader-and-not-the-other.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/lighter-message-loss.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/one-domain-two-cyclone-configs-stop-interoperating.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/oversubscription-queues-not-losses.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/reorder-becomes-reader-loss.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/repro/decode_chain_repro.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/repro/reorder_drop_repro.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/sender-rows-make-a-dead-link-look-loss-free.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/zero-loss-boundaries-18kb-20hz.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/forensics-report.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/geo-link-map.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/github-repository-settings.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/link-bandwidth.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/link-trace.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/ota-pcap.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/owner-runbook.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/performance-bands.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/playbooks/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/quality-model.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release-notes/TEMPLATE.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release-notes/v2.1.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release-notes/v2.2.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release-notes/v2.3.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release-notes/v2.4.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/release.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0001-expectation-driven-test-suite.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0002-expectation-concepts.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0003-metric-backbone.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0004-network-profiles.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0005-benchmark-genres-and-ci.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0006-dynamic-qos.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/0007-regression-gate.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/rfcs/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/testing.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/work-items.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/install.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/justfile +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/media/control_center.png +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/media/echo_test.png +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/media/forensics-report-example.png +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/media/host.png +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/media/vehicle.png +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/pyproject.toml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/requirements.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/session-configuration.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/__init__.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/__main__.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/anonymize.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/benched_set.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/benchmark.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/benchmark_delta.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/deployment.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/forensics.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/geomap.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/image_cache.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/netem_dist.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/network_preflight.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/plots.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/py.typed +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/benched-set.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/.gitignore +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/README.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/__init__.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/bags/8_drop_reference/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/deployment.example.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/dist/field-20260817.dist +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/profiles.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/ros2docker.lyrical.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/rosotacom.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scenarios/2_native_chatter/scenario-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_a.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/1_heartbeat/run_machine_b.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.lyrical.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_a/wait_for_echo_topic.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.lyrical.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/2_native_chatter/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/3_comp_occ_grid/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/foxglove.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/costmap_1second_0.mcap +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/costmap_1second/metadata.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/4_comp_occ_grid_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/5_sized_payload/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_a/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external.ros2docker.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/external_session.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_communication.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/scripts/6_sized_payload_zen/machine_b/run_external.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/10_restamp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/11_trickle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/12_content_integrity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/13_link_latency/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/14_remote_assist_anonymized/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/15_remote_assist_anonymized_costmap/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/16_remote_assist_anonymized_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/17_synthetic_camera_quality/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/1_heartbeat/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/1_heartbeat_status/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/2_native_chatter/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/3_comp_occ_grid/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/4_comp_occ_grid_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/5_sized_payload/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/6_sized_payload_zen/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/7_latched_static/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/8_drop/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/9_throttle/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/bench_1_1_capacity/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/bench_1_2_load_sweep/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/bench_1_3_ramp/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/bench_1_4_recovery/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/sessions/bench_1_5_camera/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ros2docker.json.example +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ros2docker.lyrical.json.example +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/.vscode/c_cpp_properties.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/.vscode/settings.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_easy_mode.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_initial_peer_list.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v2.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v3.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v4.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/archive/fastdds_v5.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/create_zenoh_json5.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/cyclonedds_local_participants.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/cyclonedds_minimal.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/cyclonedds_scoped.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/cyclonedds_tuned.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/fastdds_easy_mode.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/fastdds_local.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/fastdds_tuned.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/fastdds_unicast.xml.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/get_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/utils.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ota_configs/zenoh.json5.template +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/.gitkeep +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/COLCON_IGNORE +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/package.xml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/src/hz_monitor.cpp +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_compressor.cpp +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_cpp/src/universal_decompressor.cpp +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/CMakeLists.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/CompressedData.msg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/EchoHeartbeat.msg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/OtaStamped.msg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/msg/SizedPayload.msg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_msgs/package.xml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/LICENSE.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/__init__.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/base_bridge_relay.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_in.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/bridge_out.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/ffmpeg_flags.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/heartbeat_echo.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/hz_monitor.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_bandwidth_reducer.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/image_pixel_capper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/lanelet_saver.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/latch_relay.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/costmap_remapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/marker_remapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/speed_test.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/tf_remapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/traffic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/legacy/wifi_network_analysis_1.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/link_trace.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/local_global_frame_bridge.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/localization_map_split_reduce_saver.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/msg_transform.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/ota_pcap.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pair_management.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/playout_pacer.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/playout_pacer_core.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/pub_sub_pair.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/qos.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_in.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/relay_out.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/restamp.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/sized_publisher.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/stage_latency_core.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/status_overview_core.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/tf_map_to_cart_saver.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_monitor.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/topic_resolution.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/trickle.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_compressor.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_decompressor.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_unwrapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/com_py/universal_ota_wrapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/package.xml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/resource/com_py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/setup.cfg +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/setup.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/test/test_copyright.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/test/test_flake8.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/ros2src/com_py/test/test_pep257.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/content/base/session_plugin_base.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/content/network/up_connectivity.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/content/network/wifi_network_analysis_2.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/anonymize_bag.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/catmux_log_setup.sh +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/create_session_yaml.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/generate_session_files.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/run_session.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/run_session_in_external_terminal.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/ws/session/creation/strip_ansi.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/status_eval.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/transit.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/video_quality.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/SOURCES.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/dependency_links.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/entry_points.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/requires.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/scm_file_list.json +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom_dev.egg-info/top_level.txt +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/terminology.md +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_benched_set_registry.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_findings.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_generated_topics_have_a_producer.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_lyrical_runtime_compat.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_markdown_links.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_ota_source_bundle.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_package_metadata.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_packaged_resources.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_profile_covers_generated_commands.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_pytest_policy.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_readme_examples.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_security_maintenance_config.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_session_configuration_doc.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_session_template_substitution.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/contract/test_workflow_contracts.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/conftest.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_anonymize_e2e.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_benchmark_ab.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_benchmark_capacity.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_benchmark_replay.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_parallel_smoke.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_smoke.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_timeline_stepping.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/e2e/test_video_quality_e2e.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/generate_rmw_matrix.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-local_zenoh-ros2dds-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_cyclone-ota-tuned/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_fastdds/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_fastdds-default/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/sessions/rmw_matrix/1_heartbeat_zen-endpoints/session-definition.yaml +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_anonymize.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_bag_ground_truth.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_benched_set.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_benchmark_delta.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_bundle_check.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_catmux_pane_logging.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_cli.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_cli_benchmark.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_container_shaping.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_deployment.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ffmpeg_flags.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ffmpeg_packet.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_field_profiles.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_forensics.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_geomap.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_image_cache.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_link_bytes.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_link_trace.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_netem_dist.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_network_preflight.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_network_profiles.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_network_shaper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ota_link_configs.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ota_pcap.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ota_unwrapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ota_wrapper.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ota_xml.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_playout_pacer.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_plots.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_pub_sub_pair_types.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_qos_fallback_logging.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_relay_optional_parameters.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_ros_node_entity_ownership.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_session_pipeline.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_stage_latency.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_status_eval.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_status_overview.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_status_overview_observer.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_stream_stats.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_terminology_stage_ownership.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_trace_profiles.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_transit.py +0 -0
- {rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/tests/unit/test_video_quality.py +0 -0
|
@@ -794,6 +794,31 @@ def _new_instance_id() -> str:
|
|
|
794
794
|
return hashlib.sha1(seed.encode("utf-8")).hexdigest()[:8]
|
|
795
795
|
|
|
796
796
|
|
|
797
|
+
#: The timestamp every instance directory carries between its session slug and
|
|
798
|
+
#: its id: `<slug>_YYYY-MM-DD_HH-MM-SS_<id>`. Spelled out digit by digit rather
|
|
799
|
+
#: than left as `*`, because a session's name may be a *prefix* of another
|
|
800
|
+
#: session's name and `f"{slug}_*"` then collects the other session's instances
|
|
801
|
+
#: too. `ccng_remote_assist_*` matches every `ccng_remote_assist_kilted_dds_*`,
|
|
802
|
+
#: and because the matches are ordered by name, `[-1]` answers with the wrong
|
|
803
|
+
#: session's run whenever the longer name sorts after a digit — which `k` does.
|
|
804
|
+
#:
|
|
805
|
+
#: That is not hypothetical. On 2026-08-21 it made `rosotacom status
|
|
806
|
+
#: ccng_remote_assist` report a `ccng_remote_assist_kilted_dds` run that had
|
|
807
|
+
#: been shut down 45 minutes earlier, so three two-host runs concluded their
|
|
808
|
+
#: link never came up while it was in fact carrying traffic for eleven minutes.
|
|
809
|
+
#: Nothing in the reading said it came from another session.
|
|
810
|
+
_INSTANCE_STAMP_GLOB = "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]_[0-9][0-9]-[0-9][0-9]-[0-9][0-9]"
|
|
811
|
+
|
|
812
|
+
|
|
813
|
+
def _instance_glob(session_slug: str, instance_id: str | None = None) -> str:
|
|
814
|
+
"""The pattern matching this session's instances, and no other session's.
|
|
815
|
+
|
|
816
|
+
With the stamp pinned, the names sort chronologically, so `sorted(...)[-1]`
|
|
817
|
+
is the newest instance rather than merely the last name.
|
|
818
|
+
"""
|
|
819
|
+
return f"*/{session_slug}_{_INSTANCE_STAMP_GLOB}_{instance_id or '*'}"
|
|
820
|
+
|
|
821
|
+
|
|
797
822
|
def _session_instances_root(runtime: RuntimeConfig) -> Path:
|
|
798
823
|
return (runtime.session_instances_dir or (Path.cwd() / "session-instances")).resolve()
|
|
799
824
|
|
|
@@ -818,7 +843,7 @@ def _resolve_session_instance(
|
|
|
818
843
|
resolved_instance_id = _safe_path_token(instance_id or _new_instance_id())
|
|
819
844
|
|
|
820
845
|
if instance_id:
|
|
821
|
-
matches = sorted(root.glob(
|
|
846
|
+
matches = sorted(root.glob(_instance_glob(session_slug, resolved_instance_id)))
|
|
822
847
|
if matches:
|
|
823
848
|
host_dir = matches[-1].resolve()
|
|
824
849
|
else:
|
|
@@ -8781,10 +8806,7 @@ def smoke(args: argparse.Namespace) -> int:
|
|
|
8781
8806
|
def _find_latest_instance_dir(runtime: RuntimeConfig, session: ResolvedSession, instance_id: str | None) -> Path:
|
|
8782
8807
|
root = _session_instances_root(runtime)
|
|
8783
8808
|
session_slug = _session_instance_slug(session, runtime)
|
|
8784
|
-
if instance_id
|
|
8785
|
-
pattern = f"*/{session_slug}_*_{_safe_path_token(instance_id)}"
|
|
8786
|
-
else:
|
|
8787
|
-
pattern = f"*/{session_slug}_*"
|
|
8809
|
+
pattern = _instance_glob(session_slug, _safe_path_token(instance_id) if instance_id else None)
|
|
8788
8810
|
matches = sorted(p for p in root.glob(pattern) if p.is_dir())
|
|
8789
8811
|
if not matches:
|
|
8790
8812
|
raise RuntimeError(
|
|
@@ -943,3 +943,76 @@ def test_a_pinned_peer_confines_its_containers(tmp_path: Path) -> None:
|
|
|
943
943
|
# And without one, nothing is added: the flag must not appear on a peer that
|
|
944
944
|
# was never pinned, or every unpinned run changes shape too.
|
|
945
945
|
assert "--cpuset" not in rosotacom._ota_start_parts(target, "a", "id-1", [], mode="detached")
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
# --------------------------------------------------- instance resolution by name
|
|
949
|
+
#
|
|
950
|
+
# A session's instances are found by globbing its slug. The slug of one session
|
|
951
|
+
# can be a prefix of another's — `ccng_remote_assist` and
|
|
952
|
+
# `ccng_remote_assist_kilted_dds` are the pair that exposed it — and a pattern
|
|
953
|
+
# that ends the slug with `*` then matches both. The matches are ordered by
|
|
954
|
+
# name, so the answer is whichever sorts last, and a letter sorts after a digit:
|
|
955
|
+
# the *other* session's run wins over this session's own newest one.
|
|
956
|
+
#
|
|
957
|
+
# What that cost: on 2026-08-21 `rosotacom status ccng_remote_assist` reported a
|
|
958
|
+
# `ccng_remote_assist_kilted_dds` run that had been shut down 45 minutes
|
|
959
|
+
# earlier. Three two-host runs waited ten minutes each and concluded their link
|
|
960
|
+
# never came up, while their own status file said it had been OK the whole time.
|
|
961
|
+
|
|
962
|
+
|
|
963
|
+
def _session(tmp_path: Path, name: str) -> rosotacom.ResolvedSession:
|
|
964
|
+
host_dir = tmp_path / "sessions" / name
|
|
965
|
+
host_dir.mkdir(parents=True, exist_ok=True)
|
|
966
|
+
return rosotacom.ResolvedSession(host_dir, f"/session/{name}", "test")
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
def _instance(root: Path, slug: str, stamp: str, instance_id: str) -> Path:
|
|
970
|
+
day, _, _ = stamp.partition("_")
|
|
971
|
+
path = root / day / f"{slug}_{stamp}_{instance_id}"
|
|
972
|
+
path.mkdir(parents=True, exist_ok=True)
|
|
973
|
+
return path
|
|
974
|
+
|
|
975
|
+
|
|
976
|
+
def test_a_longer_session_name_does_not_capture_this_session_s_instances(tmp_path: Path) -> None:
|
|
977
|
+
runtime = _runtime(tmp_path)
|
|
978
|
+
root = tmp_path / "instances"
|
|
979
|
+
mine = _instance(root, "ccng_remote_assist", "2026-08-21_21-42-01", "35285739")
|
|
980
|
+
# Older, another session, and its name sorts after mine because 'k' > '2'.
|
|
981
|
+
_instance(root, "ccng_remote_assist_kilted_dds", "2026-08-21_20-57-05", "52a752d6")
|
|
982
|
+
|
|
983
|
+
found = rosotacom._find_latest_instance_dir(runtime, _session(tmp_path, "ccng_remote_assist"), None)
|
|
984
|
+
|
|
985
|
+
assert found == mine.resolve()
|
|
986
|
+
|
|
987
|
+
|
|
988
|
+
def test_the_longer_name_still_finds_its_own_newest(tmp_path: Path) -> None:
|
|
989
|
+
runtime = _runtime(tmp_path)
|
|
990
|
+
root = tmp_path / "instances"
|
|
991
|
+
_instance(root, "ccng_remote_assist", "2026-08-21_21-42-01", "35285739")
|
|
992
|
+
_instance(root, "ccng_remote_assist_kilted_dds", "2026-08-21_20-48-37", "643792ab")
|
|
993
|
+
newest = _instance(root, "ccng_remote_assist_kilted_dds", "2026-08-21_20-57-05", "52a752d6")
|
|
994
|
+
|
|
995
|
+
found = rosotacom._find_latest_instance_dir(runtime, _session(tmp_path, "ccng_remote_assist_kilted_dds"), None)
|
|
996
|
+
|
|
997
|
+
assert found == newest.resolve()
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
def test_instances_are_ordered_by_their_stamp(tmp_path: Path) -> None:
|
|
1001
|
+
runtime = _runtime(tmp_path)
|
|
1002
|
+
root = tmp_path / "instances"
|
|
1003
|
+
_instance(root, "link", "2026-08-20_23-59-59", "aaaaaaaa")
|
|
1004
|
+
newest = _instance(root, "link", "2026-08-21_00-00-01", "00000000")
|
|
1005
|
+
|
|
1006
|
+
found = rosotacom._find_latest_instance_dir(runtime, _session(tmp_path, "link"), None)
|
|
1007
|
+
|
|
1008
|
+
# The id sorts first among these two; the stamp is what has to decide.
|
|
1009
|
+
assert found == newest.resolve()
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
def test_a_named_instance_of_another_session_is_not_answered(tmp_path: Path) -> None:
|
|
1013
|
+
runtime = _runtime(tmp_path)
|
|
1014
|
+
root = tmp_path / "instances"
|
|
1015
|
+
_instance(root, "ccng_remote_assist_kilted_dds", "2026-08-21_20-57-05", "52a752d6")
|
|
1016
|
+
|
|
1017
|
+
with pytest.raises(RuntimeError, match="No session instance found"):
|
|
1018
|
+
rosotacom._find_latest_instance_dir(runtime, _session(tmp_path, "ccng_remote_assist"), "52a752d6")
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.devcontainer/devcontainer.json.template
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.devcontainer/re_generate_devcontainer_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/documentation-audit.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/implementation-cleanup.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/quality-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.github/ISSUE_TEMPLATE/release-process.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/.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.dev72 → rosotacom_dev-2.5.dev73}/.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.dev72 → rosotacom_dev-2.5.dev73}/calibration/capacity-size-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-gop-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-nominal-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/calibration/probe-loss-tight-cyclone.json
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/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
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/cyclone-spdp-discovery-bursts.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/head-of-line-irregularity.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/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
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/reorder-becomes-reader-loss.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/repro/decode_chain_repro.py
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/docs/findings/repro/reorder_drop_repro.py
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/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.dev72 → rosotacom_dev-2.5.dev73}/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.dev72 → rosotacom_dev-2.5.dev73}/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.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/benched-set.yaml
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/.gitignore
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/README.md
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/profiles.yaml
RENAMED
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/src/rosotacom/resources/examples/ros2docker.json
RENAMED
|
File without changes
|
|
File without changes
|
{rosotacom_dev-2.5.dev72 → rosotacom_dev-2.5.dev73}/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
|