github umbraco/Umbraco-CMS release-17.2.0-rc
17.2.0-rc

pre-release8 hours ago

What's Changed

๐Ÿ™Œ Notable Changes

๐Ÿ“ฆ Dependencies

๐Ÿš€ New Features

๐Ÿšค Performance

  • Performance: Embeds the API of selected extra conditions by @nielslyngsoe in #21188
  • Performance: Bundle Js Libs by @nielslyngsoe in #21187
  • Performance: Embed Store API in Manifests to lower number of network request by @madsrasmussen in #21191
  • Performance: Avoid database lookup in UserIdKeyResolver for super-user by @AndyButland in #21281
  • Performance: Only flush ID/Key map in ContentCacheRefresher on content deletion by @AndyButland in #21283
  • Performance: Optimize refresh of hybrid cache for a document by retrieving draft and published in single query by @AndyButland in #21407
  • Backoffice Performance: Inline entry point modules to reduce JS chunk count by @madsrasmussen in #21380
  • HybridCache: Optimize content type change cache rebuild to resolve SQL timeouts by @AndyButland in #21207
  • Backoffice Performance: Use import maps to save requests by @nielslyngsoe in #21363
  • Document URL Cache: Ensure URLs are rebuilt after upgrade and prevent duplicate initialization (closes #21337) by @AndyButland in #21379
  • Performance: Fix thread safety and optimize cache updates in PublishStatusService after content changes by @AndyButland in #21415
  • Tiptap RTE: Optimize umb-input-tiptap initialization and rendering by @leekelleher in #21070
  • Routing: Add DocumentUrlAliasService for optimized URL alias lookups (closes #21383) by @AndyButland in #21396
  • Performance: Optimize property retrieval and authorization checks in collection views (closes #21367) by @AndyButland in #21470

๐Ÿงช Testing

  • E2E: QA Replaced unreliable Thread.Sleep(500) with a counter/gate pattern that ensures both transactions are initialized before releasing them to compete for locks by @andr317c in #21165
  • E2E QA: Updated integration test that was missing directory setup by @andr317c in #21167
  • E2E: QA Added acceptance tests for removing a not-found content picker by @nhudinh0309 in #21177
  • E2E: QA Fixed failing tests for the current user profile by @nhudinh0309 in #21214
  • Upgrade MSW from 1.3.5 to 2.12.4 by @madsrasmussen in #21096
  • E2E: QA Added acceptance tests for rendering content with invariant blocks by @nhudinh0309 in #21180
  • E2E: QA Added acceptance tests for content delivery API by @nhudinh0309 in #21095
  • E2E: QA Update acceptance tests to use refactored UI helpers by @nhudinh0309 in #21266
  • E2E: QA Updated acceptance tests for max length validation message by @nhudinh0309 in #21230
  • E2E: QA Update acceptance to use new assertion pattern by @andr317c in #21297
  • E2E: QA added temporary waits to flaky acceptance by @andr317c in #21324
  • QA: E2E skip running sqlite acceptance test on nightly pipeline by @andr317c in #21331
  • E2E: QA Added acceptance tests for removing not-found items by @nhudinh0309 in #21371
  • Tests: Fix intermittent failure in RecycleBinMediaProtectionHelperTests by @AndyButland in #21332
  • E2E: QA updated test helpers to fix flaky acceptance tests by @andr317c in #21373
  • E2E: QA Add acceptance tests for user group description by @nhudinh0309 in #21404
  • E2E: QA Fixed failing tests for setting up content notifications by @nhudinh0309 in #21441
  • E2E: QA Added separate emails for the login tests by @andr317c in #21443
  • E2E: QA Updated tests for granular permission in content to match the changes by @nhudinh0309 in #21478
  • Testing: Ensure ordering for paged descendants tests (closes #21446) by @idseefeld in #21447
  • E2E: QA Added acceptance tests for multi url picker validation message by @nhudinh0309 in #21226
  • E2E: QA Updated acceptance tests for collection view search and document type group by @nhudinh0309 in #21522

๐Ÿ›ก๏ธ Code Quality, Documentation and Refactoring

  • Tests: Fix CS4014 warnings - add missing await operators by @readingdancer in #21194
  • Code Quality: resolve CS0628 warnings - change protected to private in sealed classes by @readingdancer in #21193
  • Docs: Fix CS1573 warnings - add missing XML param tags by @readingdancer in #21209
  • Logging: Resolves all CA2017 warnings and improves message clarity by @readingdancer in #21210
  • Management API: Fixes the warning CS8524 and tidying up the "Set Status Redirect Url Management Controller" by @readingdancer in #21211
  • Fix build warning CS0252 - unintended reference comparison in tests by @readingdancer in #21212
  • Cryptographic Functions: Fixes obsolete .NET API warnings (SYSLIB0023, SYSLIB0045, SYSLIB0021, SYSLIB0013, SYSLIB0012) by replacing deprecated cryptographic and reflection APIs with their modern equivalents. by @readingdancer in #21213
  • Code clean-up: Fixes all SA1117 warnings and adding more XML documentation comments by @readingdancer in #21224
  • Code Quality: Fixing the build warnings in the Umbraco.Tests.Common project by @readingdancer in #21245
  • Code documentation: Added XML Docs to the files in the Umbraco.Cms.Imaging.ImageSharp project by @readingdancer in #21248
  • Code documentation: Added XML Docs to the files in the Umbraco.Cms.Imaging.ImageSharp2 project by @readingdancer in #21249
  • Benchmarks: Fix obsolete BenchmarkDotNet API warnings by replacing depreciated function calls. by @readingdancer in #21250
  • Code quality: Replace obsolete APIs in Umbraco.TestData controllers by @readingdancer in #21251
  • Code quality: Resolve CS0108 compiler warnings by adding explicit 'new' keyword by @readingdancer in #21236
  • Code quality: Remove obsolete serialization constructors (fixing SYSLIB0051 warnings) by @readingdancer in #21235
  • Code quality: Fixing XML docs issues CS1570, CS1572, CS1723, & CS1575 by @readingdancer in #21256
    • Build Warnings: Suppress ASPDEPR003 warnings in DevelopmentMode.Backoffice by @readingdancer in #21259
  • Code Quality: Fix ASP0019 warnings by replacing Headers.Add with Headers.Append by @readingdancer in #21260
  • Code quality: resolve build warnings CS0169 and CS0649 by @readingdancer in #21258
  • Gitignore: Exclude acceptance test results from git by @idseefeld in #21336
  • Code Quality: Fix SA1500, SA1111 and SA1134 StyleCop warnings by @readingdancer in #21369
  • Docs: Add branch naming convention details to CLAUDE.md by @AndyButland in #21311
  • Code Quality: Fix StyleCop warnings SA1116, SA1401, SA1649, SA1405, SA1121, SA1130, SA1306, SA1028, SA1400, SA1106 by @readingdancer in #21377
  • Code Quality: Removing a variable that is not being used fixing warning CS0168 by @readingdancer in #21398
  • Code Quality: Fix CS1574 and CS0419 XML documentation warnings by @readingdancer in #21400
  • Code Quality: Resolve SA1649 warnings by @readingdancer in #21401
  • StringExtensions: Refactor into partial classes and optimize methods by @AndyButland in #21370
  • Code Quality: Fix CS0659 and CS0661 build warnings in Item test class by removing legacy test and setup of little value by @readingdancer in #21399
  • Code Quality: Adding all missing XML documentation for the Umbraco.Cms.Persistence.EFCore project by @readingdancer in #21437
  • Code Quality: Resolve 128 SA1600 documentation warnings in Umbraco.Cms.Persistence.Sqlite by @readingdancer in #21438
  • Code Quality: Adding XML documentation to Umbraco.Cms.Persistence.EFCore.SQLServer & Umbraco.Cms.Persistence.EFCore.SQLite by @readingdancer in #21439
  • Constants: Move media-type guid strings into constants partial by @nathanwoulfe in #21461
  • DevOps: Adds check:duplicate-class-names devops script by @leekelleher in #21460
  • Task: De-duplicate TypeScript class names by @leekelleher in #21474
  • Code Quality: Added missing documentation to the Umbraco.Cms.Api.Common project by @readingdancer in #21465
  • View Engines: Make ProfilingViewEngine._inner private and modernize string formatting by @bohdansolovie in #21550

๐Ÿ› Bug Fixes

  • Added a migration to remove the property regex validation length limit by @Migaroez in #21175
  • Content: Fix name() and getName() to use active variant (closes #20759) by @iOvergaard in #21171
  • Cache: Add null checks for entities that may no longer exist during cache refresh by @nikolajlauridsen in #21181
  • Block level variance: fix values being polluted when changing variance before publish by @Migaroez in #21121
  • Content Types: Fix property variation change when content exists only in non-default language by @nikolajlauridsen in #21182
  • Indexing: Gracefully handle element property variance changes at index time by @kjac in #21183
  • Culture and Hostnames: Load all languages by @nielslyngsoe in #21169
  • News Dashboard: Update styling to fit with new style by @nielslyngsoe in #21185
  • Data Types: Add condition to hide delete action in non deletable data types. by @engijlr in #21184
  • User Avatar: The "Change Photo" button is not working in all cases by @iOvergaard in #21206
  • Hybrid Cache: Clear published content cache on content type change by @AndyButland in #21225
  • Media Picker: Always include folders when searching for media by @arknu in #21216
  • fix: Update RenderNoContentController to use non-obsolete constructor by @readingdancer in #21246
  • Content Type Cache: Clear ContentTypeCommonRepository cache when data types change (closes #21261) by @AndyButland in #21289
  • Management API: Scope notification headers and add document inclusion abstraction (closes #21231, #21241 and #21240) by @AndyButland in #21244
  • Added localize label for entity sign bundle by @Lantzify in #21252
  • Auto close focus leave by @Welander1994 in #20700
  • Extension insights: Hide icon from table collection by @bjarnef in #21268
  • Members: Fix IMemberService.GetByKeysAsync() by @kjac in #21312
  • Docker: Fix Docker template healthcheck, bind mounts, and HTTPS support (fixes #21278) by @nikolajlauridsen in #21299
  • Fix login validation messages not showing on submit by @calm329 in #21306
  • Entity Signs: Add localization keys to core entity signs by @engijlr in #21302
  • Removed margin-top to address the loader icon shifting when entering โ€ฆ by @shelly-chauhan in #21301
  • Backoffice entity actions: prevent entity actions dropdown from closing on first click by @calm329 in #21322
  • Server Events: Route document updated event when public access entries are modified (closes #21237) by @AndyButland in #21310
  • Multi-link picker: Allow drag and drop into empty link picker (fix #21295) by @calm329 in #21325
  • Slide Property Editor: Enforce Maximum Value configuration (closes #21323) by @SmartDever02 in #21339
  • Entity Signs: rounded infobox top corners by @nielslyngsoe in #21341
  • Multi-node picker: Validate content type when filter is configured but object type is not (closes #21338) by @AndyButland in #21342
  • Fix MSW typescript compile errors by @madsrasmussen in #21319
  • Block workspace: Enforce "AllowEditInvariantFromNonDefault" in variant blocks (closes #20633) by @madsrasmussen in #20868
  • TypeScript: Add all CustomEvents to GlobalEventHandlersEventMap by @nielslyngsoe in #21349
  • Fix #20769, added support for clip-text for UmbTableColumn by @enkelmedia in #20808
  • Mobile navigation: enable horizontal scroll on small screens by @nielslyngsoe in #21354
  • Cache: Resolve thread safety issues in RepositoryCacheKeys and FullDataSetRepositoryCachePolicy (closes #21350) by @AndyButland in #21355
  • Collections: fix create action causing full page navigation by @rickbutterfield in #21366
  • Block Grid: Resolve translation keys for group names (closes #20696) by @iOvergaard in #21362
  • Datatype Collection: Add fallback icon for datatype by @bjarnef in #21269
  • Sidebar: Make scale grab-area smaller by @nielslyngsoe in #21228
  • Add loading indicator to data type picker flow modal by @Copilot in #21085
  • Add loading indicator to composition picker modal by @Copilot in #21086
  • Content Type Designer: make inherited property appear more like the local, to take less focus by @nielslyngsoe in #21229
  • Add loading indicator and error handling to Member Public Access Modal by @Copilot in #21087
  • Collection: Introduce Collection Text Filter Extension by @madsrasmussen in #21172
  • Migrations: Ensure description column is added before earlier User Group migration runs by @AndyButland in #21378
  • Server Events: Add runtime state check and error handling to ServerEventRouter by @nikolajlauridsen in #21406
  • Media Picker: Uploaded files should automatically be selected (closes #21115) by @iOvergaard in #21409
  • Backoffice: Fix login logo popover to display Umbraco branding (closes #21078) by @iOvergaard in #21413
  • NPM: Move Umbraco Package Schema and custom-elements to root level for IDE discoverability (closes #16667) by @korbi551 in #17866
  • Persistence Model: Replace some hard coded strings in DTOs by @idseefeld in #21327
  • dotnet Templates: Update Umbraco and Starter Kit versions in templates by @Jeavon in #21395
  • Management API: Replace nameof() by constants of DTO (closes #21303) by @idseefeld in #21344
  • Thumbnails: Fix image thumbnails cropping to allow the entire image to be shown as a thumbnail (closes #20347) by @Copilot in #21288
  • Media Picker: Respect start node when drag+dropping files directly onto picker (closes #21422) by @AndyButland in #21423
  • Focal point: Utility functions by @bjarnef in #21264
  • Notification Container: Make toast notifications announced by screen readers in Chrome. by @engijlr in #21028
  • Content Workspace: Add condition to detect when a content workspace has finished loading. by @engijlr in #21290
  • Bulk Publish: Filter variant options to applicable cultures only (closes #19147) by @iOvergaard in #21163
  • Router: Destroy route component when disconnected (Fixes #21272) by @nielslyngsoe in #21318
  • Content Picker: Provide "content root" origin for dynamic root (closes #21134) by @AndyButland in #21161
  • Document Tree: Filter tree items based on user browse permissions (closes #21141) by @AndyButland in #21173
  • Media: Unable to see the "Access denied" view when deep-linking to restricted media nodes by @iOvergaard in #21442
  • Content picker: Prevent selection of document/member type containers when configuring allowed types (closes #21356) by @AndyButland in #21357
  • Examine: Check for registered populators before emptying indexes by @Zeegaan in #21455
  • Dotnet Template: Removes unused setting SanitizeTinyMce by @iOvergaard in #21467
  • Backoffice: Fix event listener memory leaks in auth, dropzone, actions, and router by @iOvergaard in #21458
  • User Management: Provide informative message on change password validation failure (closes #20665) by @JoseMarcenaro in #21257
  • Content-Type Designer: Transfer tab when moving property to inherited tab (Fixes #20789) by @nielslyngsoe in #21234
  • Entity Signs: Embed Api & Element for performance by @nielslyngsoe in #21480
  • Media: Picker Modal types export (Fixes #21265) by @nielslyngsoe in #21329
  • Management API: Fix document URLs returning all languages for invariant content (closes #21459) by @AndyButland in #21473
  • Picker: Support embedded Collections in the Collection Item Picker Modal by @madsrasmussen in #21392
  • Data Types: Allows transparency for the approved colors in the color picker. by @NillasKA in #21495
  • Redirect Tracking: Handle empty string in redirect tracker when restoring from recycle bin by @AndyButland in #21488
  • Property Value Preset Builder: accept variant options by @nielslyngsoe in #21382
  • Block List & Block Single: Resolve Validation Race condition (Fixes #21313) by @nielslyngsoe in #21491
  • Modal: Add 'in modal' condition to modal package by @madsrasmussen in #21503
  • Fix for the client side circular dependency. by @readingdancer in #21464
  • Log Viewer: Fix polling interval reset when changing intervals (closes #21507) by @GiantDragon9090 in #21508
  • Database Providers: Add support for providers offering sequence and null casting support (closes #21418) by @idseefeld in #21419
  • Load Balancing: Tracking difference CM and CD redirect and post-logout URIs in load-balanced environments by @Migaroez in #21432
  • Media: Only add deleted suffix to URLs for trashed media when recycle bin protection is enabled by @AndyButland in #21412
  • Backoffice: Redirect to list view after entity deletion by @eureka928 in #21456
  • Block List Editor: Describe that Single Block Mode is deprecated by @nielslyngsoe in #21512
  • Block editors: Fix false pending changes indicator for invariant block editor with culture-variant blocks (closes #21223) by @AndyButland in #21292
  • Content types: Allow adding composition with clashing property alias when property is being removed (closes #21298) by @kjac in #21527
  • Models Builder: Fix nested generic type handling in WriteClrType by @AndyButland in #21429
  • Media: Prevent creation of media with GUID v7 keys when using incompatible path scheme (closes #21440) by @AndyButland in #21457
  • Dark mode: Added color variable to code block in the system information dialog to make it readable by @Jowaaaa in #21532
  • Dotnet Template: Fix trailing comma in appsettings.json by @andr317c in #21529
  • Content picker: Fix bug where dynamic root children are not correctly available for selection (closes #21477 and #21537) by @NguyenThuyLan in #21535
  • Templates: Allow underscore as first character in template alias (closes #21534) by @AndyButland in #21536
  • Members: Fix misleading error message on change password with incorrect current password by @AndyButland in #21504
  • Content/Media: Fix deadlock when performing certain operations in parallel (closes #21125) by @lauraneto in #21526
  • UFM: Skip leading whitespace in token parser (closes #20341) by @D-Inventor in #21509
  • External Logins: Handle duplicate key race condition intermittently triggered in ExternalLoginRepository by @AndyButland in #21551
  • Translations: Add missing translations of document type and property names in collection views and user granular permissions (closes #21433) by @NguyenThuyLan in #21541
  • Content Type Designer: Property Layout updates by @nielslyngsoe in #21544
  • Tiptap RTE: Resolves inline blocks being set as dirty (closes #17749) by @leekelleher in #21546
  • Entity Signs: Refactor Entity Sign Bundle to use Popover API. by @engijlr in #21490
  • Backoffice: Exclude invariant options for culture-variant properties in preset builder by @AndyButland in #21555
  • Content Value Transformation: Clean out values when property-type variation transforms by @nielslyngsoe in #21557
  • Content Types: Fix deletion of properties without containers (closes #21566) by @AndyButland in #21585
  • Content Editor: Fix display of validation hint badge on tabs by @AndyButland in #21595
  • Documents: Remove deprecated entityType from property values (closes #21567) by @leekelleher in #21609
  • Routing: Fix URL aliases not stored for variant content with shared alias property in DocumentUrlAliasService by @AndyButland in #21571
  • OEmbed providers: Tighten up resource URL matching for providers by @NguyenThuyLan in #21583

New Contributors

Full Changelog: release-17.1.0...release-17.2.0-rc

Don't miss a new Umbraco-CMS release

NewReleases is sending notifications on new releases.