Skip to content

Conversation

@warrenbuckley
Copy link
Contributor

@warrenbuckley warrenbuckley commented Nov 14, 2025

Removed targets for restoring and building Client files.

Details

As discussed part of the Umbraco Community Package team call 14th November to remove this

AndyButland and others added 30 commits October 2, 2025 21:15
…missing dictionary items (closes umbraco#20336 for 16) (umbraco#20349)

* Ports fix to regression of the caching of null representations for missing dictionary items.

* Fixed error raised in code review.

---------

Co-authored-by: Kenn Jacobsen <[email protected]>
…s for hybrid cache to ensure correct deserialization (closes umbraco#20352) (umbraco#20383)

Checked for ContentCacheNode instead of object on exists for hybrid cache to ensure correct deserialization.

(cherry picked from commit 184c17e)
…ker validation (umbraco#20405)

* Added request cache to media type retrieval in media picker validation.

* Applied suggestions from code review.
* Property workspace update

* Fixed error with updating the properties

* Unused variable

* Added data-mark to description textarea

* make select 100% width

* tiny appearance-option style adjustments

* Make placeholder property inside the input-with-alias optional

* Moving variations and member type option to their own boxes

---------

Co-authored-by: Mads Rasmussen <[email protected]>
Co-authored-by: Niels Lyngsø <[email protected]>
Co-authored-by: Niels Lyngsø <[email protected]>
…with 'values' property (umbraco#20429)

* Adjust the `JsonBlockValueConverter` to handle conflicts with 'values' property (due to old data schema)

* Simplify code

* Add unit test to verify change.

---------

Co-authored-by: Andy Butland <[email protected]>
# Conflicts:
#	templates/UmbracoProject/.template.config/template.json
* Added unique color checker to color picker.

* Added Unittest for duplicates

* optimized for codescene

* removed the bump and simplified the function

* Fixed behaviour for duplicate checks so unit test passes.
A little refactoring.

* Adds continue so invalid colors aren't checked for duplicates.

---------

Co-authored-by: Andy Butland <[email protected]>
* Add `Expiry` header to emails, set default expiry to 30 days and allow user config via `appsettings`

* Remove `IsSmtpExpirationConfigured` as it will always have a value

* Check for `emailExpiration` value

* Removed `EmailExpiration` default value as it should be opt-in

* Simplify SMTP email expiration condition

* Fix APICompat issue

* Add implementation to `NotImplementedEmailSender`

* Rename `emailExpiration` to `expires` to match the SMTP header

* Obsolete interfaces without `expires` parameter, delegate to an existing method.

* Set expiry TimeSpan values from user configurable settings with defaults

* Fix formating

* Handle breaking changes, add obsoletion messages and simplify interfaces.

* Fix default of invite expires timespan (was being parsed as 72 days not 72 hours).

---------

Co-authored-by: Andy Butland <[email protected]>
# Conflicts:
#	src/Umbraco.Infrastructure/Mail/EmailSender.cs
…mbraco#20434)

* added hovering and focus border to RTE

* fix main to OG

* fix to main again

* I'm going to cry

* Missing localiztion feature, maybe UmbLitElement?

* added localization controller to fetch localized version

* localization successful for viewActionsFor and CreateFor

* clean up button text

* Changed label for content header to display proper name

* clean up code

* Included button labels for media section

* clean code

* Relocated localization keys,

as `actions_viewActionsFor` already existed.

Also made into a function, to support a fallback label.

* Simplified the "Create for" label/localization

Removed the need for a `getCreateAriaLabel()` method.

* Removed the double-localizations (of `actions_viewActionsFor`)

as the "umb-entity-actions-bundle" component handles this now.

* imports tidy-up

* Simplified localization key condition

---------

Co-authored-by: Oskar kruger <[email protected]>
Co-authored-by: leekelleher <[email protected]>
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/core/tree/tree-item/tree-item-base/tree-item-element-base.ts
…rom PR umbraco#17007 for 16 (umbraco#20441)

* Port PR umbraco#17007

* Update src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
# Conflicts:
#	src/Umbraco.Infrastructure/Security/IdentityMapDefinition.cs
* Fill height and align icons to top

* Auto scrollbar instead

* Auto height of grid rows

* Enforce scroll again
* Fixed spelling mistake in method name.

* Apply suggestion from @Copilot

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Kenn Jacobsen <[email protected]>
Co-authored-by: Copilot <[email protected]>
…tityFrameworkCore.Design (closes umbraco#20421) (umbraco#20474)

* Add explicit references to Microsoft.CodeAnalysis.* packages to fix conflicts when installing Microsoft.EntityFrameworkCore.Design

This allows consumers to simply install Microsoft.EntityFrameworkCore.Design without having to manually install specific versions to deal with transitive dependency problems.

* Disable CPM for UI project to better reflect consumers

* Update src/Umbraco.Infrastructure/Umbraco.Infrastructure.csproj

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
…ems (umbraco#20483)

* Configure document/media items to listen for `Trashed` server-events for cache invalidation

* Fire reload event on restore destination tree/menu

* Removed "trashed" part of the code comment
…co#20416)

* Adding controller

* Lower case route to match other endpoints

* Adding service and typed output

* Renaming to NewsDashboard

* Moving more stuff to service

* Removing unused code

* Some refactoring in accordance with better architecture

* Created repository and mock data source for the news dashboard also display some data in the UI.

* Minor refactoring: naming, aligning with existing controller patterns.

* Update OpenApi.json.

* Update typed client sdk and types.

* Provide language to API endpoint, just in case we want to localize news in the future.

* Obsoleted configuration

* Moved mock data to mocks folder and updated repository to use the actual response model and service from the Api

* Prepared news repository with server data source.

* Rendered news items according to required group structure.
Added TODOs for remaining tasks.

* Fixed FE build issues.

* Update src/Umbraco.Core/Constants-Configuration.cs

* Fixed grid spacing, sanitize code and make the styles closer to the v13.

* Added container query and padding to the card body.

* Fix padding

* Fixed title according to priority.

* Relocated/renamed the news server data-source file

* Simplified the news repo/data-source classes

by extending `UmbControllerBase`, the host constructor is handled for us.

* Added `types.ts` export type files

* Refactored interface name + typing

* Added `uui-loader` component

* Tweaked styles, added box-shadow to cards

Added flexbox gap to the card body.

* Sorted import order

---------

Co-authored-by: Andy Butland <[email protected]>
Co-authored-by: engjlr <[email protected]>
Co-authored-by: leekelleher <[email protected]>
# Conflicts:
#	version.json
NguyenThuyLan and others added 18 commits November 13, 2025 11:10
…iders (umbraco#20784)

* sql column type map include dateonly and timeonly

* Split Mapper and add check null value

* Minor code tidy resolving a few warnings.

* add spaces

* clean code

---------

Co-authored-by: Lan Nguyen Thuy <[email protected]>
Co-authored-by: Andy Butland <[email protected]>
* feat: adds the `credentials: include` header to all manual requests

* feat: adds `credentials: include` as a configurable option to xhr requests (and sets it by default to true)

* feat: configures the auto-generated fetch client from hey-api to include credentials by default

* Add OpenIddict handler to hide tokens from the back-office client

* Make back-office token redaction optional (default false)

* Clear back-office token cookies on logout

* Add configuration for backoffice cookie settings

* Make cookies forcefully secure + move cookie handler enabling to the BackOfficeTokenCookieSettings

* Use the "__Host-" prefix for cookie names

* docs: adds documentation on cookie settings

* build: sets up launch profile for vscode with new cookie recommended settings

* docs: adds extra note around SameSite settings

* docs: adds extra note around SameSite settings

* Respect sites that do not use HTTPS

* Explicitly invalidate potentially valid, old refresh tokens that should no longer be used

* Removed obsolete const

---------

Co-authored-by: Jacob Overgaard <[email protected]>
…-drop into empty Generic tab. (umbraco#20809)

Always register root route to enable drag-drop on empty Generic tab.
…cks for related documents and media on delete, when disable delete with references is enabled (closes umbraco#20803) (umbraco#20811)

* Exclude the relate parent on delete relation type from checks for related documents and media on delete, when disable delete with references is enabled.

* Apply suggestions from code review

Co-authored-by: Copilot <[email protected]>

* Applied suggestions from code review.

---------

Co-authored-by: Copilot <[email protected]>
update extension for collection view test

Co-authored-by: Lan Nguyen Thuy <[email protected]>
# Conflicts:
#	src/Umbraco.Web.UI.Client/package.json
#	version.json
…braco#20616) (umbraco#20805)

* chore(mock): adds missing try/catch around document lookup

* fix: lets the 'save and preview' button extend the 'save' button to follow the same logic in terms of when it enables/disabled - it did not have much logic before

* fix: runs validation from the server when save and previewing to ensure the UI shows what is missing
…raco#20782)

Removed the detroy from the modelContext.
It being destroyed prevented the uui-button getting into focus again after closing the modal.
…kspaces.Common package in the web.ui project in 17 (umbraco#20825)

* Hide content files

* Update src/Umbraco.Web.UI/Umbraco.Web.UI.csproj

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Andy Butland <[email protected]>
Co-authored-by: Copilot <[email protected]>
* Removed isLoding condition from the rich media input and let the thumbnail handle the loader.

* Removed unused import.

* change loader and adjust lit property configuration

* update reflect configuration

---------

Co-authored-by: Niels Lyngsø <[email protected]>
…co#20733)

* Chenged right and left position of the infobox.

* Added focus support to open the modal.

* Moved tabindex out the constructor and added support for enter and space keys.
…ation for Alias. (umbraco#20755)

* Implemented input-with-alias in the content-type-design-editor.

* Added auto-generate-alias property to the input and revert deletion of checkAliasAutoGenerate method.

* Added form-validation-message.

* Added validation to the input-with-alias element to avoid special characters.
… in rich content group(Code editor, Markdown, Block grid) (umbraco#20693)

* Added mandatory support for block grid property editor.

* Added form control and mandatory support to code editor.

* Added form control and mandatory support to markdown editor.

---------

Co-authored-by: Niels Lyngsø <[email protected]>
…separators (closes umbraco#20823) (umbraco#20828)

* Flexibly parse decimal value with different separators.

* Applied suggestions from code review.
Removed targets for restoring and building Client files.
Copilot AI review requested due to automatic review settings November 14, 2025 12:53
Copilot finished reviewing on behalf of warrenbuckley November 14, 2025 12:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes MSBuild targets for automated frontend build processes from the Umbraco extension template project file. The change eliminates the automatic restoration and building of Client files during the C# project build, requiring developers to manually manage their frontend build pipeline.

  • Removed RestoreClient target that automatically ran npm i for Client packages
  • Removed BuildClient target that automatically executed npm run build and tracked build outputs

@AndyButland
Copy link
Contributor

I'm sure this is valid @warrenbuckley, but please could you update the description to explain why you are proposing this change? "As discussed" isn't really enough, particularly if someone is looking back in future. Thanks.

@iOvergaard
Copy link
Contributor

iOvergaard commented Nov 14, 2025

I was just about to write the same thing as @AndyButland. We will accept the change but need to be able look back on it and read why it was done.
Also I would like to ask you to target the release/17.0 branch directly so we get it in the proper release.

@bjarnef
Copy link
Contributor

bjarnef commented Nov 14, 2025

Isn't this used to run npm i + npm run build when building project/solution on local environment?

We can of course run these directly from terminal.

Furthermore we has this change based on "Open Source Umbraco Cloud" repository:
https://github.com/LottePitcher/open-source-umbraco-cloud/blob/develop/src/OpenSourceTest.MyExtension/OpenSourceTest.MyExtension.csproj

<!-- Restore and build Client files outside of Cloud environments -->
  <Target Name="RestoreClient" 
		  Inputs="Client\package.json;Client\package-lock.json" 
		  Outputs="Client\node_modules\.package-lock.json">
    <Message Importance="high" Text="Restoring Client NPM packages..." />
    <Exec Command="npm i" WorkingDirectory="Client" />
  </Target>

  <Target Name="BuildClient" 
		  BeforeTargets="AssignTargetPaths" 
		  DependsOnTargets="RestoreClient" 
		  Inputs="@(ClientAssetsInputs)" 
		  Outputs="$(IntermediateOutputPath)client.complete.txt" 
          Condition="!('$(UMBRACO__CLOUD__ISRUNNINGONCLOUD)' == 'true' OR '$(ENVIRONMENT__PROJECTID)' != '')">
    <Message Importance="high" Text="Executing Client NPM build script..." />
    <Exec Command="npm run build" WorkingDirectory="Client" />
    <ItemGroup>
      <_ClientAssetsBuildOutput Include="wwwroot\App_Plugins\**" />
    </ItemGroup>
    <WriteLinesToFile File="$(IntermediateOutputPath)client.complete.txt" Lines="@(_ClientAssetsBuildOutput)" Overwrite="true" />
  </Target>

where ignore on build, but run npm i (or npm ci) + npm run build as part of CI/CD pipeline.

@warrenbuckley warrenbuckley changed the base branch from main to release/17.0 November 14, 2025 14:25
@warrenbuckley
Copy link
Contributor Author

@AndyButland & @iOvergaard I am going to close this PR & redo it as was rushed and done directly in the browser whilst on the call, so apologies for the quality.

@warrenbuckley
Copy link
Contributor Author

New PR is over here 👉 #20839

@warrenbuckley warrenbuckley deleted the patch-1 branch November 14, 2025 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.