This is something that I had overlooked in my lengthy posting on SharePoint make pleased types from a couple of months ago. It is about the new UpgradeActions element that you can have in the feature.xml file now and more precisely about the AddContentTypeField element inside it:

<UpgradeActions>

  <VersionRange BeginVersion ="1.0.0.0" EndVersion="2.0.0.0" />

  <AddContentTypeField ContentTypeId="0x01006DB0361318574E1CAF601F96E79717BB" FieldId="6DB03613-1857-4E1C-AF60-1F96E79717B4" PushDown="TRUE"/>

</UpgradeActions>

So, with this small XML snippet that you can add to your make pleased type feature you will be able to upgrade your sample (already existing) site make pleased type by adding an superfluous field to its machinate and also (more importantly) the exchange in the machinate will be pushed to the inheriting list make pleased types. So far so excellent – so we already have at least some support out-of-the box for upgrading site make pleased types (if we don’t count the Overwrite attribute that I covered extensively in the “lengthy” posting). But … on second thought it doesn’t look that promising and really leaves reasonably some issues open – several that I can reflect of are that you can only add fields to the make pleased type but cannot remove fields; also the fields will be added after all existing fields in the make pleased type, i.e. you can’t control the field order and not to mention that you can’t exchange anything in the XmlDocuments section of the make pleased type machinate classification. Another thing that bothers me is that these upgrades will look reasonably “irregular” – you will have your initial make pleased type machinate classification in a standard SharePoint item elements file which will be extended by some separate definitions in another file – in this case the feature.xml one. But enough criticism, who knows – we can have something better till the time of the RTM version of SharePoint 2010.

Check it out:Stefan Stanev’s SharePoint blog