Releases: viamrobotics/viam-cpp-sdk
releases/v0.0.15
releases/v0.0.14
What's Changed
- Automated Protos Update by @github-actions in #308
- Automated Protos Update by @github-actions in #311
- RSDK-9077: Docker containers for module development by @lia-viam in #310
- Automated Protos Update by @github-actions in #313
- Bump version to 0.0.14 by @jckras in #314
- Update README.md for module dev Docker by @lia-viam in #315
Full Changelog: releases/v0.0.13...releases/v0.0.14
releases/v0.0.13
What's Changed
- Automated Protos Update by @github-actions in #305
- RSDK-8822: Whole archive linking by @lia-viam in #306
-
- module example code is no longer broken on static builds
-
- no further guarantees are made and this is not extensively tested in CI/releases nor will it be part of release archives going forward
- version bump by @lia-viam in #307
Full Changelog: releases/v0.0.12...releases/v0.0.13
releases/v0.0.12
Breaking change
Details and migration guide
Removes ProtoType
and AttributeMap
, replacing them with ProtoValue
and ProtoStruct
. This affects the parameter used in component doCommand
calls, as well as the extra parameter included in all component methods.
For most use cases, the change will look like this:
90246f0#diff-becf92545c215777e3fe43c17c0f4196f96bb623d3aa8feee82d1357e7c1738fL11
Namely,
- include path is now
#include <viam/sdk/common/proto_value.hpp>
- parameter is now
const ProtoStruct&
The majority of code changes will be able to just do a Replace-In-Files for the two changes above
If your component or module code actually used these types directly, the changes will look something like this:
90246f0#diff-e07f0fbd2e62063a2446d7ab99d80d9a5c50e9a94649f64b9d5caf5c67b3a345
Namely, ProtoValue
is now has value semantics rather than pointer semantics and std::shared_ptr
, and ProtoStruct
is a map of std::string
to ProtoType
. You can construct a ProtoValue
like a normal C++ class as you would, eg, a variant or JSON type:
ProtoValue num_val{5.6};
ProtoValue str_val{"meow"};
// ProtoList is a vector of ProtoValue:
ProtoList my_list{{ProtoValue{true}, ProtoValue{"meow"}, ProtoValue{6.0}}};
// ProtoStruct is a map:
ProtoStruct my_map{
{"cat", "meow"},
{"dog", "woof"},
{"number", 1.234},
{"list", my_list}, //copies my_list
};
ProtoValue
and related types now have value semantics rather than smart pointer semantics. This means, eg
map lookup operations will now use a .
rather than ->
, and types will behave like arithmetic types or standard library containers with respect to copying, moving, etc
Please see the proto_value.hpp
header for detailed documentation and API of other methods, including
to_proto
to convert togoogle::protobuf
classes, andProtoValue::from_proto
to construct fromgoogle::protobuf
classesis_a<T>
andget<T>
/get_unchecked<T>
for stored element inpection- ...or generate the doxygen documentation if you like!
To find affected code, you can grep
or ag
or GitHub code search for ProtoType
and AttributeMap
.
Additional changes
- RSDK-8828 Remove integer type from ProtoValue by @lia-viam in #292
- RSDK-8826: Conan builds in CI by @lia-viam in #296
- Fix debian builds in CI by @lia-viam in #297
- Automated Protos Update by @github-actions in #298
- Automated Protos Update by @github-actions in #300
- Use proto value get in example code by @lia-viam in #303
- RSDK-6170 - add debug log support by @stuqdog in #299
- Automated Protos Update by @github-actions in #302
- Version bump by @lia-viam in #304
Full Changelog: releases/v0.0.11...releases/v0.0.12
releases/v0.0.11
What's Changed
- RSDK-6636: Refactored AttributeMap with type-erased ProtoType by @lia-viam in #272
- Automated Protos Update by @github-actions in #277
- Version bump by @lia-viam in #281
- Fix aarch build by @lia-viam in #282
- Automated Protos Update by @github-actions in #280
- RSDK-7861 Conan dependencies by @lia-viam in #283
- RSDK-4735 Add options to disable building tests and examples (merged in the Conan deps PR)
- RSDK-8541: ProtoValue get_unchecked and visit API by @lia-viam in #279
- Update actions/download-artifact and actions/upload-artifact to v4 by @lia-viam in #291
- use boost program_options in example by @abe-winter in #288
- RSDK-8343 - create public version_metadata file by @stuqdog in #290
- Automated Protos Update by @github-actions in #286
- Automated Protos Update by @github-actions in #293
- RSDK-8829: Add frame_rate to cpp sdk by @jckras in #294
- Revert find_package logic by @lia-viam in #295
Full Changelog: releases/v0.0.10...releases/v0.0.11
releases/v0.0.10
What's Changed
- Streamable client helper by @lia-viam in #265
- Automated Protos Update by @github-actions in #263
- Automated Protos Update by @github-actions in #267
- Automated Protos Update by @github-actions in #269
- Automated Protos Update by @github-actions in #270
- RSDK-8306 - set version in metadata by @stuqdog in #271
- Automated Protos Update by @github-actions in #274
- Automated Protos Update by @github-actions in #275
- RSDK-7924: Fix building of example projects by @lia-viam in #273
- RSDK-7440: Build example projects in CI by @lia-viam in #276
- bump version by @stuqdog in #278
Full Changelog: releases/v0.0.9...releases/v0.0.10
releases/v0.0.9
What's Changed
Full Changelog: releases/v0.0.8...releases/v0.0.9
releases/v0.0.8
What's Changed
- RSDK-7644 - update example module client for integration test consistency by @stuqdog in #246
- RSDK-7939: Add arm component by @lia-viam in #249
- RSDK-7980: Gripper component by @lia-viam in #252
- RSDK-7880 - add orientation config getters by @stuqdog in #251
- Automated Protos Update by @github-actions in #253
- RSDK-6025 - match viam-server's max message size by @stuqdog in #254
- RSDK-7988 Gantry component by @lia-viam in #255
- Automated Protos Update by @github-actions in #256
- RSDK-7642 - add simple module client for module integration testing by @stuqdog in #250
- Automated Protos Update by @github-actions in #257
- RSDK-8031 Pose tracker component by @lia-viam in #258
- Automated Protos Update by @github-actions in #259
- bumping release version by @lia-viam in #260
- GitHub actions yaml changes by @lia-viam in #261
- typo fix by @lia-viam in #262
Full Changelog: releases/v0.0.7...releases/v0.0.8
releases/v0.0.7
What's Changed
- RSDK-5378 - allow setting of cpp standard by @stuqdog in #234
- try update googleapis commit by @stuqdog in #239
- [RSDK-7151] Update analog reader responses to include accuracy data by @penguinland in #237
- Automated Protos Update by @github-actions in #236
- [RSDK-7775] Update Camera.Properties Response in C++ SDK to match API by @hexbabe in #242
- Automated Protos Update by @github-actions in #240
- Automated Protos Update by @github-actions in #243
- RSDK-7858 - lock in doxygen version by @stuqdog in #244
- Automated Protos Update by @github-actions in #245
- Bump version by @njooma in #247
- replace deprecated CreateMessage with Create by @lia-viam in #248
New Contributors
Full Changelog: releases/v0.0.6...releases/v0.0.7
releases/v0.0.6
What's Changed
- Automated Protos Update by @github-actions in #230
- Automated Protos Update by @github-actions in #233
- Bumping release version by @cheukt in #235
Full Changelog: releases/v0.0.5...releases/v0.0.6