From dc558efec24c92a307fef40a4d3f6b245ae002c4 Mon Sep 17 00:00:00 2001 From: Robert Lubos Date: Thu, 16 Jul 2026 12:25:22 +0200 Subject: [PATCH 1/3] scripts: quarantine_zephyr: Quarantine failing Zephyr tests Skip Zephyr tests that fail in NCS CI after the upmerge until the underlying issues are resolved. Signed-off-by: Robert Lubos --- scripts/quarantine_zephyr.yaml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/scripts/quarantine_zephyr.yaml b/scripts/quarantine_zephyr.yaml index d2f9a4b0a17a..02f15d531e0c 100644 --- a/scripts/quarantine_zephyr.yaml +++ b/scripts/quarantine_zephyr.yaml @@ -205,6 +205,12 @@ - nrf5340dk/nrf5340/cpunet comment: "https://nordicsemi.atlassian.net/browse/NCSDK-37803" +- scenarios: + - bluetooth.hci + platforms: + - native_sim/native + comment: "util_hci_evt.h missing after [nrf noup] revert of ext adv report discard handling" + - scenarios: - secure_storage.psa.its.secure_storage.custom.store platforms: @@ -313,6 +319,7 @@ - kernel.context - kernel.context.minimallibc - kernel.lifo.usage + - kernel.poll - kernel.poll.minimallibc - kernel.scheduler - kernel.scheduler.multiq @@ -355,6 +362,7 @@ - libraries.libc.common.picolibc.notls - libraries.net_buf.buf - libraries.ring_buffer + - logging.backend.uart.multi - logging.immediate.* - logging.thread - message_bus.zbus.general_unittests @@ -400,6 +408,7 @@ - scenarios: - .*secure_storage.* + - benchmark.crypto.psa - cpp.libcxx.glibcxx.picolibc - drivers.can.shell - kernel.common @@ -457,9 +466,11 @@ comment: "not compatible with NCS (Frank Audun Kvamtro)" - scenarios: - - drivers.wifi.build.spi + - drivers.net.wifi.build.spi platforms: + - native_sim - native_sim/native + - native_sim/native/64 comment: "requires pulling in hal_atmel but is actually not very useful" - scenarios: @@ -627,3 +638,9 @@ - nrf5340dk/nrf5340/cpuapp/ns - nrf9160dk@0.14.0/nrf9160/ns comment: "FLASH overflowed" + +- scenarios: + - sample.shell.devmem_load.uart.interrupt + platforms: + - nrf54h20dk@0.9.0/nrf54h20/cpuppr + comment: "sample is native_sim only" From 3b11983d4949593ee1155245d8dc99caa2747285 Mon Sep 17 00:00:00 2001 From: Robert Lubos Date: Thu, 16 Jul 2026 13:19:37 +0200 Subject: [PATCH 2/3] tools: Update python packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update python packages. Add PYSEC-2026-3447 to pip whitelist. Setuptools cannot be updated atm due to conflict with spsdk package Signed-off-by: Robert Lubos Signed-off-by: Jan Gałda --- scripts/ncs-docker-version.txt | 2 +- scripts/pip-audit-whitelist.yml | 1 + scripts/requirements-fixed.txt | 10 +++++++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/ncs-docker-version.txt b/scripts/ncs-docker-version.txt index 4ef0a93b8542..0ac0b8832ae0 100644 --- a/scripts/ncs-docker-version.txt +++ b/scripts/ncs-docker-version.txt @@ -1 +1 @@ -5ea73affbf +a140d687bb diff --git a/scripts/pip-audit-whitelist.yml b/scripts/pip-audit-whitelist.yml index 6a9d7965d535..8d0640131c1e 100644 --- a/scripts/pip-audit-whitelist.yml +++ b/scripts/pip-audit-whitelist.yml @@ -7,3 +7,4 @@ py: - PYSEC-2024-311 - PYSEC-2026-151 - GHSA-537c-gmf6-5ccf + - PYSEC-2026-3447 diff --git a/scripts/requirements-fixed.txt b/scripts/requirements-fixed.txt index d1178cebb637..7061a78a90f3 100644 --- a/scripts/requirements-fixed.txt +++ b/scripts/requirements-fixed.txt @@ -61,6 +61,7 @@ grpcio-tools==1.81.1 ; python_version >= "3.12" and python_version < "4.0" grpcio==1.81.1 ; python_version >= "3.12" and python_version < "4.0" hexdump==3.3 ; python_version >= "3.12" and python_version < "4.0" hidapi==0.14.0.post4 ; python_version >= "3.12" and python_version < "4.0" +html5rdf==1.2.1 ; python_version >= "3.12" and python_version < "4" humanfriendly==10.0 ; python_version >= "3.12" and python_version < "4.0" idna==3.18 ; python_version >= "3.12" and python_version < "4.0" imagesize==1.5.0 ; python_version >= "3.12" and python_version < "4.0" @@ -100,6 +101,7 @@ nrfcredstore==2.0.9 ; python_version >= "3.12" and python_version < "4.0" numpy==2.5.0 ; python_version >= "3.12" and python_version < "4.0" opencv-python==5.0.0.93 ; python_version >= "3.12" and python_version < "4.0" oscrypto==1.3.0 ; python_version >= "3.12" and python_version < "4.0" +owlrl==7.1.4 ; python_version >= "3.12" and python_version < "4.0" packaging==26.2 ; python_version >= "3.12" and python_version < "4.0" pathspec==1.1.1 ; python_version >= "3.12" and python_version < "4.0" patool==4.0.5 ; python_version >= "3.12" and python_version < "4.0" @@ -115,7 +117,7 @@ protobuf==6.33.6 ; python_version >= "3.12" and python_version < "4.0" psutil==7.2.2 ; python_version >= "3.12" and python_version < "4.0" py-utlx==2.0.5 ; python_version >= "3.12" and python_version < "4.0" py==1.11.0 ; python_version >= "3.12" and python_version < "4.0" -pyasn1==0.6.3 ; python_version >= "3.12" and python_version < "4.0" +pyasn1==0.6.4 ; python_version >= "3.12" and python_version < "4.0" pycparser==3.0 ; python_version >= "3.12" and python_version < "4.0" and implementation_name != "PyPy" pycryptodome==3.21.0 ; python_version >= "3.12" and python_version < "4.0" pyelftools==0.33 ; python_version >= "3.12" and python_version < "4.0" @@ -134,6 +136,7 @@ pyparsing==3.3.2 ; python_version >= "3.12" and python_version < "4.0" pyproject-hooks==1.2.0 ; python_version >= "3.12" and python_version < "4.0" pyreadline3==3.5.6 ; sys_platform == "win32" and python_version >= "3.12" and python_version < "4.0" pyserial==3.5 ; python_version >= "3.12" and python_version < "4.0" +pyshacl==0.31.0 ; python_version >= "3.12" and python_version < "4" pytest==9.1.1 ; python_version >= "3.12" and python_version < "4.0" python-can==4.6.1 ; python_version >= "3.12" and python_version < "4.0" python-dateutil==2.9.0.post0 ; python_version >= "3.12" and python_version < "4.0" @@ -148,6 +151,7 @@ pyusb==1.3.1 ; python_version >= "3.12" and python_version < "4.0" pyyaml==6.0.3 ; python_version >= "3.12" and python_version < "4.0" qrcode==8.2 ; python_version >= "3.12" and python_version < "4.0" rdflib==7.6.0 ; python_version >= "3.12" and python_version < "4.0" +rdflib[html]==7.6.0 ; python_version >= "3.12" and python_version < "4" readchar==4.2.2 ; python_version >= "3.12" and python_version < "4.0" referencing==0.37.0 ; python_version >= "3.12" and python_version < "4.0" regex==2026.6.28 ; python_version >= "3.12" and python_version < "4.0" @@ -167,7 +171,9 @@ six==1.17.0 ; python_version >= "3.12" and python_version < "4.0" sly==0.5 ; python_version >= "3.12" and python_version < "4.0" smmap==5.0.3 ; python_version >= "3.12" and python_version < "4.0" sortedcontainers==2.4.0 ; python_version >= "3.12" and python_version < "4.0" +spdx-python-model==0.0.5 ; python_version >= "3.12" and python_version < "4.0" spdx-tools==0.8.5 ; python_version >= "3.12" and python_version < "4.0" +spdx3-validate==0.0.4 ; python_version >= "3.12" and python_version < "4.0" sphinx-lint==1.0.2 ; python_version >= "3.12" and python_version < "4.0" spsdk-mcu-link==0.6.9 ; python_version >= "3.12" and python_version < "4.0" spsdk-pyocd==0.3.4 ; python_version >= "3.12" and python_version < "4.0" @@ -181,6 +187,8 @@ toml==0.10.2 ; python_version >= "3.12" and python_version < "4.0" tomli-w==1.2.0 ; python_version >= "3.12" and python_version < "4.0" tomlkit==0.15.0 ; python_version >= "3.12" and python_version < "4.0" tqdm==4.68.3 ; python_version >= "3.12" and python_version < "4.0" +tree-sitter-cmake==0.7.2.post1 ; python_version >= "3.12" and python_version < "4.0" +tree-sitter==0.26.0 ; python_version >= "3.12" and python_version < "4.0" typing-extensions==4.16.0 ; python_version >= "3.12" and python_version < "4.0" tzdata==2026.2 ; python_version >= "3.12" and python_version < "4.0" unidiff==0.7.5 ; python_version >= "3.12" and python_version < "4.0" From 3e0a4c198385e2ba03149e066a0f87e080cc9ba1 Mon Sep 17 00:00:00 2001 From: Kamil Piszczek Date: Mon, 20 Jul 2026 13:27:47 +0200 Subject: [PATCH 3/3] drivers: sensor: migrate simulated sensors to DEVICE_API Upstream Zephyr moved device API structs into per-class iterable linker sections and made the sensor accessors resolve the API through DEVICE_API_GET(sensor, dev). With CONFIG_DEVICE_API_ASSERT enabled (default when CONFIG_ASSERT=y) this asserts that dev->api points inside the _sensor_driver_api section, otherwise it fails at runtime with "device API is not sensor". The Nordic sensor_sim and sensor_stub drivers still declared their API as a plain "static const struct sensor_driver_api", so the struct was not placed in that section and the assert fired the first time the CAF sensor manager called sensor_sample_fetch(). This broke the caf_sensor_manager.core test (sensor_sim) and the caf_sensor_manager sample (sensor_stub) on qemu_cortex_m3 after the upmerge. Declared both driver APIs with DEVICE_API(sensor, ...), matching the idiom used by all upstream sensor drivers, so the API lands in the _sensor_driver_api iterable section and passes the runtime check. Ref: NCSDK-40421 Signed-off-by: Kamil Piszczek --- drivers/sensor/sensor_sim/sensor_sim.c | 2 +- drivers/sensor/sensor_stub/sensor_stub.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/sensor/sensor_sim/sensor_sim.c b/drivers/sensor/sensor_sim/sensor_sim.c index 0e83f2097e07..2595b33adca0 100644 --- a/drivers/sensor/sensor_sim/sensor_sim.c +++ b/drivers/sensor/sensor_sim/sensor_sim.c @@ -519,7 +519,7 @@ static int sensor_sim_channel_get(const struct device *dev, return 0; } -static const struct sensor_driver_api sensor_sim_api_funcs = { +static DEVICE_API(sensor, sensor_sim_api_funcs) = { .sample_fetch = sensor_sim_sample_fetch, .channel_get = sensor_sim_channel_get, #if defined(CONFIG_SENSOR_SIM_TRIGGER) diff --git a/drivers/sensor/sensor_stub/sensor_stub.c b/drivers/sensor/sensor_stub/sensor_stub.c index 369c66d699e7..b2416ff7399d 100644 --- a/drivers/sensor/sensor_stub/sensor_stub.c +++ b/drivers/sensor/sensor_stub/sensor_stub.c @@ -62,7 +62,7 @@ static int sensor_stub_init(const struct device *dev) extern int _CONCAT(DT_STRING_TOKEN(DT_DRV_INST(_idx), generator), _init)( \ const struct device *dev); \ \ - static const struct sensor_driver_api sensor_stub_api_funcs_##_idx = { \ + static DEVICE_API(sensor, sensor_stub_api_funcs_##_idx) = { \ .sample_fetch = _CONCAT(DT_STRING_TOKEN(DT_DRV_INST(_idx), generator), _fetch), \ .channel_get = _CONCAT(DT_STRING_TOKEN(DT_DRV_INST(_idx), generator), _get) \ }; \