In short, I'm on Umbraco 8.18.5 and have various uSync packages installed (linked ticket mentions versions) and was unable to upgrade to Umbraco 8.18.7 due to an error that says "Broken composer dependency". At one point, I also tried upgrading all the uSync dependencies to the most recent supported on Umbraco 8, but that resulted in the same error.
It seems like the issue originates from this class in my code:
[ComposeAfter(typeof(uSyncPublishComposer))]
public class Composer : IComposer
{
public void Compose(Composition composition)
{
/* Removed probably irrelevant code. */
}
}
A workaround was to add a RuntimeLevel attribute like this:
[RuntimeLevel(MinLevel = RuntimeLevel.Run)]
[ComposeAfter(typeof(uSyncPublishComposer))]
public class Composer : IComposer
{
public void Compose(Composition composition)
{
/* Removed probably irrelevant code. */
}
}
I'm curious why adding this attribute seemed to be necessary to run the upgrade. I took at look at uSyncPublishComposer and all the ancestors (based on the ComposeAfter relationship) and didn't see RuntimeLevel specified on any of those, and so I wouldn't think it would be necessary on my composer either.
Unable to Upgrade to Umbraco 8.18.7 Due to "Broken composer dependency" Error From uSync-Related Code
See here for a full discussion: https://github.com/umbraco/Umbraco-CMS/issues/14066
In short, I'm on Umbraco 8.18.5 and have various uSync packages installed (linked ticket mentions versions) and was unable to upgrade to Umbraco 8.18.7 due to an error that says "Broken composer dependency". At one point, I also tried upgrading all the uSync dependencies to the most recent supported on Umbraco 8, but that resulted in the same error.
It seems like the issue originates from this class in my code:
A workaround was to add a
RuntimeLevel
attribute like this:I'm curious why adding this attribute seemed to be necessary to run the upgrade. I took at look at
uSyncPublishComposer
and all the ancestors (based on theComposeAfter
relationship) and didn't seeRuntimeLevel
specified on any of those, and so I wouldn't think it would be necessary on my composer either.Hi,
I think IUserComposer in V8 has the runtime level restriction on it so that's where it is coming from.
is working on a reply...