All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2026-10-06
- Update opensomeip C++ submodule to v0.2.0 and adapt the pybind11 bindings:
- E2E:
E2EConfig.offsetis nowoffset_bits, andDEFAULT_OFFSET_BITSis exposed. - Message:
try_deserializereturns the nativeResult. - SD:
SdClient.get_eventgroup_subscription_state. - Transport: message-rejection callback, UDP
enable_tpandlast_multicast_error,receive_message_with_sender, and TCP connection helpers (connection_count,max_connections,is_peer_connected,disconnect_peer). - RPC:
MethodSemantics,RpcResult.WRONG_INTERFACE_VERSION, interface version and bind endpoint onRpcClient/RpcServer,set_remote_endpoint,get_local_endpoint, andsend_request_no_return. - Events:
EventPublisher.handle_subscriptionaccepts an optional TTL. - TP: sender and receiver statistics,
TpReassemblyKey, and the additional segment-header fields from v0.2.0. (#28)
- E2E:
E2EConfig.offsetwas renamed tooffset_bits.TcpTransport.accept_connectionis no longer bound; use the connection helpers above.- Native RPC no longer sends application traffic to
127.0.0.1:30490when no remote is configured.RpcClientappliesTransport.remote_endpointwhen one is set. TpManager.get_statistics()returns{"sender", "receiver"}when the native extension is loaded. Useget_sender_statistics()andget_receiver_statistics()for one side.
0.1.5 - 2026-05-24
- Update opensomeip C++ submodule to v0.1.0. Adapt pybind11 bindings to
upstream API changes:
- SD:
ServiceInstance.minor_versionwidened to 32-bit,EventGroupSubscriptiongainsmajor_version,offer_serviceacceptseventgroup_ids. - Events: expose
EventPublisher.set_default_client_endpoint,EventSubscriber.set_default_endpointandset_endpoint_resolver. - Transport: expose TCP Magic Cookie config and static helpers. (Closes #21)
- SD:
- Operations that require the native C++ extension (RPC calls, transport send,
event subscriptions) now raise clear errors (
RpcError,TransportError,RuntimeError) instead of silently returning empty/fake responses or dropping messages when the extension is unavailable. (Fixes #17)
- Add "Verify native extension" subsection to the README after Installation.
- Update the Troubleshooting section to describe the new error-raising behavior.
- Add
.hypothesis/anduv.lockto.gitignore.
0.1.4 - 2026-04-18
- Add optional
remote_endpointfield toClientConfig, enabling communication with SOME/IP servers that do not run Service Discovery. The transport layer already supported static remote endpoints — this wires the option through the high-level client configuration.
- Bump
softprops/action-gh-releasefrom 2 to 3. - Bump
actions/github-scriptfrom 8 to 9. - Bump
codecov/codecov-actionfrom 5 to 6. - Update opensomeip C++ submodule to v0.0.5.
0.1.3 - 2026-03-30
- Update opensomeip C++ submodule to v0.0.4.
0.1.2 - 2026-03-15
- Disable C++ extension in unit tests to prevent native transport
start()from blocking on Windows during cibuildwheel test runs. Unit tests now always exercise the pure-Python path via an autouse conftest fixture. - Trigger wheel builds on tag push instead of release event, fixing wheels not being built on new releases.
- Bump
actions/checkoutfrom 4 to 6.
0.1.1 - 2026-03-13
- Emit an
ImportWarningwhen the C++ extension (_opensomeip) fails to load instead of silently degrading to no-op transport stubs. The warning includes the underlying error, a macOS-specific hint about libc++ ABI mismatches with Homebrew LLVM, and a link to the new Troubleshooting section in the README.
- Build and publish pre-compiled wheels for Python 3.14 (added
cp314to the cibuildwheel build matrix). Free-threaded builds (*t-*) are skipped until thread safety is validated. - Add Python 3.14 to the CI test matrix.
- Add a Troubleshooting section to the README covering the macOS C++ extension
load failure (
symbol not found in flat namespace) and the silent no-op transport symptom.