50 Commits
Author SHA1 Message Date
Julius Pfrommer 927cf371b7 refactor(server): Remove UA_ENABLE_METHODCALLS option and always build for methods 2026-10-21 11:30:41 +02:00
Julius Pfrommer b4cf2d6554 refactor(server): Remove UA_ENABLE_DA option and always provide percent deadband filtering 2026-10-21 11:30:41 +02:00
Julius Pfrommer 42a8a55d45 refactor(core): Remove UA_ENABLE_DISCOVERY build option; Enabled via configuration flags 2026-10-21 11:30:41 +02:00
Julius Pfrommer 513ca790ae test(arch): cover lwIP interface lifetimes and add sanitizer CI 2026-10-12 17:08:39 +02:00
Andreas Ebner c3bb70e66b ci: build and test without multithreading
UA_MULTITHREADING=0 is supported and the default on targets that are neither UNIX nor WIN32,
but no job built it. Mirrors unit_tests_mt with a different value, on ubuntu-24.04 only to
keep the CI cost low.
2026-09-25 12:40:49 +02:00
Andreas Ebner 623cddb2ba ci: test PubSub security and SKS with OpenSSL
The PubSub encryption and SKS jobs take the backend as argument and run
with OpenSSL as well. The release amalgamation build drops the removed
UA_ENABLE_PUBSUB_ENCRYPTION flag.
2026-09-24 16:52:03 +02:00
Julius Pfrommer dd1ee3527c ci(tests): pass sanitizer options explicitly to the privileged runner
Run CTest with the network privileges required by the Ethernet suites rather
than attaching file capabilities to every sanitizer executable. Pass
TSAN_OPTIONS after sudo and preserve the configured Ethernet interface.

Retain race detection and the existing exception for the recursive-lock
ordering heuristic.
2026-09-21 16:23:09 +02:00
Julius Pfrommer 720f603523 ci(tests): run the full unit test suite with ThreadSanitizer
Enable multithreading and the normal unit-test feature set. Build all targets and run unfiltered
CTest sequentially, failing on race reports. Keep the existing lock-order heuristic exception for
recursive locks under the common EventLoop lock.
2026-09-21 16:23:09 +02:00
Andreas Ebner da6a019bd9 build(ci): compile the build options that no other job covers
Options that are off by default, and default-on features switched off.
2026-09-09 00:04:33 +02:00
Julius Pfrommer d3e968d143 feat(nodeset-loader): move loader into core utility 2026-09-05 19:31:54 +02:00
Julius Pfrommer a476806541 Merge remote-tracking branch 'origin/1.5' into merge_15_master
# Conflicts:
#	.github/workflows/build_linux.yml
#	CHANGES.md
#	arch/common/eventloop_mqtt.c
#	examples/encryption/server_encryption_filestore.c
#	plugins/crypto/ua_certificategroup_filestore.c
#	src/pubsub/ua_pubsub_networkmessage_json.c
#	src/server/ua_discovery.h
#	src/server/ua_discovery_mdns.c
#	src/server/ua_discovery_mdns_avahi.c
#	src/server/ua_services_attribute.c
#	src/server/ua_services_discovery.c
#	src/server/ua_services_monitoreditem.c
#	src/server/ua_services_nodemanagement.c
#	src/server/ua_subscription.c
#	src/server/ua_subscription.h
#	src/server/ua_subscription_alarms_conditions.c
#	src/server/ua_subscription_event.c
#	src/ua_types_encoding_json_105.c
#	tests/client/check_activateSessionAsync.c
#	tests/server/check_local_monitored_item.c
#	tests/server/check_services_subscriptions.c
2026-09-03 14:33:21 +02:00
Andreas Ebner 92609f802a feat(ci): split the memcheck unit tests over parallel jobs
Move the Valgrind jobs into a dedicated workflow and shard the unit
test runs round-robin over six runners via CTEST_SHARDS/CTEST_SHARD.
Share the common Linux job setup through a composite action.
2026-09-02 15:32:46 +02:00
Julius Pfrommer c698eaf2eb refactor: add missing o6 Automation copyright headers 2026-08-17 22:17:22 +02:00
Julius Pfrommer f3c2842a89 feat(client): add OPC UA HTTP transports 2026-08-17 15:19:52 +02:00
Julius Pfrommer aaa338347b feat(server): wire OPC UA HTTP transport 2026-08-17 15:19:52 +02:00
Julius Pfrommer cd69204f38 fix(arch): harden libwebsockets adapter compatibility 2026-08-17 15:19:52 +02:00
Julius Pfrommer bdd6ed40d4 Merge remote-tracking branch 'origin/1.5' into merge_15_master_2
# Conflicts:
#	plugins/crypto/mbedtls/certificategroup.c
#	src/pubsub/ua_pubsub_config.c
#	src/server/ua_discovery_mdns.c
#	src/server/ua_server.c
#	src/server/ua_server_internal.h
#	src/server/ua_server_ns0_gds.c
#	src/server/ua_services_nodemanagement.c
#	src/server/ua_subscription_alarms_conditions.c
#	src/ua_types_definition.c
#	tests/server/check_services_nodemanagement.c
2026-08-16 16:46:48 +02:00
Julius Pfrommer e5e56db5ac ci(mbedtls): use supported dependency across jobs 2026-08-12 05:44:46 +02:00
Andreas Ebner ce8f98b3a1 build(ci): Cover PubSub file config in the amalgamation build
No amalgamation build enabled it, so the duplicate static went unnoticed.
2026-08-10 21:39:53 +02:00
Julian Weiß 9bfbd2e0f0 ci(linux): add a GitHub Actions job for the GLib EventLoop
Adds a new "Debug Build & Unit Tests with GLib EventLoop (gcc)" matrix
entry to build_linux.yml, plus the corresponding unit_tests_glib
function in tools/ci/linux/ci.sh. It builds with
-DUA_ENABLE_EVENTLOOP_GLIB=ON -DUA_FORCE_WERROR=ON (mirroring the
other feature-specific jobs such as unit_tests_mt/unit_tests_diag)
and runs the full unit test suite, including
check_eventloop_tcp_glib, so the GLib-backed EventLoop is exercised
on every push and PR.

