Developing Grouparoo on macOS Big Sur

engineering grouparoo 
2020-11-13 - Originally posted at
↞ See all posts

macOS Big Sur Screenshot

The newest release of macOS is out! Like any new OS release, there are plenty of new features... and new bugs to squash. The Grouparoo team uses develops on macOS, and we've taken notes about what we needed to do to continue being productive though the upgrade.

Update Homebrew and Databases

Like most macOS developers, we install our dependencies and database with Homebrew, a great package manager for macOS. The first thing I checked after the upgrade was if my Homebrew services were running. Well... they were not.

macOS Big Sur Screenshot

The good news is that newer versions of Homebrew work with macOS Big Sur - but you need to brew upgrade.

1brew upgrade

Pay attention - you'll likely be asked for your password. This command will update Homebrew itself and all of your installed packages to the latest version. This step is important, because many packages will need to be re-compiled with the newer version of XCode you now have.

Upgrading all of your packages is a big step. While not related to Big Sur, when I ran brew upgrade, I bumped my Postgres version from 11 to 13. When you upgrade your Postgres version, you need to migrate your databases so they work with new version. You can accomplish this via:

1brew services stop postgres 2brew postgresql-upgrade-database 3brew services restart postgres

Finally, the brew upgrade command will have fixed any file permissions that changed during the upgrade. Restart any other running Homebrew services you have running. In my case, I needed to restart Redis, as it couldn't write to the file system until after the upgrade.

1brew services restart redis

Rebuild Node.js packages

Node.js continued to function just fine after the macOS upgrade, but since XCode and various underlying libraries have been changed, I needed to re-compile any node_modules which had a compilation step. The easiest way to do this is just to re-install everything:

1rm -r node_modules 2npm install

At Grouparoo, we use pnpm to manage dependencies in our monorepo. In our case, there's a single command to rebuild our dependencies:

1pnpm install --force

And that's all it took to get back to work on macOS Big Sur!

Hi, I'm Evan

I write about Technology, Software, and Startups. I use my Product Management, Software Engineering, and Leadership skills to build teams that create world-class digital products.

Get in touch