# Version Specific Upgrade Notes

This page covers specific upgrade documentation for when migrating to major 13 of Umbraco Forms.

{% hint style="info" %}
If you are upgrading to a new minor or patch version, you can find information about the breaking changes in the [Release Notes](https://docs.umbraco.com/umbraco-forms/13.latest/release-notes) article.
{% endhint %}

## Version Specific Upgrade Notes History

Version 13 of Umbraco Forms has a minimum dependency on Umbraco CMS core of `13.0.0`. It runs on .NET 8.

Deploy add-on for Umbraco Forms has been renamed from `Umbraco.Deploy.Forms` to `Umbraco.Forms.Deploy`.

#### **Breaking changes**

Version 13 contains a number of breaking changes. If you do run into any, they should be straightforward to adjust and recompile.

For reference, the full details are listed here:

#### **Behavior**

* The configuration option `UseSemanticFieldsetRendering` was removed and considered as `true`. This means the improved, semantic fieldset rendering is now used in the default theme for all installations.
* The `ExecuteWorkflowAsync` configuration option was removed.

#### **Dependencies**

* Umbraco CMS dependency was updated to `13.0.0`.

#### **Code**

The following updates describe the more significant changes to the codebase and public API:

* Amended `IWorkflowExecutionService`, `IRecordService`, `IRecordSetActionType` and `IWorkflowType` methods related to workflow execution to be asynchronous. These methods now have an `Async` suffix and will return a awaitable `Task`.
* An overload for the HTML helper `RenderUmbracoFormDependencies` that internally required service location was removed. It should now be called providing the parameter for an `IUrlHelper`, with `@Html.RenderUmbracoFormDependencies(Url)`.

These updates are more minor. We don't expect many projects to be affected by them as they are in areas that are not typical extension points:

* `DataSourceCacheRefresher` was made internal.
* `HideField` was removed from `FieldType` and `IFieldType`. `RenderInputType` with a value of `RenderInputType.Hidden` can be used here instead.
* The default implementation for the `Exists` method previously added to `IBaseService` was removed.
* The obsolete overload for method `AddDataConsentField` on `FieldsetContainerExtensions` was removed.
* The method `CanUserViewEntries` was added to the `IFormsSecurity` interface.
* The static methods `TryCreateAttachment`, `TrackAttachmentFileStream` and `DisposeAttachmentFileStreams` on `BaseEmailWorkflowType` were removed (instance methods are available to use instead).
* The obsolete constructor on the `SaveAsFile` workflow type was removed.
* The obsolete overload for method `TransformXML` on `XsltHelper` was removed.
* The obsolete overloads for method `ValidateField` on `FieldType` were removed.
* The obsolete overload for method `GetFormSecurityByUserId` on `FormSecurityControllerBase` was removed.
* The `PopulatePageElements` method was added to the `IFormRenderingService` interface.
* The `Setting` class was renamed to `SettingAttribute`.
* `PreValueFileController` has a changed constructor.
* `FileUpload` has a changed constructor.
* `ExecuteWorkflowsWithResult` on `IWorkflowExecutionService` was renamed to `ExecuteWorkflows` and the void method with that name was removed.
* The string constants used to define GUIDs for each provider type were made consistently upper-case.
* `FileUpload` and `PreValueFileController` have changed constructors to add support for server-side file validation.
* HTML helpers such as `RenderFormsScripts` now return `IHtmlContent`.
* The constructor for workflow notifications was amended to add a parameter for the current `Record`.
* The `IType` interface now defines a `Created` property.

## Legacy version specific upgrade notes

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.umbraco.com/umbraco-forms/13.latest/upgrading/version-specific.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
