Profile picture
Pavithra @ SFO @PKodmad
, 12 tweets, 7 min read Read on Twitter
@swyx A small example for our team was upgrading to React 16.3. The React team itself has done a great job. But for us to upgrade on our large codebase, we had to do the following things.
@swyx 1. Design system aka Atlaskit has to update to React 16.3. This meant within the design system, all interdependent components had to update to their latest versions. They had to support both React 16.2 and 16.3 during this intermediary phase.
@swyx 2. React team did a great job smoothening the release with codemods which were useful. But our tests used Enzyme, which does not support 16
github.com/airbnb/enzyme/…
@swyx So @pete_gleeson spent a shit ton of time trying to contact enzyme and react developers to comprehensively fix this and basically rewrote enzyme.
github.com/airbnb/enzyme/…
@swyx @pete_gleeson But there was no response on enzyme, so we are using a fork now. Can't have existing tests breaking right?
github.com/petegleeson/en…
@swyx @pete_gleeson 3. Now products using the design system have to upgrade to React 16.3
So our frontend platform engineers bump all design system components, run visual regression tests based on storybooks and get all the inconsistencies fixed by the respective feature owners.
@swyx @pete_gleeson 4. Once the design system components are updated, we can finally update to React 16.3, but its a large codebase with millions of active users and > 100 devs working on it. So after debate, it is decided that branch with 16.2 and master with 16.3 created.
@swyx @pete_gleeson This means, feature releases will only go to users on the 16.3 master during rollout and those users on 16.2 branch dont receive it. There's more debate but a consensus is reached.
@swyx @pete_gleeson 5. One of our engineers writes a utility to make sure theres a universal error boundary and sentry is receiving any errors being reported in the 16.3 master. Roll out is done incrementally over 3 days with close monitoring. Thankfully there are no red flags!
@swyx @pete_gleeson So yay! months together for a smooth upgrade. Now if the upgrade goes wrong, any of the above steps may take longer or upgrade is cancelled.
@swyx @pete_gleeson And this is one of the many projects happening on the codebase. There's feature releases, analytics frameworks, experiments, SSR, SPA, jsp -> React migration and god knows how many more intiatives happening on a single codebase.
@swyx @pete_gleeson A small team with a small user base does not need to do much of the above. But a large product like Jira moves slowly even with >100 devs but we definitely build some resilient shit!
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to Pavithra @ SFO
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member and get exclusive features!

Premium member ($3.00/month or $30.00/year)

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!