Skip to content

Latest commit

 

History

History
46 lines (30 loc) · 1.65 KB

File metadata and controls

46 lines (30 loc) · 1.65 KB

Global instructions

  • When refactoring existing code, check relevant files for existing tests and update them if necessary.
  • When adding new code, prefer to write easily mockable and testable code, and include tests where applicable.
  • Limit the amount of comments you put in the code to a strict minimum. You should almost never add comments, except sometimes on non-trivial code, function definitions if the arguments aren't self-explanatory, and class definitions and their members.
  • Do not remove existing comments unless they are directly related to what you are changing.

Repository Structure

This is a monorepo containing three main projects:

  • firefox-ios/ - Firefox for iOS (main app, scheme: Fennec)
  • focus-ios/ - Firefox Focus for iOS (scheme: Focus)
  • BrowserKit/ - Shared Swift Package mostly used in Firefox

Common Commands

Build & Test

# Build for testing (Firefox)
fxios test

JavaScript User Scripts

Needed to be ran whenever we make JavaScript changes.

npm run build   # production build
npm run dev     # watch mode with source maps

Linting

SwiftLint runs automatically via Xcode build phases on the Client target. Install via brew install swiftlint. Configuration is in .swiftlint.yml. SwiftLint also runs whenever code is pushed to the remote, using hooks.

Pull requests

Pull requests needs to be opened with the provided PULL_REQUEST_TEMPLATE. Update relevant section. GitHub ticket number can be found at the bottom of the JIRA ticket.

Runbooks

  • Xcode version upgrade. When bumping the Xcode version used by CI/local builds, follow docs/xcode-upgrade.md.