Skip to content

5.0.1

Latest

Choose a tag to compare

@VincentH-Net VincentH-Net released this 06 Oct 12:50

Version 5.0.1 fixes a silent loss of event content with stream providers that serialize events as JSON, and documents how to upgrade subscription handles that a 4.x application stored in grain state. There are no breaking changes. Like 5.0.0, it requires Orleans 10.4.

For how to upgrade from 4.x, see Upgrade from 4.x to 5.0 in the readme.

Fixed

  • Events lost their content when the stream provider serializes events as JSON. When a stream provider uses the Orleans JSON serializer for events instead of the Orleans serializer, for example Azure Queue streams with the JSON data adapter or a custom data adapter, events in tenant streams arrived without their content and without an error: 42 arrived as 0, "hello" as null. 4.0 had the same defect. Stream providers that use the Orleans serializer, such as memory streams, Azure Queue streams and Event Hubs streams with their default adapters, were not affected. The serialized form of events is unchanged.

Changed

  • Assembly version and file version. The assembly version is now the major version of the package, 5.0.0.0, and the file version is the package version, 5.0.1. In every earlier release both were 1.0.0.0, so logs and assembly-qualified type names could not tell which release was loaded. Applications and libraries compiled against 5.0.0 load 5.0.1 without changes, because the runtime accepts a higher assembly version.

Readme

  • Upgrading a handle stored in grain state. A subscription handle that a 4.x application stored in grain state cannot be read by 5.x. If you only change the type of the state member, the grain state fails to load and the grain cannot be activated. Give the state member a new name and a new [Id], and get the handle from GetAllSubscriptionHandles() when the grain is activated. The subscriptions themselves continue to work. The 5.0.0 release notes were updated with the same note.
  • Multitenant storage options. MultitenantStorageOptions is read from the configuration section MultitenantStorage:<provider name>, where the default storage provider is named Default; the readme said MultitenantStorage.
  • Agent support. The readme points to .NET Agentic Engineering, which offers the orleans-multitenant skill: it lets coding agents add and use this library correctly, including the 4.x to 5.x upgrade.

Commits

  • fb4c6bc Release document: generic placeholders, update the agent skill only when a release changes its instructions
  • c06c799 Release flow: upload the package that was built and tested on the branch, no rebuild on main
  • ac8b0e9 Example on 5.0.1; assembly version follows the major version, file version the package version
  • b3cb7cf Release flow: fast-forward merge, so that the uploaded package is the tested build
  • 7e04834 Add release steps, link to agentic engineering support, correct storage options section
  • 9db246f 5.0.1: fix stream events serialized as JSON, add upgrade note for stored handles