Skip to content

Conversation

@vvolkgang
Copy link
Member

@vvolkgang vvolkgang commented Apr 23, 2025

🎟️ Tracking

PM-18414

📔 Objective

Splitting this change from the bigger CI restructuring branch.

Address a recurring dev experience gap by having a list of homebrew dependencies that can be used by our devs locally and in our CI - dependencies were regularly missed while setting up local dev environments.

Also looked into pinning dependency versions, we would need to create our own tap. References:

  • Homebrew - Brewfile: "Homebrew is a rolling release package manager so it does not support installing arbitrary older versions of software."
  • Homebrew - Versions: "Homebrew’s versions should not be used to “pin” formulae to your personal requirements. You should instead create your own tap for formulae you or your organisation wish to control the versioning of, or those that do not meet the above standards."

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

@vvolkgang vvolkgang requested review from a team and matt-livefront as code owners April 23, 2025 21:08
Copy link
Contributor

@KatherineInCode KatherineInCode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Part of me wonders if we should put the brew bundle in the bootstrap.sh script, so that when someone clones the repo we just say run that script and it'll install everything necessary? Though that could get tedious with how often we run that script when e.g. switching branches and such.

@codecov
Copy link

codecov bot commented Apr 23, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 85.95%. Comparing base (b60a6b2) to head (1cfe82f).
Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1525      +/-   ##
==========================================
- Coverage   89.68%   85.95%   -3.74%     
==========================================
  Files         777      988     +211     
  Lines       48965    59221   +10256     
==========================================
+ Hits        43916    50902    +6986     
- Misses       5049     8319    +3270     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link
Contributor

github-actions bot commented Apr 23, 2025

Logo
Checkmarx One – Scan Summary & Details2a54e569-245c-4cf4-87ef-ba9d11767d2f

Great job, no security vulnerabilities found in this Pull Request

@vvolkgang
Copy link
Member Author

Part of me wonders if we should put the brew bundle in the bootstrap.sh script, so that when someone clones the repo we just say run that script and it'll install everything necessary? Though that could get tedious with how often we run that script when e.g. switching branches and such.

@KatherineInCode Initially had that but ended up scrapping it, it would slow things down for everyone. But there's a brew bundle check we could use instead! Added it. Output examples:

:rage4: Missing dependency:

➜  ios git:(...) ✗ ./Scripts/bootstrap.sh        
brew bundle can't satisfy your Brewfile's dependencies.
Satisfy missing dependencies with `brew bundle install`.

:shipit: All dependencies installed:

➜  ios git:(...) ✗ ./Scripts/bootstrap.sh
The Brewfile's dependencies are satisfied.
🌱 5 packages up to date
⚙️  Generating plists...
⚙️  Generating project...
⚙️  Writing project...
Created project at /Users/af/code/bw/ios/BitwardenKit.xcodeproj
⚙️  Generating plists...
⚙️  Generating project...
⚙️  Writing project...
Created project at /Users/af/code/bw/ios/Bitwarden.xcodeproj
⚙️  Generating plists...
⚙️  Generating project...
⚙️  Writing project...
Created project at /Users/af/code/bw/ios/Authenticator.xcodeproj
✅ Bootstrapped!
✅ Xcode version 16.3 matches required version

@vvolkgang vvolkgang enabled auto-merge (squash) April 23, 2025 21:40
@vvolkgang vvolkgang added the t:ci Updates to automated workflows label Apr 23, 2025
Copy link
Contributor

@KatherineInCode KatherineInCode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the brew bundle check! Looks good to me!

@vvolkgang vvolkgang merged commit e67e818 into main Apr 23, 2025
12 checks passed
@vvolkgang vvolkgang deleted the monorepo/pin-brew branch April 23, 2025 21:43
@vvolkgang vvolkgang changed the title [PM-18414] CI restructuring #3 - Add Brewfile with version pinning [PM-18414] CI restructuring #3 - Add Brewfile Apr 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t:ci Updates to automated workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants