Repository navigation
build(om): upgrade all OM packages consistently to Orleans 10.4 #285
Description
Activity
- addedmaintenance:dependenciesDependency update or dependency health workDependency update or dependency health work
on Oct 4, 2026 - changed the title
[-]build(om): upgrade and validate the Orleans 10.4 package family[/-][+]build(om): validate Orleans 10.4 while preserving stable core compatibility[/+]on Oct 4, 2026 Issue #285 implementation checkpoint: owned branch egil/om-orleans-compatibility, based on origin/main fcca835.
The stable dependency strategy retains 10.3.1 for ALL stable libraries (core, AzureStorage, EventHubs), as clarified by the maintainer. New packed-consumer mode reuses the existing five stable suites with project references removed, independently resolved Orleans hosts, fresh package caches, dependency graph checks and DLL hash verification.
Preliminary 10.3.1 packed-binary run passed: core 831, state consumer 3, streams consumer 3, Azure adapter 42, Event Hubs adapter 32 tests (911 total), no skips, warning-free builds. These are current-main binaries; final evidence must be rerun after fixed #281/#282 snapshots are integrated.
The preliminary 10.4 host cannot yet compile State/JournaledFacetRejectionTests.cs: it names the removed IJournaledState preview API. Core StateManager also detects only that old marker by interface name. #281 integration needs to preserve rejection coverage for old/new preview facets while retaining stable core's dependency floor. This is recorded as a prerequisite, not worked around by skipping tests or raising all dependencies.
No external Event Hubs broker or Azure storage restart was exercised. Final acceptance and compatibility claims remain pending prerequisite snapshots and the full integrated matrix. No #283/#284 adoption, merge or release is authorized in this task.
Issue #281 follow-up after the maintainer's new compatibility decision: PR #287 will require Orleans 10.4 consistently and preserve only the persisted-data replay fixtures from 10.3.1-alpha.1. The old runtime-support assumption is revoked.
Please keep the shared centralized dependency upgrade owned by #285 / PR #286. #281 will remove its package-specific VersionOverride entries and update its docs/PR claims to the single 10.4 minimum. For local verification, I will apply all centralized 10.4 stable pins in the owned worktree without committing that shared dependency file unless an integrated #285 snapshot is available. Final integrated package/runtime proof belongs to #285. The #281 Journaling pin remains 10.4.0-alpha.1.
#285 also identified StateManager's old IJournaledState marker/rejection test as incompatible with the new preview. With the minimum now 10.4, that guard/test must recognize IStateMachine; this is a shared/core #285 change, not a 10.3 compatibility shim. No #283/#284 work is included.
- changed the title
[-]build(om): validate Orleans 10.4 while preserving stable core compatibility[/-][+]build(om): upgrade all OM packages consistently to Orleans 10.4[/+]on Oct 5, 2026 Uniform 10.4 local restore succeeded for #281, but Release compilation exposes two shared-core CS0419 errors in Outboxes/IOutboxGrain.cs at lines 5 and 19: cref IRemindable.ReceiveReminder is ambiguous because 10.4 adds the cancellation overload. Please include explicit cref overload signatures in the #285 shared upgrade. This is documentation disambiguation, not optional #283 cancellation adoption. I will apply the same temporary disambiguation locally to validate #281 while retaining #285 ownership.
- added a commit that references this issue
on Oct 5, 2026 PR #287 is updated at 96f8aa8 for the new uniform Orleans 10.4 decision. All package-specific VersionOverride entries are removed; docs explicitly require consumers to upgrade. Old journals remain only as persisted-data recovery fixtures.
Shared centralized stable pins, IOutboxGrain reminder-cref disambiguation, and the conventional StateManager IStateMachine facet guard/rejection test remain owned by #285/PR #286. #287 now explicitly depends on that work and is not independently merge-ready.
Local integration overlay applying those three shared prerequisites passed all 964 tests (53 Journaling), warning-free Release build, and four-package pack. Package inspection confirms uniform 10.4 stable dependencies, Journaling10.4.0-alpha.1, and private SDK tooling. Shared files were restored afterward. This is overlay evidence; final exact integrated-head and packed-consumer proof remains #285 responsibility. Updated-head Standards and Spec reviews have no findings. Please integrate this new #281 commit rather than the superseded ecf71de snapshot.
- added a commit that references this issue
on Oct 5, 2026 Journaling #281 is now stacked on verified shared ref 7b104be. PR #287 base is egil/om-orleans-compatibility; owned tip is 1c4459c. Since the base already includes the original reviewed Journaling implementation, the owned delta is only three documentation corrections; no source/tests are dropped. You can apply this single docs commit without replaying the old migration.
Actual exact-head verification passes: 970 discovered tests (831 core,53 Journaling,38 EventHubs,42 Azure,3+3 consumers), no skips; warning-free Release build and aligned four-package pack. All resolved Orleans stable libraries are10.4.0/Journaling10.4.0-alpha.1. Both owned-diff review axes have no findings.
This count is970 at this snapshot rather than the reported978 preliminary count; please use actual final discovery counts in integrated evidence. Final packed-consumer proof, broader inherited README compatibility sections (currently still describe10.3/10.4 support), shared scripts, and revised EventHubs snapshot remain owned by#285. No temporary overlay remains; working tree clean. Draft only, no merge/release.
Superseding acceptance record for the revised uniform Orleans 10.4 mandate: draft PR #286 is updated at
63f2664ef304488efe1a16a291cfa28fbcc5ac77. All stable packages require 10.4.0; preview Journaling requires 10.4.0-alpha.1. Required #287/#288 snapshots are integrated. Optional #283/#284 remain deferred.Final head: Release build has zero warnings/errors; 979 source tests and 979 fresh packed-consumer tests pass; all four NuGet packages validate. Consumer receipts verify dependency graphs and actual DLL hashes. Standards and Spec reviews have no remaining implementation findings. Squash merge is required to exclude superseded branch commit guidance from release notes.
Acceptance is limited to the covered in-process cluster, persisted-fixture, and provider-adapter scenarios. Live Event Hubs pulling-agent/prefetch/shutdown recovery, external Azure durable restart, and production journal backend evidence remain outstanding. No merge or release performed.
Goal
Upgrade every OM package consistently to Orleans 10.4.0, including Microsoft.Orleans.Journaling 10.4.0-alpha.1 for the preview integration. Consumers of this OM release must upgrade Orleans to 10.4 as well.
The maintainer explicitly replaced the earlier 10.3.1 compatibility requirement with a single consistent 10.4 baseline. Do not maintain a mixed package dependency strategy or a 10.3.1 runtime test matrix for this release. Persisted-data compatibility remains required.
All four OM libraries already target net10.0; no framework retarget is needed.
Required Compatibility Work
Coordinate these changes and the shared dependency update so the solution, test hosts and shipped packages use the same 10.4 baseline. Separate PR ownership remains, but final validation must use an integrated snapshot.
Upgrade And Verification
Consumer Upgrade Notes
Document actionable host-owned changes without adding OM abstractions for them:
orleans-app-requests-latency, a native histogram in fractional milliseconds; legacy bucket/count/sum instruments and duration labels are replaced (#11251). Update exporter Views/dashboards where used.grain_typerather than the former CLRtypelabel (#11253). OM's own instruments are separate.MaxAddCountis host tuning with unchanged default 100 (#11238).Release Review Disposition
All 293 release change entries were reviewed against upstream PR descriptions/changed paths, with detailed source review for OM integration points. Runtime membership, shutdown, directory and serialization corrections primarily arrive through the package upgrade and existing behavioral verification. New S3 journal storage, named-provider Durable Jobs migration, clustering conformance tooling, Hot Reload and NativeAOT building blocks do not by themselves require a new OM feature or a claim of AOT support.
Do not adopt the drained-subscription checkpoint advancement from #11249: it was reverted in #11330 before release.
Verification Scope
Use the normal NuGet validation and existing behavioral/consumer test suites. The maintainer explicitly removed the additional packed-consumer script, fresh-cache/reference-switching harness, DLL hash receipts and dedicated compatibility CI job as redundant; consumers are not expected to run a verification script.
Acceptance
Reviewed against OM source at
2b5d24614ff08a9028ebc61995308176dbb90841; currentmainatfcca835c3141ac32874c70f687583d2c49ae4847differs only in OM's version file.