Cppgraphqlgen Versions Save

C++ GraphQL schema service generator

v4.5.6

1 month ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.5...v4.5.6

v4.5.5

6 months ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.4...v4.5.5

v4.5.4

11 months ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.3...v4.5.4

v4.5.3

1 year ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.2...v4.5.3

v4.5.2

1 year ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.1...v4.5.2

v4.5.1

1 year ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.5.0...v4.5.1

v4.5.0

2 years ago

The most notable change was part of the fix for #254 in #256. In the course of debugging it, I realized that response::IdType was being overly aggressive about trying to interpret any string that was a valid Base64 encoding as a Base64 encoded vector of bytes:

I'm bumping the minor version because response::IdType in inputs/arguments is going to be a string all the time internally, and that changes which accessors you can use on field arguments. It's generally more consistent now, but if you are used to using it with Base64 encoded binaries and your code assumes that's what it contains, you may need to perform the conversion explicitly with argId.release<response::IdType::ByteData>() rather than using the const ByteData accessors. You can still use response::IdType::isBase64() to tell if it's safe to release it as a binary (otherwise it will throw an exception for strings which are not valid Base64 encodings), and it's always safe to release it as a string. It's also always safe to use the const c_str() OpaqueString accessor on response::IdType field arguments now because they are guaranteed to hold a string internally.

The response::IdType::ByteData type is just an alias for std::vector<std::uint8_t>, which was the original type for response::IdType before I added std::string support, so you could also write the release call as argId.release<std::vector<std::uint8_t>>() if that looks better to you. The same applies to response::IdType::OpaqueString vs. std::string.

Otherwise, most of the changes since v4.4.1 have to do with fixing warnings and errors that showed up when enabling LTO (link-time-optimization) in GCC 10 and 12. The project, including all samples and tests, should now build cleanly with GCC using the -flto=auto compiler flag.

What's Changed

New Contributors

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.4.1...v4.5.0

v4.4.1

2 years ago

Till the try/catch/rethrow handling is fixed in the PEGTL version of parse_tree, throwing an exception during parsing easily overflows the stack on Windows with MSVC. This change brings a simplified version of the PEGTL parse_tree into cppgraphqlgen without support for the unwind feature (which cppgraphqlgen doesn't use), so it no longer needs to handle the exceptions at each level of the tree. It just lets them be caught directly in the caller after destroying all of the objects on the stack.

The short version is that this should fix #222 using the default depth limit of 25 (or even up to ~100) rather than needing to set it to something less than 10. If/when PEGTL is updated to remove the try/catch/rethrow implementation, cppgraphqlgen can revert to using the original version of parse_tree in PEGTL.

This version also updates the PEGTL sub-module and find_package call in CMake to use 3.2.6, which has some fixes for recent versions of both MSVC and GCC. If you have a CI build which uses cppgraphqlgen and PEGTL (e.g. from vcpkg), you may have noticed that it broke recently when Visual Studio was updated. This should fix that, too.

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.4.0...v4.4.1

v4.4.0

2 years ago

This is a minor version update because the code does need to be regenerated with schemagen/clientgen to maintain compatibility with the GraphQLService.h/GraphQLClient.h shared headers.

There's also a fix for a command line parsing bug in clientgen (#248) and several small documentation fixes to match changes in behavior or improve clarity.

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.3.1...v4.4.0

v4.3.1

2 years ago

What's Changed

Full Changelog: https://github.com/microsoft/cppgraphqlgen/compare/v4.3.0...v4.3.1