The Platformer #30: 22e82dfc
Published: 2022-12-15 18:57:20

A big moment is within reach. It’s so close you can almost smell it.

## How it started
`commit 22e82dfc2a912f06425483f85eee78c90d99e603
Author: Elias Nahum 
Date:   Sat Nov 14 11:06:43 2020 -0300
Barebones code for v2`

This was the [first commit](https://github.com/mattermost/mattermost-mobile/commit/22e82dfc2a912f06425483f85eee78c90d99e603) on a clean, orphaned branch on our [mattermost-mobile repo](https://github.com/mattermost/mattermost-mobile). This commit kicked off the work on mobile v2. At that time — some of you may not have been born yet (or not yet born into Mattermost — which would include yours truly) — it had become clear a bit of a reset was required. Mobile v1 had grown organically, as many products have, out of a proof-of-concept. Some fundamental design decisions (like only supporting a single server, or how state management works) were foundational limitations and effectively impossible to fix iteratively. A more hard cut had to be made. Not a full rewrite per se, but close. This work kicked off inside of the mobile team, but after about a year also started to include a whole slew of engineers across the organization, as well as product and UX.

While we all had hoped this would be in a shippable state earlier, we are now very close.

## How it’s going
This week we have our _feature freeze_, meaning we will no longer be including any new features. The remaining time until GA (general availability) in the middle of December, will be spent fixing bugs. In the hypothetical case there are any :face_with_rolling_eyes:. If not, we’ll just chill, sit on the snowy beach chatting on Mattermost with our fancy new app.

A few weeks back we also changed our [main branch](https://community.mattermost.com/core/pl/5kedjug7d3yw9c91x1pdks8grc
) to point to v2, so people won’t accidentally contribute to a legacy code base. 

This is a major milestone and I’m very excited it’s here.

What do you all (who are not on the beta already) have to look forward to?

1. Multi-server support
2. Significantly improved performance (a lot of optimizations were done, and state management is more scalable by relying on an [actual database](https://github.com/Nozbe/WatermelonDB))
3. A whole slew of UX improvements
4. The fresh scent of a new mobile app, can you smell it?

While that may seem like an unimpressive list for 2 years of work, do take into account that we effectively rewrote every single line of code in the process. To TypeScript no less. TypeScript is the hot “new” stuff if you hadn’t heard. All the cool kids are usin’ it. So we’re cool now too.

Thanks to everybody involved across a whole slew of teams and roles inside of Mattermost, as well as from the community, both as testers, designers, and code contributors.

Now, let’s just whack those last few (hypothetical) bugs, and push this baby to the stores full of [Play](https://play.google.com/store/apps/details?id=com.mattermost.rn&hl=en&gl=US) and [Apples](https://apps.apple.com/us/app/mattermost/id1257222717).

In other fruity news...

## Cherry picks
On the **mobile platform** end, we’re full-time, all the time, focused on getting v2 to feature ready. This means we will not hit many of our originally planned goals (besides supporting v2 GA and including Sentry in it).

On the **web platform** end, we [merged the upgrade to React 17](https://github.com/mattermost/mattermost-webapp/pull/11558) (again) into master, and performed a bunch of (more minor) dependency updates while at it. We also continue our journey towards using [MUI](https://mui.com/)-based menus.

On the **desktop platform** end, we’re making progress on the [diagnostics project](https://github.com/mattermost/desktop/pull/2432) and preparing for the Desktop 5.2 release.

On the **server platform** side, we continue working on improvements in mmctl regarding import and export (better error messages, better user experience). We also are close to wrapping up proper [rollback support](https://github.com/mattermost/mattermost-server/pull/21779) for our database migrations. 

On the **QA platform** side, we’ve now updated Mattermod to include a link to the test dashboard (showing [e2e results nicely](https://automation-dashboard.vercel.app/cycle/269240)) after requesting e2e tests. An [example message can be seen here](https://github.com/mattermost/mattermost-webapp/pull/11689#issuecomment-1333120330). In our capacity of temporarily stepping in to support the Calls team with their testing needs, we’re going to do some interesting stuff around testing _actual_ calls. Months ago I was [still joking about this](https://community.mattermost.com/core/pl/yfkoic9esi8uzmmncwzm53ub7e), but now it’s going to happen: bots “talking” (likely producing tones at specific frequencies) to bots to make sure the signal transfers reliably. The future is near.

And that’s all for this week. Have a great weekend!