Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Retired names

nano-ros’s cmake variables use one prefix, NROS_. Older releases used NANO_ROS_ for some of them, and the release before this one still accepted those spellings as deprecated aliases. They are now retired: a configure that sets one — in a CMakeLists.txt, with -D on the command line, or left behind in a build directory’s CMakeCache.txt — stops with an error that names the replacement. Nothing is adopted under the new name any more, so rename the old spelling where you set it.

RetiredUse instead
NANO_ROS_PLATFORMNROS_PLATFORM
NANO_ROS_FEATURESNROS_FEATURES
NANO_ROS_SAFETY_E2ENROS_SAFETY_E2E
NANO_ROS_ROS_EDITIONNROS_ROS_EDITION
NANO_ROS_GEN_CACHE_DIRNROS_GEN_CACHE_DIR
NANO_ROS_SKIP_BOOTSTRAPNROS_SKIP_BOOTSTRAP
NANO_ROS_BUILD_CODEGENNROS_BUILD_CODEGEN
NANO_ROS_CMAKE_DIRNROS_CMAKE_DIR
NANO_ROS_RMWNROS_RMW
NANO_ROS_BOARDNROS_BOARD
NANO_ROS_ROOT (cmake variable)NROS_REPO_DIR
NANO_ROS_ROOT <path> (keyword of nano_ros_workspace() and friends)NROS_REPO_DIR <path>

Retired knob spellings

Build-time knobs have one env spelling, NROS_<ID> (RFC-0103 D2b), held in the knob registry packages/tooling/nros-zephyr-build/knobs.toml. The older spellings below were read with a deprecation warning for one release. They are now retired: a build that finds one set — exported in the environment, in a cargo [env] table, or as an [image.<id>] env row in system.toml — stops with an error that names the replacement. Nothing is read under the old name any more, so rename it where you set it.

RetiredUse instead
ZPICO_BATCH_MULTICAST_SIZENROS_ZENOH_BATCH_MULTICAST_SIZE
ZPICO_BATCH_UNICAST_SIZENROS_ZENOH_BATCH_UNICAST_SIZE
ZPICO_FRAG_MAX_SIZENROS_ZENOH_FRAG_MAX_SIZE
ZPICO_GET_POLL_INTERVAL_MSNROS_ZENOH_GET_POLL_INTERVAL_MS
ZPICO_GET_REPLY_BUF_SIZENROS_ZENOH_GET_REPLY_BUF_SIZE
ZPICO_GRAPH_CACHE_SIZENROS_ZENOH_GRAPH_CACHE_SIZE
ZPICO_GRAPH_DISCOVERYNROS_ZENOH_GRAPH_DISCOVERY
ZPICO_LEASE_TASK_PRIORITYNROS_ZENOH_LEASE_PRIORITY
ZPICO_MAX_LARGE_SUBSCRIBERSNROS_ZENOH_MAX_LARGE_SUBSCRIBERS
ZPICO_MAX_LIVELINESSNROS_ZENOH_MAX_LIVELINESS
ZPICO_MAX_PENDING_GETSNROS_ZENOH_MAX_PENDING_GETS
ZPICO_MAX_PUBLISHERSNROS_ZENOH_MAX_PUBLISHERS
ZPICO_MAX_QUERYABLESNROS_ZENOH_MAX_QUERYABLES
ZPICO_MAX_SESSIONSNROS_ZENOH_MAX_SESSIONS
ZPICO_MAX_SUBSCRIBERSNROS_ZENOH_MAX_SUBSCRIBERS
ZPICO_MAX_TL_PUBLISHERSNROS_ZENOH_MAX_TL_PUBLISHERS
ZPICO_PUBLISHER_TX_BUFFER_SIZENROS_ZENOH_PUBLISHER_TX_BUFFER_SIZE
ZPICO_READ_TASK_PRIORITYNROS_ZENOH_READ_PRIORITY
ZPICO_SERVICE_BUFFER_SIZENROS_ZENOH_SERVICE_BUFFER_SIZE
ZPICO_SMOLTCP_BUFFER_SIZENROS_SMOLTCP_BUFFER_SIZE
ZPICO_SMOLTCP_CONNECT_TIMEOUT_MSNROS_SMOLTCP_CONNECT_TIMEOUT_MS
ZPICO_SMOLTCP_MAX_SOCKETSNROS_SMOLTCP_MAX_SOCKETS
ZPICO_SMOLTCP_MAX_UDP_SOCKETSNROS_SMOLTCP_MAX_UDP_SOCKETS
ZPICO_SMOLTCP_SOCKET_TIMEOUT_MSNROS_SMOLTCP_SOCKET_TIMEOUT_MS
ZPICO_SUBSCRIBER_LARGE_SIZENROS_ZENOH_SUBSCRIBER_LARGE_SIZE
ZPICO_SUBSCRIBER_RING_DEPTHNROS_ZENOH_SUBSCRIBER_RING_DEPTH
ZPICO_SUBSCRIBER_SIZE_THRESHOLDNROS_ZENOH_SUBSCRIBER_SIZE_THRESHOLD
ZPICO_TL_RETAIN_BYTESNROS_ZENOH_TL_RETAIN_BYTES
ZPICO_TL_RETAIN_DEPTHNROS_ZENOH_TL_RETAIN_DEPTH
ZPICO_TX_BATCHNROS_ZENOH_TX_BATCH
ZPICO_TX_BATCH_FLUSH_MSNROS_ZENOH_TX_BATCH_FLUSH_MS
ZPICO_TX_SPLIT_LOCKNROS_ZENOH_TX_SPLIT_LOCK

The same ZPICO_* words remain the zenoh-pico shim’s own C macro names (a -DZPICO_MAX_QUERYABLES=… the build passes to the C compiler). Those are generated from the knob, never set by hand, and are not on this list.

A board descriptor’s knobs are a top-level [knobs.<group>] table. The per-board [board.knobs.<group>] spelling is retired the same way: a descriptor that still states it fails to load, naming [knobs].

Retired runtime aliases and macro forms

Deprecated in release 0.5.0-nros2, retired after it. Each is now an ERROR naming its replacement — never silently ignored, because an ignored locator dials the default router and reads as “no delivery”.

RetiredUse insteadWhat happens now
ZENOH_LOCATOR (env)NROS_LOCATORstartup error (Rust panic / InitError::RetiredEnvVar; C/C++ init returns invalid-argument and logs it)
ZENOH_MODE (env)NROS_SESSION_MODEsame
nros::main!(board = X)nros::main!() + [image.<id>] board in system.toml; an out-of-tree board crate states [package.metadata.nros.board] type = "::my_board::MyBoard"compile_error!
--features rmw-xrce on the PX4 companionsnothing — the xrce backend is unconditionalthe feature no longer exists (cargo: unknown feature)

A build directory from an older release

An older nano-ros wrote some of these names into the cache itself, so a build directory it first configured carries them even though nothing sets them now. The error lists those entries and prints the command that drops exactly them:

cmake -U NANO_ROS_PLATFORM -U NANO_ROS_RMW <build-dir>

Deleting the build directory’s CMakeCache.txt works too.

What is not on this list

nano_ros_DIR and nano_ros_ROOT are CMake’s own find_package(nano_ros) hints and keep their spelling.

NANO_ROS_ROOT as an environment variable is retired by its own rule: a configure that finds it set stops, naming NROS_REPO_DIR.

The error table stays: a retired name is refused for good, naming what to type. Dropping the rows would turn -DNANO_ROS_PLATFORM=zephyr (or a stale cache entry an older nano-ros wrote) into an unknown variable, and the configure would build the default platform without a word.