Skip to content

Commit 0cd4e58

Browse files
authored
Workflow 16 release notes (#7155)
* updates release notes for v15 * release notes for 16
1 parent 484a228 commit 0cd4e58

File tree

2 files changed

+84
-71
lines changed

2 files changed

+84
-71
lines changed

16/umbraco-workflow/release-notes.md

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -14,52 +14,12 @@ Check the [Version Specific Upgrade Notes](upgrading/version-specific.md) articl
1414

1515
## Release History
1616

17-
This section contains the release notes for Umbraco Workflow 15 including all changes for this version.
17+
This section contains the release notes for Umbraco Workflow 16 including all changes for this version.
1818

19-
### 15.1.2 (April 2 2025)
20-
* Improves culture variant handling in Advanced Search
21-
* Ensure case-insensitive culture comparison when fetching tasks
22-
23-
### 15.1.1 (March 20 2025)
24-
* Fixes an intermittent issue where fetching approval groups in a mapper resulted in a scoping error
25-
26-
### 15.1.0 (https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F15.1.0) (March 7 2025 )
27-
* Dependency update for Umbraco.Licenses (making this release a minor)
28-
* Fixes pagination in assigned-to task table [#96](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/91)
29-
* Fixes off-by-one bug when calculating approval thresholds with implicit approval [#97](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/97)
30-
* Allow searching for empty fields in advanced search. For example, search for all Product documents with no SKU
31-
32-
### 15.0.4 (March 3, 2025)
33-
* Fixes an issue where Workflow's content lock was always applied on documents where Workflow was not configured.
34-
* Fixes a related issue where the content lock was never applied on invariant documents with no Workflow configuration.
35-
36-
### 15.0.3 (February 14, 2025)
37-
* Fixes SQLite migration bug where async methods were causing a race condition.
38-
39-
### [15.0.2](https://github.com/umbraco/Umbraco.Workflow.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F15.0.2) (January 16 2025 )
40-
* Fixes workflow task summary generation in email body [#91](https://github.com/umbraco/Umbraco.Workflow.Issues/issues/91)
41-
* Fixes localization in email body
42-
* Updates Umbraco.Licenses dependency
43-
* Refactors migration plan naming to align with the broader DXP product suite.
44-
45-
### 15.0.1 (December 16th 2024)
46-
* Fixes column type mismatch in migration
47-
* Correctly implements delay time in History Cleanup hosted service
48-
49-
### 15.0.0 (November 14th, 2024)
50-
* Compatibility with Umbraco 15
51-
* Replaces entity action wrappers with `umbExtensionRegistry.appendCondition()`
52-
* Adds abstraction over `UmbContentWorkspaceContext.readOnlyState` to consistently implement readonly document workspaces.
53-
* Fixes invariant culture handling when unlocking a scheduled document.
54-
55-
### 15.0.0-rc3 (November 8th, 2024)
56-
* Compatibility with Umbraco 15-rc3
57-
58-
### 15.0.0-rc2 (October 23rd, 2024)
59-
* Compatibility with Umbraco 15-rc2
60-
61-
### 15.0.0-rc1 (October 9th, 2024)
62-
* Compatibility with Umbraco 15-rc1
19+
### 16.0.0 (June 12 2025)
20+
* Compatibility with Umbraco 16
21+
* **FEATURE** => Alternate Versions. Refer to [Alternate Versions](alternate-versions/alternate-versions) for more details.
22+
* **FEATURE** => Release Sets. Refer to [Release Sets](release-sets/release-sets.md) for more details.
6323

6424
## Legacy release notes
6525

16/umbraco-workflow/upgrading/version-specific.md

Lines changed: 79 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,91 @@ description: >-
66

77
# Version Specific Upgrade Notes
88

9-
This page covers specific upgrade documentation for when migrating to Umbraco Workflow version 14.
9+
This page covers specific upgrade documentation for when migrating to Umbraco Workflow version 16.
1010

1111
{% hint style="info" %}
1212
If you are upgrading to a new minor or patch version, you can find information about the breaking changes in the [Release Notes](../release-notes.md) article.
1313
{% endhint %}
1414

1515
## Version Specific Upgrade Notes History
1616

17-
Version 14 of Umbraco Workflow has a minimum dependency on Umbraco CMS core of `14.1.0`. It runs on .NET 8.
18-
19-
#### **Breaking changes**
20-
21-
Version 14 contains a number of breaking changes, primarily due to the new backoffice introduced in Umbraco 14. The details are listed here:
22-
23-
#### **Behaviour**
24-
25-
* A new management API has been introduced at `umbraco/workflow/management/api`
26-
27-
#### Dependencies
28-
29-
* Umbraco CMS dependency was updated to `14.1.0`
30-
31-
#### **Code**
32-
33-
Workflow 14 includes a non-trivial number of breaking code changes, primarily related to namespace changes. The majority of these related to removing the `Implement` namespace for services, and moving appropriate models to `Umbraco.Workflow.Core.ViewModels` or `Umbraco.Workflow.Core.Interfaces`.
34-
35-
* The serialization library has been changed from `Newtonsoft.Json` to `System.Text.Json`.
36-
* Approval group identifiers changes from int to Guid.
37-
* Workflow instance author identifier changes from int to Guid.
38-
* Workflow task indentifiers for approving user, assigned user and actioning user change from int to Guid.
39-
* Services return `Attempt<TResult>` or `Attempt<TResult, TStatus>`, in line with similar changes in the CMS.
40-
41-
## Legacy version specific upgrade notes
17+
Version 16 of Umbraco Workflow has a minimum dependency on Umbraco CMS core of `16.0.0`. It runs on .NET 9.
18+
19+
## Breaking changes
20+
21+
Version 16 contains a number of breaking changes. The details are listed here:
22+
23+
### Dependencies
24+
25+
* Umbraco CMS dependency was updated to `16.0.0`
26+
27+
### Code
28+
29+
The list below includes all changes raising validation errors `CP0001`, `CP0002` and `CP0006` between versions 15.1.5 and 16.0.0.
30+
31+
Of note are changes to API controller constructors to accept an `IWorkflowProcessFactory` argument and the removal of `IInstancesService.Create` (`IWorkflowInstanceGenerator.Create` should be used instead). Other changes are not typical extension or integration points, but are listed below for reference.
32+
33+
#### Removed Types
34+
- `Umbraco.Workflow.Core.Models.GlobalUserVariablesModel`
35+
- `Umbraco.Workflow.Core.Models.GlobalVariablesModel`
36+
- `Umbraco.Workflow.Core.Models.OptionType`
37+
- `Umbraco.Workflow.Core.Processes.ICompleteWorkflowInstances`
38+
- `Umbraco.Workflow.Web.Api.Controllers.Settings.GetVersionSettingsController`
39+
40+
#### Removed Members
41+
- `Umbraco.Workflow.Core.ApprovalGroups.Services.IGroupService.GetUserGroupWithUsers``1(System.Guid)`
42+
- `Umbraco.Workflow.Core.ApprovalGroups.ViewModels.ApprovalGroupDetailPermissionConfigModel.get_ApprovalThreshold`
43+
- `Umbraco.Workflow.Core.ApprovalGroups.ViewModels.DocumentTypePermissionConfigModel.get_ApprovalThreshold`
44+
- `Umbraco.Workflow.Core.Email.Models.HtmlEmailModel.#ctor(Umbraco.Cms.Core.Services.ILocalizedTextService,Umbraco.Cms.Core.Services.IUserService,Umbraco.Workflow.Core.Configuration.ColorSettings)`
45+
- `Umbraco.Workflow.Core.Models.Enums.WorkflowType.Both`
46+
- `Umbraco.Workflow.Core.Models.GlobalWorkflowVariablesModel.get_DefaultApprovalThreshold`
47+
- `Umbraco.Workflow.Core.Models.GlobalWorkflowVariablesModel.get_FlowType`
48+
- `Umbraco.Workflow.Core.Models.ScaffoldRequestModel.get_ContentTypeKey`
49+
- `Umbraco.Workflow.Core.Models.ScaffoldRequestModel.set_ContentTypeKey(System.Guid)`
50+
- `Umbraco.Workflow.Core.Persistence.ITasksRepository.GetActiveByNodeId(System.Int32)`
51+
- `Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator.GetProcess(Umbraco.Workflow.Core.Models.Enums.WorkflowType)`
52+
- `Umbraco.Workflow.Core.Services.IInstancesService.Create(Umbraco.Workflow.Core.ViewModels.InitiateWorkflowRequestModel)`
53+
- `Umbraco.Workflow.Core.Services.ITasksService.GetActiveTasksByNodeId(System.Int32,System.String)`
54+
- `Umbraco.Workflow.Core.Services.ScaffoldService.#ctor(Umbraco.Workflow.Core.Services.ITasksService,Umbraco.Workflow.Core.Services.IConfigService,Umbraco.Workflow.Core.ContentReviews.Services.IContentReviewService,Umbraco.Workflow.Core.Persistence.IContentRepository,Umbraco.Workflow.Core.Services.ISettingsService,Umbraco.Cms.Core.Mapping.IUmbracoMapper,Umbraco.Cms.Core.Services.IIdKeyMap,Umbraco.Cms.Core.Services.IContentService)`
55+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_Status`
56+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_Type`
57+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_WorkflowStatus`
58+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.get_WorkflowType`
59+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.set_WorkflowStatus(Umbraco.Workflow.Core.Models.Enums.WorkflowStatus)`
60+
- `Umbraco.Workflow.Core.ViewModels.InstanceDetailViewModel.set_WorkflowType(Umbraco.Workflow.Core.Models.Enums.WorkflowType)`
61+
- `Umbraco.Workflow.Core.ViewModels.LanguageViewModel.get_IsDefault`
62+
- `Umbraco.Workflow.Core.ViewModels.LanguageViewModel.set_IsDefault(System.Boolean)`
63+
- `Umbraco.Workflow.Core.ViewModels.UserItemModel.set_Name(System.String)`
64+
- `Umbraco.Workflow.Core.ViewModels.UserItemModel.set_Unique(System.Guid)`
65+
- `Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.get_StatusName`
66+
- `Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.get_TypeDescription`
67+
- `Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.set_StatusName(System.String)`
68+
- `Umbraco.Workflow.Core.ViewModels.WorkflowInstanceViewModel.set_TypeDescription(System.String)`
69+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskCollectionViewModel.get_ApprovalsText`
70+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskCollectionViewModel.set_ApprovalsText(System.String)`
71+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_Status`
72+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_TypeDescription`
73+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.get_TypeId`
74+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.set_TypeDescription(System.String)`
75+
- `Umbraco.Workflow.Core.ViewModels.WorkflowTaskViewModel.set_TypeId(System.Int32)`
76+
- `Umbraco.Workflow.Web.Api.Controllers.Action.ApproveActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)`
77+
- `Umbraco.Workflow.Web.Api.Controllers.Action.ApproveOrRejectActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)`
78+
- `Umbraco.Workflow.Web.Api.Controllers.Action.CancelActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)`
79+
- `Umbraco.Workflow.Web.Api.Controllers.Action.RejectActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)`
80+
- `Umbraco.Workflow.Web.Api.Controllers.Action.RequiresInstanceActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper)`
81+
- `Umbraco.Workflow.Web.Api.Controllers.Action.ResubmitActionController.#ctor(Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Mapping.IWorkflowActionResponsePresentationMapper,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator)`
82+
- `Umbraco.Workflow.Web.Api.Controllers.ApprovalGroup.DeleteApprovalGroupController.#ctor(Umbraco.Workflow.Core.ApprovalGroups.Services.IGroupService,Umbraco.Cms.Core.Security.IBackOfficeSecurityAccessor,Umbraco.Workflow.Core.Services.IInstancesService,Umbraco.Workflow.Core.Processes.IWorkflowProcessGenerator,Umbraco.Workflow.Core.Services.INotificationsService,Umbraco.Workflow.Core.Services.IConfigService)`
83+
- `Umbraco.Workflow.Web.Api.Controllers.Information.GetInformationController.#ctor(Umbraco.Cms.Core.PublishedCache.IDefaultCultureAccessor,Umbraco.Cms.Core.Security.IBackOfficeSecurityAccessor,Umbraco.Cms.Core.Services.ILanguageService,Microsoft.Extensions.Options.IOptions{Umbraco.Workflow.Core.HistoryCleanup.Configuration.HistoryCleanup},Umbraco.Workflow.Core.Services.ISettingsService,Umbraco.Workflow.Core.SignalR.WorkflowHubRoutes)`
84+
- `Umbraco.Workflow.Web.Api.Controllers.Information.GetInformationController.WorkflowInformationResponseModel.get_GlobalVariables`
85+
- `Umbraco.Workflow.Web.Api.Controllers.Scaffold.GetScaffoldController.Get(Umbraco.Workflow.Core.Models.ScaffoldRequestModel)`
86+
87+
#### Added Interface Members (Breaking)
88+
- `Umbraco.Workflow.Core.Persistence.IDatabaseAccessor.Execute(NPoco.Sql)`
89+
- `Umbraco.Workflow.Core.Persistence.IDatabaseAccessor.ExecuteScalar``1(NPoco.Sql)`
90+
- `Umbraco.Workflow.Core.Persistence.ITasksRepository.GetActiveByNodeId(System.Int32,System.String)`
91+
- `Umbraco.Workflow.Core.Persistence.IWorkflowRepository``1.GetIdForKey``1(System.Guid)`
92+
- `Umbraco.Workflow.Core.Services.ITasksService.GetActiveTasksByNodeId(System.Int32,System.String,System.String)`
93+
94+
### Legacy version specific upgrade notes
4295

4396
You can find the version specific upgrade notes for versions out of support in the [Legacy documentation on GitHub](https://github.com/umbraco/UmbracoDocs/tree/umbraco-eol-versions).

0 commit comments

Comments
 (0)