MetaMask / MetaMask/metamask-mobile
Consolidating Homebrew Commands
- 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
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