MetaMask / MetaMask/metamask-mobile

Consolidating Homebrew Commands

Open
#1,167 1 comment 0 reactions 0 assignees View on GitHub
community contributor experience tooling
Dominant language
TypeScript
Stars
3k
Forks
1.7k
Avg merge
1d 14h
Merged PRs (30d)
669

Description

Hey there!

I was going through some of the configuration files for CircleCI and noticed that we might be able to slim down our setup for contributors and CI by using a `Brewfile`. It functions much like a `Gemfile`, but with out the `.lock` portion.

Let's take this for example:
https://github.com/MetaMask/metamask-mobile/blob/f1d8e10db0dea3c779e0e89da22964930000c254/.circleci/config.yml#L83

```
...
- run:
name: Load dependencies
command:
|
brew update
brew install watchman
brew tap wix/brew
brew install --HEAD applesimutils
...
```

We'd be able to condense most of the brew install to just:

```
# Brewfile
brew install watchman
brew tap wix/brew
brew install --HEAD applesimutils
```

```
...
- run:
name: Load dependencies
command:
|
brew update
brew bundle
...
```

The `brew bundle` command can then be used anywhere in the project that might require all those to be installed such as new contributors or CI. The file can also serve as documentation for what's required in this project. Usage of this file is already part of Homebrew so we won't need to add anything extra to the project apart from this file itself.

[Thoughbot's post on Brewfile.](https://thoughtbot.com/blog/brewfile-a-gemfile-but-for-homebrew)

So what do all of you think?

Contributor guide

Open the contributing guide

Research direction

Start with the dependency-install step around line 83 of .circleci/config.yml and review the proposed Brewfile and brew bundle usage. Consolidate the listed Homebrew dependencies into the Brewfile and update the CI command so the project’s documented contributor and CI setup uses the same dependency list.

Written by the indexing model from the issue text.

Assessment

Domain
ci-cd, devops
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.