Description
2 | Objective: Improve quality of life for core monorepo collaborators
Context
As a team that serves other teams within MetaMask, we want other teams to feel confident in using the infrastructure, processes, and tools we’ve created around the monorepo. This way they are able to not only achieve their own objectives by shipping features, but also help the organization by expanding the size of the shared codebase. If it turns out that this is not easy to do, then we will use a portion of this quarter to make improvements to the monorepo.
KR-2: Other teams can safely create new partial releases
One area we know we can target for improvements is the release process for the monorepo. At the moment, releases are effectively atomic. In order to ensure that no package refers to a version of another package that has yet to be published, the command-line tool we developed to create releases includes all of the packages that have been changed since the previous release by default and warns users if they try to exclude them. However, this creates an impediment, as ultimately, it requires that every team be aware of the changes that every other team has made to the monorepo. This is an unrealistic and unnecessary expectation. We want to make it possible for engineers to create releases that only include the packages that they care about in a manner that still prevents unwanted breakages, while decreasing the mental overhead.