This is all very much theoretical, and open to suggestion/contribution! Once we’re happy with it I will post it to the dev list, but it’s much easier to incorporate suggestions here first. I have wiki’d this post, so edit as needed, or put suggestions in the replies and I will include them.
I will structure this as a timeline, I think that makes the most sense. I’m going for about 3 weeks notice, but that’s open to debate too.
T minus ? - consultation
Consultation phase, where we are right now. Discourse sits alongside the mailing list but is mainly for experimenting with. No fixed end date is currently planned, but current trends suggest a final migration of around about New Year.
T minus 3 weeks - decision taken, notifications
Migrate date is set as T+3 weeks. We’ll need to decide if we are migrating both lists, or just foreman-users. A poll on Discourse itself can be used.
Notification of the migration date is sent to the appropriate lists. This notification will outline the reasoning, link to the previous discussion, and provide initial orientation for users. Especially important is reassurance that no-one is going to get spammed by forum mail (they won’t, I checked).
Notification of migration to social media too, and the blog. Possibly use the website alert area too.
Update Google groups text description to point people at Discourse (no bounces or redirects yet)
T minus 3 weeks -> 2weeks - call for wider participation in maintaining, docs
Call for volunteers to be community moderators (if we don’t already have some from testing), and nominations for site admins. Based on feedback from testers, start writing documentation for the incoming users.
Discuss final Discourse configuration - categories (and who can post in them), default things to watch for new users, what groups & tags to have, the template for Support topics, incoming email addresses, etc. Potential here for a community hangout to go over config options.
Update support website to provide links to Discourse, but not as primary support channel yet.
T minus 2 weeks -> T minus 1 week - training & configuration
Give training to community moderators and site admins. Also train infra team on Discourse operation under the hood. Write down infra stuff in the wiki (as we do already for Redmine etc).
Ensure forum-side docs are written and been checked for accuracy. Ensure new users get directed to them via the global banner.
T minus 1 week -> T=0 - ready-check week
Ensure all previous points are well covered. Prepare PR for website covering Discourse links and docs.
Follow-up notification to the lists about migration date. Repeat orientation, etc. and remind people they can already claim their account if they would like to via the Forgot Password link. Ensure moderators/admins/infra are happy with the site config and operations around flagging and spam handling (if any, the list doesn’t get much).
Set up list archive to MailArchive / GMane / etc if not already done. (thanks to lzap for that)
T=0 - migration time!
To be done when things are generally quiet (1am GMT is probably ok, @Gwmngilfen is OK with doing this, screen-share pairing welcome).
- Set all incoming mail on Google Groups to be moderated.
- Send last mail to the list(s) announcing the final migration (this will be the last mail users receive / see in the UI)
- Perform final import of mailing list data
- Merge duplicate users where they’ve been detected
- This cannot be done earlier as the list import recreates them anyway
- Update website to link to Discourse instead of lists (possibly the frontpage Community link?) using earlier PR
- Announce on Twitter etc that the migration is complete
Downtime should only be an hour or so. User merging can happen later as & when new duplicates are found.
T plus a few days
Make sure new moderated posts are being copied to the forum, and users informed of why.
Hold another AMA for users to help get transitioned
Take subscriber list from foreman-announce and set those users to watch the release category for posts.
T + 1-2 weeks
Continue moving moderated posts, then switch the group to block all incoming mail.
All digests and watching/tracking is disabled for existing users. No spam should be seen. At some future time, we’ll want to re-enable digests, but this will be done with care, and after the migration has settled down.
The old lists can be kept indefinitely as a web archive - deleting the group deletes the archive.