v15.0.0 - async all the things! and rip of the band-aid π©Ή
This is the main release of uSync for Umbraco v15. It contains a ton of breaking changes and updates, which means we are ready for the future π¨βπ
It also means that any code written to work alongside uSync will need some alterations to work with the v15 one. (but your code probably needed updates to work with Umbraco v14 and v15 anyway).
If v14 was all about the new Web Components based front end, v15 is all about the backend, changes to caches, internal services and all that stuff. it's been described as the closest thing to brain surgery on the cms by the umbraco team.
async all the things.
Where possible everything is now async which is why this release has over 22,000 lines of 'code' changed compared to v14. (I mean i don't think we have that much 'code' but it just means we've touched almost everything this time)
We have done this because well quite frankly its time but also because this is where Umbraco is heading / already at, and v15 is where some of the non-async stuff starts to drop away. So having everything async means we can move to that brave new world, and while on a super-fast SSD local development machine you might not notice, on slow, latency inducing cloud platforms things should be a lot smoother.
There are still little bits of Umbraco that are not async yet, but we have prepared usync for when they are so hopefully the transition for us will be less painful.
breaking bad.
Speaking of pain, moving to async we have broken a lot of stuff, we considered transition and then decided that we are not a development framework, we are a tool so we would take the hit, and while we are doing that, we would also break some more stuff.
We have marked many a thing (175 methods) as obsolete in v15, but even then, there are still a few things you might just have to do - to get things to actually work in uSync v15
So, in no particular order and almost certainly missing things out. If you have any code using uSyncs internals you will need to do the following:
- sync handlers and serializers are now async : you will need to move from the non-async to the async methods (e.g
FindItem
is obsolete and you need to implementFindItemAsync
) - ** dependency checkers and trackers are async:** e.g. moving to
CheckDependencyAsync
- ** service operations are async:** you get the idea,
Import
- still works but - is nowImportAsync
- **all services are now interfaced: ** any references to the uSync services should now be via the interface, also because visual studio moans at us every day the
u
has gone from uSync (e.guSyncService
is now accessed viaISyncService
)