Claude-Session: https://claude.ai/code/session_01M4bVsYckhSnWQSP1kkHV52
2026-08-03 20:22:20 +02:00
Noel Graf eb347afaa5 feat(tests): Add HTTP ConnectionManager test cases 2026-07-21 20:22:09 +02:00
Julius Pfrommer f2fe9f6ea5 refactor(driver): Rename GDS-Receive to GDS-Receiver 2026-07-18 21:26:33 +02:00
Julius Pfrommer 31e4278ce0 refactor(driver): Move the GDS receive side into a driver 2026-07-18 21:26:33 +02:00
Andreas Ebner d2c5d0aff0 Merge remote-tracking branch 'origin/1.5' into merge_15_master_5
# Conflicts:
#	CMakeLists.txt
#	src/server/ua_session.c
#	src/ua_types_encoding_json.c
#	src/ua_types_encoding_json_105.c
#	tests/CMakeLists.txt
#	tests/pubsub/check_pubsub_publish.c
#	tests/server/check_services_subscriptions.c
#	tests/valgrind_check_error.py
#	tools/ci/linux/ci.sh
2026-07-17 09:19:33 +02:00
Andreas Ebner 0f79f7160a ci(linux): reorder build dir cleanup and enable pubsub file-config
Backport the rm-then-mkdir reorder so hidden files are cleared, and turn on UA_ENABLE_PUBSUB_FILE_CONFIG in the unit tests.
2026-07-14 08:21:52 +02:00
Julius Pfrommer 93d7097a8d refactor(build): Update build options for the new driver structure 2026-07-05 23:46:24 +02:00
Julius Pfrommer 656267b1b4 feat(ci): Add CI run with multicast discovery enabled 2026-07-03 07:17:56 +02:00
Julius Pfrommer c4555a16f0 Merge remote-tracking branch 'origin/1.5' into merge_14_15_7 2026-05-18 16:32:46 +02:00
StalderT dc0430f299 ci: add memcheck coverage for alarms and conditions tests 2026-05-16 04:10:21 +02:00
Niels Beier 4cd3fac3a2 fix(ci): fix clang-21 static analyzer false positives
scan-build-21 reports false positive bugs in the posix eventloop code, causing some CI jobs to fail
2026-05-11 22:59:04 +02:00
Niels Beier c4b56e986b fix(ci): fix clang-21 static analyzer false positives
scan-build-21 reports false positive bugs in the posix eventloop code, causing some CI jobs to fail
2026-05-11 16:19:04 +02:00
Julius Pfrommer 30ae922aa6 Merge remote-tracking branch 'origin/1.5' into merge_15_master_7 2026-04-25 21:05:40 +02:00
StalderT 76503d09b6 fix(build): Include missing client symbols in amalgamation without discovery (#7973)
* cmake: fix missing client symbols in amalgamation when discovery is disabled

When building the amalgamated source with UA_ENABLE_DISCOVERY=OFF, core client APIs (e.g. UA_Client_new, UA_Client_getConfig, subscriptions, write services) are missing from the resulting open62541.c.

This leads to linker errors for applications using the client API.

Ensure that required client sources are included in the amalgamation even when UA_ENABLE_DISCOVERY is disabled.

This appears to have been introduced after recent changes around the discovery/client separation.

* ci: test client symbols in amalgamation smoke test
2026-04-07 11:47:10 +02:00
Jannis VölkerandAndreas Ebner 58b3a44092 fix(build): include clock source in amalgamation without selected architecture
Co-authored-by: Andreas Ebner <andreas.ebner@o6-automation.com>
2026-04-02 16:28:51 +02:00
Moritz Bruder e41e2ca79d feature(client): Add JSON5 client configuration support
Add UA_Client_newFromFile() and UA_ClientConfig_loadFromFile() to create
and configure a client from a JSON5 configuration file.
2026-03-30 21:44:34 +02:00
Moritz Bruder 6441c636ac refactor(server): Refactor JSON5 server configuration support
Refactor the JSON5 configuration parser: replace the jump table dispatch
with direct function calls, improve error handling with early returns.

Move the public API (UA_Server_newFromFile, UA_ServerConfig_loadFromFile)
from the removed server_config_file_based.h into server.h. Add the
server_config_schema.json schema and update the example configuration.
2026-03-30 21:44:34 +02:00
Julius Pfrommer 3072153d3e Merge pull request #7921 from open62541/1.5
Merge 1.5 to master
2026-03-20 19:59:25 +01:00
StalderT 6d45172dec feat(ci): Add MinGW cross-compilation test for amalgamation (#7874) 2026-03-14 10:01:12 +01:00
Julius Pfrommer 1715b26d80 Merge remote-tracking branch 'origin/1.5' into merge_15_master_4 2026-02-27 23:40:07 +01:00
Andreas Ebner 0e7b748260 feat(server): support 60+ companion spec models in nodeset injector 2026-02-27 09:05:53 +01:00
Julius Pfrommer 99cd8ab3a8 Merge remote-tracking branch 'origin/1.5' into merge_15_master_3 2026-02-21 00:05:03 +01:00
Andreas Ebner a289b2b820 fix(nodeset): Update companion spec configurations for ua-nodeset UA-1.05.06 2026-02-20 15:44:24 +01:00
Florian La Roche 2ddbddaa41 refactor(ci): change order on removing/adding build dir
Change order on removing/adding build dir.

Signed-off-by: Florian La Roche <f.laroche@pilz.de>
2026-02-05 12:58:45 +01:00
Julius Pfrommer 3e5a7b09a6 refactor(ci): Small indendation improvement in tools/ci/linux/ci.sh 2026-01-23 14:35:14 +01:00
Julius Pfrommer fca4dfb4dc feat(ci): Log the application name which failed the valgrind tests 2025-09-24 10:40:05 +02:00
Julius Pfrommer 6742550db7 refactor(ci): Remove unused cpplint 2025-09-11 09:56:58 +02:00
Noel Graf 224315813e fix(build): Exclude the pubsub mqtt examples from ci 2025-08-21 17:21:14 +02:00
Noel Graf b8e42359db feat(ci): Add a test case to run the examples and verify the exit codes 2025-08-21 17:21:14 +02:00
Noel Graf 0d9e7c2d59 fix(ci): Correct Valgrind suppression file path 2025-08-14 15:24:57 +02:00
Andreas Ebner ad5773f284 refactor(ci) remove azure windows builds and overhaul ci script file structure 2025-08-05 10:02:55 +02:00