Skip to content

Releases: microsoft/cppgraphqlgen

v5.0.0 Release Candidate 1

19 Sep 22:53
173fb57
Compare
Choose a tag to compare
Pre-release

The new features are listed together in #311. The biggest pending change is to make a pass through the documentation to update it. There's also still time to respond to feedback between now and the official release.

What's Changed

  • Groundwork in CMake, build workflows, and header include cleanup by @wravery in #312
  • Add support for C++20 modules by @wravery in #313
  • Additional cleanup from enabling C++20 modules by @wravery in #314
  • minor std::format fixes by @wravery in #315
  • feat(json): default taocpp-json impl for graphqljson by @wravery in #316
  • feat(coro): update proxy client sample and improve async resolver throughput by @wravery in #317
  • feat(sharedtypes): add clientgen --shared-types param to reuse types in schema by @wravery in #318

Full Changelog: v4.5.8...v5.0.0-rc1

Grammar fixes for unhandled GraphQL standard syntax

10 Sep 19:10
681b0e1
Compare
Choose a tag to compare

What's Changed

Full Changelog: v4.5.7...v4.5.8

Couple of bug fixes

18 Jul 05:32
a45352b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v4.5.6...v4.5.7

v4.5.6

24 Apr 00:09
f1d2a1f
Compare
Choose a tag to compare

What's Changed

  • Fallback to parsing out-of-bounds 32-bit integers in JSON as doubles by @wravery in #296

Full Changelog: v4.5.5...v4.5.6

Only install RapidJSON in vcpkg manifest mode if GRAPHQL_USE_RAPIDJSON is enabled

17 Nov 20:13
2dd4cc1
Compare
Choose a tag to compare

What's Changed

  • Make workflows work with vcpkg binary artifact caching by @wravery in #293
  • Make the vcpkg rapidjson dependency conditional on a feature by @wravery in #294

Full Changelog: v4.5.4...v4.5.5

Fix building DLLs with clang on Windows

26 Jun 20:24
1d65922
Compare
Choose a tag to compare

What's Changed

  • Fix DLL export attribute order for clang on Windows by @wravery in #292

Full Changelog: v4.5.3...v4.5.4

Make find_package(cppgraphqlgen CONFIG) depend on PEGTL

15 May 18:34
00a6d4b
Compare
Choose a tag to compare

What's Changed

  • Call find_package(PEGTL) implicitly from find_package(cppgraphqlgen CONFIG) by @wravery in #289

Full Changelog: v4.5.2...v4.5.3

Some bug fixes/cleanup and a new HTTP client/server sample

12 May 05:18
2175116
Compare
Choose a tag to compare

What's Changed

  • Default arguments break for incomplete struct definitions in input types by @wravery in #282
  • Add an HTTP client/server sample with Boost.Beast by @wravery in #283
  • Improve awaitable errors by @wravery in #285
  • Fixing SonarQube static analysis warnings by @wravery in #286
  • Export compile commands and fix some SonarLint warnings by @wravery in #287

Full Changelog: v4.5.1...v4.5.2

Miscellaneous bug fixes

20 Jan 23:48
7f0e166
Compare
Choose a tag to compare

What's Changed

Full Changelog: v4.5.0...v4.5.1

Bug fixes and link-time-optimization support for GCC 12

24 May 20:14
8c1623a
Compare
Choose a tag to compare

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

  • Update PEGTL version number in README by @wravery in #253
  • Fix source lifetime and preserve input strings in response::IdType by @wravery in #256
  • Miscellaneous warnings and errors which showed up in GCC 12 by @wravery in #257
  • Adding Microsoft SECURITY.MD by @microsoft-github-policy-service in #259
  • Cleanup redundant inline specifiers by @wravery in #262

New Contributors

  • @microsoft-github-policy-service made their first contribution in #259

Full Changelog: v4.4.1...v4.5.0