Skip to content

Releases: viamrobotics/viam-cpp-sdk

releases/v0.8.0

10 Apr 20:15
f964f9c
Compare
Choose a tag to compare

What's Changed

Full Changelog: releases/v0.7.0...releases/v0.8.0

releases/v0.7.0

07 Apr 18:52
58e035a
Compare
Choose a tag to compare

What's Changed

Full Changelog: releases/v0.6.0...releases/v0.7.0

releases/v0.6.0

31 Mar 19:31
9f6bfab
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: releases/v0.4.0...releases/v0.6.0

releases/v0.4.0

17 Mar 15:36
2c7f9e3
Compare
Choose a tag to compare

Breaking change: Instance class

The SDK now features a single Instance class which manages application-global initialization and state. Every SDK program must define an Instance variable before any other Viam SDK objects are constructed. Typically this will look like

#include <viam/sdk/common/instance.hpp
// ...

int main(int argc, char** argv)
{
    Instance inst;
    // ... 
}

Existing code will throw an exception shortly after program startup if this change is not made.

Compilation errors will also occur if your code was making direct use of static Registry member functions. Calls to Registry::some_func() should be replaced with Registry::get().some_func()

What's Changed

New Contributors

Full Changelog: releases/v0.3.0...releases/v0.4.0

releases/v0.3.0

03 Mar 20:20
5935eb3
Compare
Choose a tag to compare

What's Changed

Full Changelog: releases/v0.2.1...releases/v0.3.0

releases/v0.2.1

24 Feb 23:23
c5f1002
Compare
Choose a tag to compare

What's Changed

  • Automated Protos Update by @github-actions in #369
  • Automated Protos Update by @github-actions in #371
  • RSDK-9904 - add job to notify slack of proto failure by @stuqdog in #370
  • v0.2.1 by @njooma in #373

Full Changelog: releases/v0.2.0...releases/v0.2.1

releases/v0.2.0

03 Feb 17:40
dc8b34c
Compare
Choose a tag to compare

What's Changed

  • RSDK-9848 - fix update-proto workflow by @stuqdog in #362
  • Automated Protos Update by @github-actions in #364
  • Update README.md for sensor module by @lia-viam in #363
  • Automated Protos Update by @github-actions in #365
  • RSDK-9842 - add get_machine_status implementation by @stuqdog in #366
  • Automated Protos Update by @github-actions in #367
  • bump version by @stuqdog in #368

Full Changelog: releases/v0.1.0...releases/v0.2.0

releases/v0.1.0

28 Jan 19:42
d9413c9
Compare
Choose a tag to compare

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.hpp for guides and documentation
  • Previous scattered collection of free/member/static member functions for to_proto and from_proto are now replaced by single to_proto and from_proto functions which are enabled for any class that specializes struct to_proto and struct 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_proto and from_proto will "just work"

Replaced AttributeMap and ProtoType with ProtoStruct and ProtoValue

  • ProtoValue is the new sum-type which is our version of google::protobuf::Value
  • No longer need to wrap everything in a make_shared or access by shared_ptr
  • Value semantics for constructing and working with ProtoValue objects rather than pointer semantics
  • ProtoStruct models google::protobuf::Struct, and ProtoList is a vector of ProtoValue
  • 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)

Full Changelog: releases/v0.0.21...releases/v0.1.0

releases/v0.0.21

21 Jan 16:51
e14af53
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: releases/v0.0.20...releases/v0.0.21

releases/v0.0.20

13 Jan 19:37
951b7e4
Compare
Choose a tag to compare

What's Changed

Full Changelog: releases/v0.0.19...releases/v0.0.20