3.6.0 RC1 #7158
sfmskywalker
started this conversation in
Design & tech
3.6.0 RC1
#7158
Replies: 1 comment 6 replies
-
|
After updating, I am facing issue that none of built-in or my custom activities are being registered. I have checked using below code: var _activityRegistry = _serviceProvider.GetRequiredService(); The result is always 0 |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This release focuses on Flowchart execution improvements, stronger runtime correctness, major test coverage expansion, reliability fixes for scheduling/triggers and HTTP content handling, and a platform upgrade to .NET 10 while retaining support for .NET 8 and .NET 9.
Highlights
MergeMode. (PRs: Introduce token-centric Flowchart execution model with configurable MergeMode #6632, Refactor flowchart token handling and enhance merge mode behavior #6937, Refactors and clarifies Flowchart merge modes #6993, Configures Flowchart Execution via DI #7141)System.Linq.Asyncdependencies for compatibility with earlier frameworks, and update project files for consistency across the solution. #7062)ActivityCompletednotification. (PRs: Add ActivityCompleted notification for workflow activity completion #6675, Introduce activity execution record capturing and serialization improvements #6800, Refactor activity execution record serialization with snapshots #6807)Flowchart: token-based execution + per-activity
MergeMode(opt-in)Elsa 3.6.0 introduces an optional token-based execution algorithm for the Flowchart activity. Instead of relying on the previous counter-based scheduling model, the Flowchart can now track progress using tokens that represent a taken connection (from a source activity outcome to a target activity).
When an activity completes, the flowchart:
MergeMode.New:
MergeMode(configurable per activity)With token-based execution enabled, Flowchart supports a new
MergeModeconcept that determines how a node behaves when it has multiple inbound connections. You can now specify a merge mode per activity, allowing different “join” semantics within the same flowchart.In broad terms, merge modes enable behaviors like:
Merge): waits for tokens from all forward inbound connections (loop/back edges don’t block).Converge): waits for tokens from all inbound connections, including loop/back edges.Cascade/Race): schedules on the first arriving inbound token; inRacemode, other inbound ancestors are canceled so only the “winning” path continues.This improves predictability for joins, forks, and cyclic graphs, while giving you fine-grained control over how each activity merges incoming paths.
How to opt in (Program.cs)
Token-based Flowchart execution is opt-in. Enable it via the Flowchart feature configuration:
Breaking / Upgrading Notes
These are the changes most likely to affect upgrades from 3.5.x.
1) Multi-targeting: .NET 8, .NET 9, and .NET 10
Elsa 3.6.0 multi-targets .NET 8, .NET 9, and .NET 10.
System.Linq.Asyncdependencies for compatibility with earlier frameworks, and update project files for consistency across the solution. #7062)2) Package / project renames
Some projects / packages have been renamed. Make sure to update your package references accordingly.
In most cases, this also impacted the root namespace of these packages, so update
usingstatements and fully-qualified type names as needed.Migration tips
.csproj,Directory.Packages.props,Directory.Build.props).Elsa.EntityFrameworkCore→Elsa.Persistence.EFCore).Optional commands (adjust paths as needed):
Elsa.EntityFrameworkCore.*Elsa.Persistence.EFCore.*Elsa.DapperElsa.Persistence.DapperElsa.MongoDbElsa.Persistence.MongoDbElsa.ElasticsearchElsa.Persistence.ElasticsearchElsa.WebhooksElsa.Http.WebhooksElsa.CSharpElsa.Expressions.CSharpElsa.DslElsa.Dsl.ElsaScriptElsa.JavaScriptElsa.Expressions.JavaScriptElsa.JavaScript.LibrariesElsa.Expressions.JavaScript.LibrariesElsa.LiquidElsa.Expressions.LiquidElsa.PythonElsa.Expressions.PythonElsa.KafkaElsa.ServiceBus.KafkaElsa.MassTransit.*Elsa.ServiceBus.MassTransit.*Elsa.FileStorageElsa.Storage.FileStorageElsa.HangfireElsa.Scheduling.HangfireElsa.Quartz.*Elsa.Scheduling.Quartz.*3) Modules moved out of Core
Elsa.Dapper→Elsa.Persistence.DapperElsa.MongoDb→Elsa.Persistence.MongoDbElsa.Elasticsearch→Elsa.Persistence.ElasticsearchElsa.Webhooks→Elsa.Http.WebhooksElsa.Kafka→Elsa.ServiceBus.KafkaElsa.MassTransit.*→Elsa.ServiceBus.MassTransit.*Elsa.FileStorage→Elsa.Storage.FileStorageElsa.Hangfire→Elsa.Scheduling.HangfireElsa.Quartz.*→Elsa.Scheduling.Quartz.*4) Persistence & database migrations
5) Flowchart execution semantics
MergeMode. (PRs: Introduce token-centric Flowchart execution model with configurable MergeMode #6632, Refactor flowchart token handling and enhance merge mode behavior #6937, Refactors and clarifies Flowchart merge modes #6993, Configures Flowchart Execution via DI #7141)Recommended verification checklist
After upgrading, we recommend validating the following areas:
Switchactivity behavior and add testing utilities forRunWorkflowResultand improve #7151)DownloadHttpFileactivity #7094, Http endpoint unit, integration and component tests #7125)What’s Changed
Flowchart & core execution
Switchactivity behavior and improve testing utilities. (PR: FixSwitchactivity behavior and add testing utilities forRunWorkflowResultand improve #7151)Pendingstate toActivityStatusenum. (PR: Add missingPendingstate toActivityStatusenum #6856)Workflow composition, scripting & developer hooks
ActivityCompletednotification for workflow activity completion. (PR: Add ActivityCompleted notification for workflow activity completion #6675)ExpandoObject(JSON variables). (PR: Allow C# Script to use dot notation with ExpandoObject (JSON variables) #6689)MassTransitFeature. (PR: Add bus configurator hook to MassTransitFeature #6658)HTTP, endpoints & content handling
RawStringContent. (PR: Fix Content-Length mismatch by reworking RawStringContent #7027)RawStringContentencoding inJsonContentFactory. (PR: Update RawStringContent encoding in JsonContentFactory #6786)DownloadHttpFile. (PR: Add unit and integration tests forDownloadHttpFileactivity #7094)Triggers, scheduling & concurrency
Persistence, database & migrations
Serialization, conversion & correctness
FuncExpressionValueConverterfor JSON serialization. (PR: Add FuncExpressionValueConverter for JSON serialization #6607)IEnumerableTypeConverter. (PR: Added IEnumerableTypeConverter #7020)IAsyncEnumerablecheck toGetItemSource. (PR: Add IAsyncEnumerable check to ItemSourceActivityExecutionContextExtensions.GetItemSource #6897)VariableTestValuesmore robustly (ExpandoObject + type conversion). (PR: ParseVariableTestValuesmore robustly, leveragingExpandoObjectand type conversion logic. #6883)FullNameinWorkflowDictionary. (PR: Use FullName in WorkflowDictionary #6923)ILoggerFactorysupport to converters. (PR: Adds ILoggerFactory support to converters #7153)DefaultValueforOuterBoundInclusiveinForactivity. (PR: Fix missing DefaultValue for OuterBoundInclusive property in For activity #6680)Platform / dependencies / repo organization
System.Linq.Asyncdependencies for compatibility with earlier frameworks, and update project files for consistency across the solution. #7062)SasTokensFeatureto support sharing protected keys via shared drive, Redis cache, and other mechanisms. (PR: Enhanced SasTokensFeature to support sharing protected keys via shared drive, Redis cache, and other mechanisms #6665)ConcurrentDictionaryusage. (PR: Enhance thread safety with ConcurrentDictionary usage #6760)JetBrains.Annotationsto fix package builds. (PR: Downgrading JetBrains.Annotations for fixing the packages build #6848)Runtime stability / cleanup
FileSystemWatchercleanup. (PR: Fix FileSystemWatcher cleanup #6657)EventBasechild activity not executingOnEventReceived. (PR: Fix EventBase child activity not executing OnEventReceived method #6687)ParentWorkflowInstanceIdnot being set. (PR: Fixed ParentWorkflowInstanceId not being set #7029)UI / Studio / Designer
RadioList(API models + UI components + related refactors). (PRs: Create Api Client Models for RadioList UIHint. #6711, Add RadioList support and related UI components #6712, Refactor checklists and radio lists to use records #6713, Revert ChecklistItem back from Record to Class #6714)ActivityRegistryto populate all activities in workflow edit. (PR: Refactor ActivityRegistry to populate all activities in workflow edit #6605)Testing (major coverage expansion)
WorkflowTestFixture. (PR: Add integration tests forRunJavaScriptactivity and introduceWorkflowTestFixture#7002)WorkflowDefinitionActivityscenarios. (PR: Add integration tests for WorkflowDefinitionActivity scenarios #6999)FlowForkactivity and enhance test utilities #6995–Add unit tests forFlowSendHttpRequestactivity and refactor helper utilities #6997, Unit tests for For activity #7001, Unit testing coverage for While activity #7004, Unit test coverage Write Http Response #7005, Add unit tests forStartAtactivity, enhanceActivityTestFixture, and update dependencies #7007, Add unit and integration tests forSetOutputactivity #7008, Feat/unit test coverage writefilehttpresponse #7016, Unit test coverage Flow Join activity #7031, Adds unit tests for EventBase activity #7090, Adds Publish Event Activity Tests #7093, Add unit and integration tests forContaineractivity, covering behavior such as variable scoping, child activity execution, and mixed variable types. #7102, MoveSequenceactivity tests to a dedicated namespace and add new unit and integration tests for enhanced coverage. #7103, Add unit and integration tests forCompleteactivity to validate composite workflows execution #7108–Add unit and integration tests forFlowDecisionactivity to validate branching and nested workflow logic #7117, Add unit tests forCorrelateactivity and enhanceActivityTestFixtureexecution functionality #7119–Add unit and integration tests forParallelForEachactivity covering behavior with different item types, fault handling, and scenario-specific conditions #7120, Add unit tests forReadLineactivity (#7110) #7112)Misc / docs / polish
CommonTypesDefinitionProvider.cs. (PR: Update CommonTypesDefinitionProvider.cs #6615)New Contributors
Thanks to our new contributors:
Full Changelog
This discussion was created from the release 3.6.0 RC1.
Beta Was this translation helpful? Give feedback.
All reactions