U4-4773 - IPublishedContentProperty has been remove between v6.1.6 and v6.2.0-beta - breaking change?

Created by Dirk 28 Apr 2014, 09:13:47 Updated by Stephan 25 Apr 2016, 07:20:38

Relates to: U4-4730

IPublishedContentProperty has become IPublishedProperty as result of IPublishedContent.GetPropertyValue<>() and IPublishedProperty does not exist in v6.1.6. Thus I think it is a breaking change.

Comments

Shannon Deminick 28 Apr 2014, 09:50:54

Our documentation states that changes to interfaces belonging to Umbraco.Core.Models are not considered a breaking change because a developer cannot implement these interfaces directly within Umbraco which gives us some flexibility to progress the codebase. However I am not familiar with this exact change (I will ask Stephen about it) but this is how the published content pipeline is implemented in v7 since 7.0 was released.

Have you upgraded to 6.2 and get YSODs because of this? I can only see this being an issue if there are extension methods created against this interface in your own codebase, though I suppose there could be packages that have relied on this, I'm not too sure.

Will see what Stephen says.


Dirk 28 Apr 2014, 10:04:40

Yes, I have upgrade to 6.2 and got a compile time error in my codebase. So not a big issue for me. Just want to report this.


Stephan 28 Apr 2014, 10:07:32

IPublishedContentProperty was renamed into IPublishedProperty for 6.2 and 7.0. Nobody really implements that interface, but code that does content.GetProperty(alias) and expects an IPublishedContentProperty in return will fail and needs to be recompiled. Just recompiled but... breaking change indeed.


Stephan 29 Apr 2014, 13:11:36

Have pushed come code that re-implements the IPublishedContentProperty interface for 6.2 -- will ''not'' get merged into 7, though. So it's really a backward compatibility fix. Dirk... would it be possible for you to test?


Dirk 29 Apr 2014, 14:30:44

Hi Stephan, looks good for me.


steve newstead 27 May 2014, 15:42:35

Hi guys,

Bit confused on this fix, we've got something in 6.1.6 which is using the IPublishedContentProperty to get the Version and Alias (using https://github.com/umbraco/Umbraco-CMS/blob/11c9abf35978557b94fc87dd43106c8c7364f517/src/Umbraco.Core/Models/IPublishedContentProperty.cs) So after upgrading to 6.2.0 these are gone from the interface, even after Stephan's fix, see

https://github.com/umbraco/Umbraco-CMS/blob/16d98488e4c8178a8193306df6c7f7c295f478e3/src/Umbraco.Core/Models/IPublishedContentProperty.cs

So, it seems like it's still a breaking change as you've removed some properties between versions. Can you advise on a workaround?

Thanks,

Steve


Stephan 27 May 2014, 16:53:44

Breaking change. Alias is now PropertyTypeAlias and Version is gone because it was meaningless for properties (returned Guid.Empty). Can add them back to 6.2.1 -- would that be required?


steve newstead 28 May 2014, 09:37:21

Thanks for the quick response, if all the properties have an empty guid then that's fine, I can code around that(just needed the version it because the IProperty interface demanded it, I don't think we're actually using it anywhere).

Thanks a lot.

Steve


Sebastiaan Janssen 28 May 2014, 09:55:54

"unbroken" in 320b53ae3cce6d2b0306c2b5c15ec5362af00c2f, will be released with 6.2.1 tomorrow.


Shannon Deminick 29 May 2014, 00:29:32

@sebastiaan so now there's both an 'Alias' and a 'PropertyTypeAlias' - which is still a breaking change so not sure your fix has solved anything since people would still need to update their implementation of IPublishedContent.


Stephan 28 Jun 2014, 12:35:19

It's not about ppl implementing IPublishedContent I think, more about ppl reading the "Alias" property and not wanting to update their code to read the "PropertyTypeAlias"?


Shannon Deminick 30 Jun 2014, 01:35:27

i guess, either way it's already been released like this.


Stephan 25 Apr 2016, 07:20:33

This is old - closing.


Priority: Normal

Type: Bug

State: Closed

Assignee:

Difficulty: Normal

Category:

Backwards Compatible: True

Fix Submitted:

Affected versions: 6.2.0

Due in version: 6.2.0

Sprint:

Story Points:

Cycle: