Repo Transfer Project Retrospective

Summary

As a part of the decoupling of edX and tCRIL, we needed to move most of the Open edX related repos out of the edx GitHub organization into the openedx GitHub organization. This page captures our thoughts as we reflect on that work and learn from it.

Do Again

  • Reduce risk via phasing - sample a variety of less-critical things first

    • +1: [Dave]: I think the phasing of this was really well done, so props on that part.

  • Keep scope to a minimum by moving some things as they are and not blocking on harder long-term solutions (e.g. Paragon, edx-platform CI)

    • Don’t try to clean up old junk, just move it and clean up later

  • Keep good notes and spreadsheets about what needs to happen.

  • One person doing the in-the-moment work, another to manage communications in the moment.

  • click is awesome

  • Specialized scripts where each does one thing well was really nice.

  • Snapshot data

    • Makes it easier to build other tools using the data

    • Keeps history

  • Many communication channels with regular but not too many updates.

    • Slack (cross-org slack channel for comms)

    • e-mail to edX managers.

  • Stupid Questions beat Stupid Actions every time

Do Next Time

  • Have naming conventions for all files related to a domain to reduce click duplication.

  • Have someone with no admin permissions try to immediately merge a PR after moving an important repo

  • Maybe email more than just edX for future changes of this caliber or more discourse for broader schedule and plan communication.

  • More discourse communication to reach the community.

  • Understand our needs before we start trying to buy things.

    • Understand the cost of buying something.

Don’t Do Again

  • Use terraform to manage 10k resources +2

  • Don’t send self-congratulatory “all done!” emails until things have settled down for a few hours.

  • Part of me wonders how long it would have taken to do all of this by hand

Don’t Forget

  • You need civilians in the mix when testing manually to get the tests right. Org admins can’t simulate properly.

  • To write down all the steps so people can miss the event without their steps being forgotten. (edx-platform-ci secrets)

  • To test right away but also to test after some period of settling to see if new issues have arisen.

  • Having test users that better match the general user for testing purposes.

Kudos

  • Ned - for sending all the emails. +1

  • Dave - for having such a thorough transfer script.

  • Kyle - Separating the exports from the rest of the work was a cool idea that made making the downstream scripts easier.

  • Feanil - our fearless leader. +1+1

    • Seriously, great planning and outreach on this one.

  • All of the above - For including the new guy who isn’t familiar with anything

  • Carlos - For jumping into the deep end on just about everything.

  • edX SRE as a whole, but Adam and Joe for their in-time support.

  • Lou - For finding all the weird credentials we were missing.

 

Learning

  • Invest more in building a test plan and validation steps for post-move.

    • Test merging from the right kind of user.

    • Make sure you’ve got the test plan written down.