• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

RobotWebTools / rclnodejs / 23891466588
85%

Build:
DEFAULT BRANCH: develop
Ran 02 Apr 2026 08:55AM UTC
Jobs 1
Files 54
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Apr 2026 08:27AM UTC coverage: 85.297% (-0.5%) from 85.83%
23891466588

push

github

web-flow
Add QoS overriding options for publishers and subscriptions (#1468)

Allow QoS policies to be overridden at deployment time via ROS parameters, without changing source code. When `qosOverridingOptions` is passed to `createPublisher()` or `createSubscription()`, the node declares read-only parameters (e.g. `qos_overrides./chatter.subscription.depth`) whose values can be set at startup. Ported from rclpy's `QoSOverridingOptions` (rclpy/qos_overriding_options.py).

Usage with rclnodejs:
```bash
node my_app.js --ros-args -p "qos_overrides./chatter.subscription.depth:=1"
node my_app.js --ros-args --params-file qos.yaml
```
The `--ros-args` are received via `process.argv`, processed by `rclnodejs.init()`, and applied when `declareParameter()` finds matching overrides in `_parameterOverrides`.

**New: `lib/qos_overriding_options.js`** — `QoSPolicyKind` enum (HISTORY, DEPTH, RELIABILITY, DURABILITY, LIVELINESS, AVOID_ROS_NAMESPACE_CONVENTIONS), `QoSOverridingOptions` class with `withDefaultPolicies()` factory, `declareQosParameters()` engine that declares parameters per whitelisted policy and applies overrides to the QoS profile in-place, and enum↔string conversion helpers. Includes `_resolveQoS()` to convert string profile names to mutable QoS objects.

**Modified: `lib/node.js`** — `_createPublisher()` and `createSubscription()` check for `options.qosOverridingOptions`, resolve QoS profile strings, and call `declareQosParameters()` before creating the entity.

**Modified: `index.js`** — Exports `QoSPolicyKind` and `QoSOverridingOptions`.

**New: `test/test-qos-overriding-options.js`** — 11 tests: enum values, factory method, custom policies with entityId, publisher/subscription parameter declaration and value verification, entity ID suffix in parameter names, validation callback accept/reject, string QoS resolution, no-override baseline, and end-to-end parameter override proving the QoS object is mutated in-place.

Fix: #1467

1524 of 1944 branches covered (78.4%)

Branch coverage included in aggregate %.

58 of 87 new or added lines in 2 files covered. (66.67%)

3117 of 3497 relevant lines covered (89.13%)

438.93 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
86.94
0.1% lib/node.js
28
61.6
lib/qos_overriding_options.js
Jobs
ID Job ID Ran Files Coverage
1 23891466588.1 02 Apr 2026 08:55AM UTC 54
85.3
GitHub Action Run
Source Files on build 23891466588
  • Tree
  • List 54
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23891466588
  • 5dd25ce3 on github
  • Prev Build on develop (#23884593480)
  • Next Build on develop (#23893998020)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc