Skip to content

Latest commit

 

History

History
97 lines (66 loc) · 3.01 KB

File metadata and controls

97 lines (66 loc) · 3.01 KB

Contributing to Flow

We are grateful for your interest in contributing to the Flow project! Contributions are essential for the project's growth and success. This document outlines the guidelines for contributing to ensure a smooth and collaborative development process.

Getting Started

This project is a monorepo managed using Yarn workspaces. It contains the following packages:

flow/
├── apps/
│   ├── mobile/          # React Native
│   └── desktop/         # Electron (planning)
├── packages/
│   ├── shared/          # Shared
│   ├── database/        # Database (planning)
│   ├── hooks/           # Custom React Hooks
│   ├── player/          # Player
│   └── store/           # State

Prerequisites

Ensure you have set up your Environment.

  • Node.js (v18 or higher)
  • Yarn Classic
  • For iOS development: macOS and Xcode
  • For Android development: Android Studio

Development Workflow

  1. Fork the Repository

    Fork the flow repository.

  2. Clone Your Fork

    git clone https://github.com/your-username/flow.git
    cd flow
  3. Install Dependencies

    pnpm install
  4. Install

    # iOS
    pnpm mobile ios
    
    # Android
    pnpm mobile android
  5. Start

    pnpm dev
    

Contribution Guidelines

Commit Guidelines

We follow the conventional commits specification for our commit messages:

  • fix: bug fixes, e.g. fix crash due to deprecated method.
  • feat: new features, e.g. add new method to the module.
  • refactor: code refactor, e.g. migrate from class components to hooks.
  • docs: changes into documentation, e.g. add usage example for the module..
  • test: adding or updating tests, e.g. add integration tests using detox.
  • chore: tooling changes, e.g. change CI config.

Our pre-commit hooks verify that your commit message matches this format when committing.

Linting and format

We strictly adhere to code quality and coding standards to maintain a high-quality codebase.

We use ESLint to lint and format code. So ensure your VScode install the recommend extensions.

Sending a pull request

Working on your first pull request? You can learn how from this free series: How to Contribute to an Open Source Project on GitHub.

When you're sending a pull request:

  • Prefer small pull requests focused on one change.
  • Verify that linters and tests are passing.
  • Review the documentation to make sure it looks good.
  • Follow the pull request template when opening a pull request.
  • For pull requests that change the API or implementation, discuss with maintainers first by opening an issue.