Release Details
This is a major point release update for uSync for Umbraco v17. it contains quite a few updates, fixes and performance improvements.
[!WARNING] This release jumps two point releases (there is no v17.1 or v17.2) because it has a dependency on Umbraco v17.3 and we figure the easiest way to mange that is to keep the release versions in sync.
There are a couple of small changes in v17.3 that we wanted to support. We have for example moved the client authentication to the newer umbHttpClient.getConfig() methods to match the newer extension templates - moving to 17.3 also allows us to move our version of @hey-api/openapi-ts independently of Umbraco which means we can update for some critical vulnerabilities.
We have added support for changing HMAC image keys, The umbraco recommendation is that these keys match across your site installations, but if you are moving between clients, or projects or for some other reason you might not have these values match and incline images inside RTE blocks for example will have the wrong HMAC value assigned to them - off by default uSync can go in an update these HMAC values so you can sync stuff across non-matching installations.
We asked AI . "Analyse this code base for any performance improvements, ignore the minor improvements in things like string allocation and concentrate on any potential reduction in database calls or file IO that could be improved upon" 924.
This gave us some nice pointers. Most of these updates are around file IO, and file parsing, it didn't reduce and DB calls within the code.
For example there is now some parallelism in how we read in files (https://github.com/KevinJump/uSync/blob/v17/main/uSync.BackOffice/Services/SyncFileService.cs#L493-L520) which does give some measurable improvements in the read time of large folder structures.
These changes help the new uSync.Migrations integrate into the usync processes better.
You can get into your project via nuget.
dotnet add package usync --version 17.3.0
or add it directly to the csproj file.
<PackageReference Include="uSync" Version="17.3.0" />
If you are using centralized package management, the version entry is what gets updated
<PackageVersion Include="uSync" Version="17.3.0" />