From 5f6089d83960a5b2cbca71587fada4df1b7b5221 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Fri, 29 Nov 2024 12:20:17 +0100 Subject: [PATCH 1/3] Add Deploy 10.4.1, 13.3.1, 14.2.1 and 15.0.1 release notes --- 10/umbraco-deploy/release-notes.md | 7 +++++++ 13/umbraco-deploy/release-notes.md | 5 +++++ 14/umbraco-deploy/release-notes.md | 7 +++++++ 15/umbraco-deploy/release-notes.md | 8 ++++++++ 4 files changed, 27 insertions(+) diff --git a/10/umbraco-deploy/release-notes.md b/10/umbraco-deploy/release-notes.md index 547f195d150..6f8f3a19b98 100644 --- a/10/umbraco-deploy/release-notes.md +++ b/10/umbraco-deploy/release-notes.md @@ -18,6 +18,13 @@ If you are upgrading to a new major version you can find the details about the b This section contains the release notes for Umbraco Deploy 4 and 10 including all changes for these versions. For each major version, you can find the details about each release. +#### [10.4.1](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.4.1) (November 29th 2024) + +* Add `[DisableRequestSizeLimit]` attribute to `UploadForImport` endpoint to remove application request size limit (server/infrastructure restrictions may still apply) +* Fixed issue where content was not saved when transferring variant content with a release date +* Support flexible environments on Umbraco Cloud (remove requirement for environment types to be Development, Staging or Live) +* Update documentation links in management dashboard to include major version in the URL + #### [10.4.0](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F10.4.0) (March 19th 2024) * All items from 10.4.0-rc1 diff --git a/13/umbraco-deploy/release-notes.md b/13/umbraco-deploy/release-notes.md index a8877370fc5..49a7bfe0838 100644 --- a/13/umbraco-deploy/release-notes.md +++ b/13/umbraco-deploy/release-notes.md @@ -18,6 +18,11 @@ If you are upgrading to a new major version you can find the details about the b This section contains the release notes for Umbraco Deploy 13 including all changes for this version. +#### [13.3.1](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.3.1) (November 29th 2024) + +* Update documentation links in management dashboard to include major version in the URL +* Add `ValidateDependenciesOnImport` setting to management dashboard + #### [13.3.0](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F13.3.0) (November 21st 2024) * All items from 13.3.0-rc1 diff --git a/14/umbraco-deploy/release-notes.md b/14/umbraco-deploy/release-notes.md index 5337d200478..9c917dbfcc8 100644 --- a/14/umbraco-deploy/release-notes.md +++ b/14/umbraco-deploy/release-notes.md @@ -18,6 +18,13 @@ If you are upgrading to a new major version you can find the details about the b This section contains the release notes for Umbraco Deploy 14 including all changes for this version. +#### [14.2.1](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F14.2.1) (November 29th 2024) + +* Update documentation links in management dashboard to include major version in the URL +* Add `ValidateDependenciesOnImport` setting to management dashboard +* Fix tree restore for custom entities [#241](https://github.com/umbraco/Umbraco.Deploy.Issues/issues/241) +* Disable import button when no file is selected + #### [14.2.0](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F14.2.0) (November 21st 2024) * All items from 14.2.0-rc1 diff --git a/15/umbraco-deploy/release-notes.md b/15/umbraco-deploy/release-notes.md index a36d3fbd889..61949554b7d 100644 --- a/15/umbraco-deploy/release-notes.md +++ b/15/umbraco-deploy/release-notes.md @@ -18,6 +18,14 @@ If you are upgrading to a new major version you can find the details about the b This section contains the release notes for Umbraco Deploy 15 including all changes for this version. +#### [15.0.1](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F15.0.1) (November 29th 2024) + +* Update documentation links in management dashboard to include major version in the URL +* Add `ValidateDependenciesOnImport` setting to management dashboard +* Fix tree restore for custom entities [#241](https://github.com/umbraco/Umbraco.Deploy.Issues/issues/241) +* Fix import complete heading and description (was using export complete localization keys) +* Disable import button when no file is selected + #### [15.0.0](https://github.com/umbraco/Umbraco.Deploy.Issues/issues?q=is%3Aissue+is%3Aclosed+label%3Arelease%2F15.0.0) (November 14th 2024) * Update CMS dependency to 15.0.0 From 3237235e31d03fe168b14e3d14d70deedc4bb499 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Fri, 29 Nov 2024 12:21:14 +0100 Subject: [PATCH 2/3] Fix settings heading levels --- 10/umbraco-deploy/getting-started/deploy-settings.md | 6 +++--- 13/umbraco-deploy/getting-started/deploy-settings.md | 4 ++-- 14/umbraco-deploy/getting-started/deploy-settings.md | 7 +++---- 15/umbraco-deploy/getting-started/deploy-settings.md | 6 +++--- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/10/umbraco-deploy/getting-started/deploy-settings.md b/10/umbraco-deploy/getting-started/deploy-settings.md index 4056b9452dc..27bbcc7b390 100644 --- a/10/umbraco-deploy/getting-started/deploy-settings.md +++ b/10/umbraco-deploy/getting-started/deploy-settings.md @@ -191,7 +191,7 @@ In a similar way, Deploy can be configured to allow for backoffice transfers of Please see the note above under _TransferFormsAsContent_ on the topic of removing any existing serialized files having changed this value to `true`. -### IgnoreMissingLanguagesForDictionaryItems +## IgnoreMissingLanguagesForDictionaryItems When deploying dictionary items, an exception will be thrown if a translation is provided for a language that doesn't exist in the target environment. @@ -201,7 +201,7 @@ If you have deleted languages that have already existing translations, you may w When this is in place a translation for a language that doesn't exist in the target environment will be ignored. A warning message will be output to the log. -### SetEmptyDictionaryItemsOnTransfer +## SetEmptyDictionaryItemsOnTransfer When deploying dictionary items, Umbraco Deploy follows the approach used for all content, emptying values that are transferred and set. @@ -267,7 +267,7 @@ Some customers have reported intermittent issues related to Umbraco's memory cac By upgrading to the most recent available version of the CMS major you are running, you'll be able to benefit from the latest bug fixes and optimizations in this area. That should be your first option if encountering cache related issues. Failing that, or if a CMS upgrade is not an option, then this workaround can be considered. -### Deployment of culture & hostnames settings {#deployment-of-culture--hostnames-settings} +## Deployment of culture & hostnames settings {#deployment-of-culture--hostnames-settings} Culture and hostname settings, defined per content item for culture invariant content, are not deployed between environments by default. They can be opted into via configuration. diff --git a/13/umbraco-deploy/getting-started/deploy-settings.md b/13/umbraco-deploy/getting-started/deploy-settings.md index 30be82a6507..211a7eae206 100644 --- a/13/umbraco-deploy/getting-started/deploy-settings.md +++ b/13/umbraco-deploy/getting-started/deploy-settings.md @@ -294,7 +294,7 @@ To enable this, set the configuration value as appropriate for the types of doma Combinations of settings can be applied, e.g. `Hostname,AbsolutePath`. -## Deployment of public access settings {#deployment-of-public-access-settings} +### Deployment of public access settings {#deployment-of-public-access-settings} When deploying content items, public access rules based on member groups are transferred. You can amend this behavior using this setting. @@ -322,7 +322,7 @@ If you would like you include them you can adjust this setting: * `None` - webhooks are not deployed and are expected to be managed independently in each environment * `All` - webhooks included in schema deployments -## Deployment of trashed content {#deployment-of-trashed-content} +### Deployment of trashed content {#deployment-of-trashed-content} Specifies options for handling trashed content (documents, media and members) on export or import: diff --git a/14/umbraco-deploy/getting-started/deploy-settings.md b/14/umbraco-deploy/getting-started/deploy-settings.md index b1f14dc1b8b..aee353faf72 100644 --- a/14/umbraco-deploy/getting-started/deploy-settings.md +++ b/14/umbraco-deploy/getting-started/deploy-settings.md @@ -49,7 +49,6 @@ For illustration purposes, the following structure represents the full set of op "SourceDeployBatchSize": null, "PackageBatchSize": null, "MaxRequestLength": null, - "IgnoreBrokenDependenciesBehavior": "Restore", "AcceptInvalidCertificates": false, "TransferFormsAsContent": true, @@ -302,7 +301,7 @@ To enable this, set the configuration value as appropriate for the types of doma Combinations of settings can be applied, e.g. `Hostname,AbsolutePath`. -## Deployment of public access settings {#deployment-of-public-access-settings} +### Deployment of public access settings {#deployment-of-public-access-settings} When deploying content items, public access rules based on member groups are transferred. You can amend this behavior using this setting. @@ -330,7 +329,7 @@ If you would like you include them you can adjust this setting: * `None` - webhooks are not deployed and are expected to be managed independently in each environment * `All` - webhooks included in schema deployments -## Deployment of trashed content {#deployment-of-trashed-content} +### Deployment of trashed content {#deployment-of-trashed-content} Specifies options for handling trashed content (documents, media and members) on export or import: @@ -389,7 +388,7 @@ In production this setting shouldn't be changed from it's default value of `fals If attempting a one-off, large transfer operation, before a site is live, you could set this value to `true`. That would omit the firing and handling of these notifications and remove their performance overhead. Following which you would need to ensure to rebuild the cache and search index manually via the backoffice _Settings_ dashboards. -## ResolveUserInTargetEnvironment {#resolve-user-in-target-environment} +### ResolveUserInTargetEnvironment {#resolve-user-in-target-environment} With this setting assigned a value of `true`, Umbraco Deploy will attempt to resolve users when transfers are made to new environments. diff --git a/15/umbraco-deploy/getting-started/deploy-settings.md b/15/umbraco-deploy/getting-started/deploy-settings.md index d6d3ea49938..aee353faf72 100644 --- a/15/umbraco-deploy/getting-started/deploy-settings.md +++ b/15/umbraco-deploy/getting-started/deploy-settings.md @@ -301,7 +301,7 @@ To enable this, set the configuration value as appropriate for the types of doma Combinations of settings can be applied, e.g. `Hostname,AbsolutePath`. -## Deployment of public access settings {#deployment-of-public-access-settings} +### Deployment of public access settings {#deployment-of-public-access-settings} When deploying content items, public access rules based on member groups are transferred. You can amend this behavior using this setting. @@ -329,7 +329,7 @@ If you would like you include them you can adjust this setting: * `None` - webhooks are not deployed and are expected to be managed independently in each environment * `All` - webhooks included in schema deployments -## Deployment of trashed content {#deployment-of-trashed-content} +### Deployment of trashed content {#deployment-of-trashed-content} Specifies options for handling trashed content (documents, media and members) on export or import: @@ -388,7 +388,7 @@ In production this setting shouldn't be changed from it's default value of `fals If attempting a one-off, large transfer operation, before a site is live, you could set this value to `true`. That would omit the firing and handling of these notifications and remove their performance overhead. Following which you would need to ensure to rebuild the cache and search index manually via the backoffice _Settings_ dashboards. -## ResolveUserInTargetEnvironment {#resolve-user-in-target-environment} +### ResolveUserInTargetEnvironment {#resolve-user-in-target-environment} With this setting assigned a value of `true`, Umbraco Deploy will attempt to resolve users when transfers are made to new environments. From 038e0cae95bb556680951a6d0bba24c109f95b55 Mon Sep 17 00:00:00 2001 From: Ronald Barendse Date: Fri, 29 Nov 2024 12:28:27 +0100 Subject: [PATCH 3/3] Fix PhysicalDirectoryArtifactImportOnStartupProvider example code --- .../deployment-workflow/import-on-startup.md | 14 +++++++------- .../deployment-workflow/import-on-startup.md | 14 +++++++------- .../deployment-workflow/import-on-startup.md | 14 +++++++------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/13/umbraco-deploy/deployment-workflow/import-on-startup.md b/13/umbraco-deploy/deployment-workflow/import-on-startup.md index 062e9d54032..53ee2e818d4 100644 --- a/13/umbraco-deploy/deployment-workflow/import-on-startup.md +++ b/13/umbraco-deploy/deployment-workflow/import-on-startup.md @@ -29,7 +29,7 @@ internal sealed class DeployImportOnStartupComposer : IComposer { public void Compose(IUmbracoBuilder builder) => builder.DeployArtifactImportOnStartupProviders() - .Append(); + .Append(); private sealed class PhysicalDirectoryArtifactImportOnStartupProvider : IArtifactImportOnStartupProvider { @@ -55,14 +55,14 @@ internal sealed class DeployImportOnStartupComposer : IComposer _logger.LogInformation("Imported Umbraco content and/or schema import at startup from directory {FilePath} with status: {OperationStatus}.", _artifactsPath, attempt.Result); - return attempt; - } + if (attempt.Success) + { + Directory.Delete(_artifactsPath, true); - public Task OnImportCompletedAsync() - { - Directory.Delete(_artifactsPath, true); + _logger.LogInformation("Deleted physical directory after successful import on startup {FilePath}.", _artifactsPath); + } - return Task.CompletedTask; + return attempt; } } } diff --git a/14/umbraco-deploy/deployment-workflow/import-on-startup.md b/14/umbraco-deploy/deployment-workflow/import-on-startup.md index 062e9d54032..53ee2e818d4 100644 --- a/14/umbraco-deploy/deployment-workflow/import-on-startup.md +++ b/14/umbraco-deploy/deployment-workflow/import-on-startup.md @@ -29,7 +29,7 @@ internal sealed class DeployImportOnStartupComposer : IComposer { public void Compose(IUmbracoBuilder builder) => builder.DeployArtifactImportOnStartupProviders() - .Append(); + .Append(); private sealed class PhysicalDirectoryArtifactImportOnStartupProvider : IArtifactImportOnStartupProvider { @@ -55,14 +55,14 @@ internal sealed class DeployImportOnStartupComposer : IComposer _logger.LogInformation("Imported Umbraco content and/or schema import at startup from directory {FilePath} with status: {OperationStatus}.", _artifactsPath, attempt.Result); - return attempt; - } + if (attempt.Success) + { + Directory.Delete(_artifactsPath, true); - public Task OnImportCompletedAsync() - { - Directory.Delete(_artifactsPath, true); + _logger.LogInformation("Deleted physical directory after successful import on startup {FilePath}.", _artifactsPath); + } - return Task.CompletedTask; + return attempt; } } } diff --git a/15/umbraco-deploy/deployment-workflow/import-on-startup.md b/15/umbraco-deploy/deployment-workflow/import-on-startup.md index 062e9d54032..53ee2e818d4 100644 --- a/15/umbraco-deploy/deployment-workflow/import-on-startup.md +++ b/15/umbraco-deploy/deployment-workflow/import-on-startup.md @@ -29,7 +29,7 @@ internal sealed class DeployImportOnStartupComposer : IComposer { public void Compose(IUmbracoBuilder builder) => builder.DeployArtifactImportOnStartupProviders() - .Append(); + .Append(); private sealed class PhysicalDirectoryArtifactImportOnStartupProvider : IArtifactImportOnStartupProvider { @@ -55,14 +55,14 @@ internal sealed class DeployImportOnStartupComposer : IComposer _logger.LogInformation("Imported Umbraco content and/or schema import at startup from directory {FilePath} with status: {OperationStatus}.", _artifactsPath, attempt.Result); - return attempt; - } + if (attempt.Success) + { + Directory.Delete(_artifactsPath, true); - public Task OnImportCompletedAsync() - { - Directory.Delete(_artifactsPath, true); + _logger.LogInformation("Deleted physical directory after successful import on startup {FilePath}.", _artifactsPath); + } - return Task.CompletedTask; + return attempt; } } }