It makes more sense to me to build a new portal channel and launch that, then drive users from old channels to new?
You could re-release your channels as placeholders with the new channel as their Upgrade Channel. The placeholder channels would just inform the user of the change and then do an In-Channel Upgrade to the new channel.
What happens to registry entries?
Registry entries are based on developer ID, so if the new channel was signed with the same key, the registry entries will still be there. I'd guess there might be a problem if there were two channels A & B that used different keys and the goal was to migrate them to a new channel C.
I think In-Channel Upgrade is fully described in the roChannelStore page, with additional information in ifChannelStore and elsewhere. There is even sample code in the roChannelStore page. I just searched for "upgrade" in the docs. Please let me know if you have ideas for making this information more accessible.
- Each channel may have one "In-Channel Upgrade" channel associated with it. (src ifChannelStore)
- When any channel is created, it can be associated with another channel, its "In-Channel Upgrade" channel. (src roChannelStore)
- Purchasing an In-Channel Upgrade causes the currently running Channel to be replaced with another, "upgrade" channel, specified by the Channel developer. (src Channel Packaging And Publishing)
- If the purchase was completed successfully [..] then the new channel has already been downloaded and installed on the unit, and the currently running channel will be automatically deleted when the user exits it. (src ifChannelStore)
Would it be fair to assume that "purchase" mentioned above might be of value $0, i.e. free upgrade?
And also that if X has done upgrade to U, then Y can do upgrade to U faithfully (existing U registry won't be lost, Y will be uninstalled)?