I'm currently planning on how to package my Publishing content types in a WSP to make deployment in production easier. I came a cross the following choices 1- create a feature receiver and programmatically create the content type and its fields 2- use the elements.XML to provision the content types.
Now I feel that the elements.XML solution is more like a standard solution, although I think that the programmatic one is more maintainable since we have to package around 10 content types with a lot of fields inside.
So, from your experience what is the best option? also, what if we wanted to do some change to our content types, what is the option that is more upgrade friendly?