releases/v0.1.0
·
141 commits
to main
since this release
Version 0.1.0 Release
This release is a stability milestone for the C++ SDK, marking the first 0.x.y release following 0.0.x releases. At this point the SDK is in a stable beta state and breaking changes will be less frequent. If you have not updated your C++ SDK dependency in several months, a lot has changed. Here are some of the larger items that will affect developer experience and general quality of life improvements.
Viam API and all google libraries are now private dependencies
- These libraries are no longer propagated as part of the public build interface of our CMake
- Allows for future API/ABI stability against changes to the API and in grpc/proto/abseil
- The SDK will respect your choice of C++ standard if you're targeting C++14; abseil's versioning hygeine previously broke this
- If you are working with the Viam API or google libraries directly, you will now need to declare them as public deps of your library
- Relatedly...
New API for conversion from SDK to API types
- See
src/viam/sdk/common/proto_convert.hppfor guides and documentation - Previous scattered collection of free/member/static member functions for
to_protoandfrom_protoare now replaced by singleto_protoandfrom_protofunctions which are enabled for any class that specializesstruct to_protoandstruct from_proto. - Note that the detail structs refer to API types by pointer to forward declared type, enabling ABI insulation
- If you need direct "back door" access to API types, you can include the relevant Viam API header and then
to_protoandfrom_protowill "just work"
Replaced AttributeMap and ProtoType with ProtoStruct and ProtoValue
ProtoValueis the new sum-type which is our version ofgoogle::protobuf::Value- No longer need to wrap everything in a
make_sharedor access byshared_ptr - Value semantics for constructing and working with
ProtoValueobjects rather than pointer semantics ProtoStructmodelsgoogle::protobuf::Struct, andProtoListis a vector ofProtoValue- See generated documentation or
src/viam/sdk/common/proto_value.hpp
Conan support
- See documentation in BUILDING.md
- Can now obtain SDK deps with Conan, and build the SDK itself as a Conan package
- Supports shared and static builds; tested in CI
What's Changed (auto-generated release notes)
- Rust utils bump to v0.2.17
- RSDK-9719: Simple module sensor by @lia-viam in #359
- remove old reference to printer module by @lia-viam in #360
- bump version: v0.1.0 by @njooma in #361
- remove instability notice by @abe-winter in #331
Full Changelog: releases/v0.0.21...releases/v0.1.0