Skip to content

docs: Add CONTRIBUTING.md guide for developer onboarding #477

Description

@ayushsri-dev

Summary

The Arvio repository currently lacks a dedicated contributor guide (CONTRIBUTING.md). While README.md provides clear instructions for setting up secrets and building the Android application, new contributors currently have no central guidance regarding repository branching conventions, commit standards, monorepo directory structure, local pre-PR verification steps (such as unit tests and Detekt static analysis), or pull request submission procedures.

Adding a root CONTRIBUTING.md file will establish clear onboarding guidelines, streamline PR reviews, and ensure local code quality checks are executed prior to CI submission.


Current Documentation State & Gaps

  1. Fragmented Monorepo Scope: The repository contains multiple sub-projects (app/, web/, iosApp/, netlify-auth-site/, resolver-worker/, supabase/). Sub-project READMEs exist for web/ and resolver-worker/, but there is no top-level index guiding contributors on component ownership.
  2. Undocumented Quality & Test Commands: Local commands for Android unit testing (./gradlew :app:testPlayDebugUnitTest), Detekt linting (./gradlew detekt), web linting (npm run lint), worker type-checking (npm run typecheck), and auth backend testing (npm test) are configured in package files but omitted from documentation.
  3. Missing Workflow Guidelines: Git branch naming patterns, commit message guidelines, and PR verification expectations are currently undocumented.

Proposed Solution

Create a standard CONTRIBUTING.md file in the root directory that provides:

  • Contribution Overview: General contribution rules and repository expectations.
  • Monorepo Directory Map: A high-level guide mapping repository subdirectories (app/, web/, iosApp/, etc.) to their respective roles.
  • Workflow Guidelines: Conventions for branching (feature/, fix/), commit messages, and PR descriptions.
  • Pre-PR Verification Checklist: Commands to run local builds, unit tests, and linting checks for Android and web sub-projects.
  • Submitting PRs & CI Expectations: Explanation of automated checks in .github/workflows/build-check.yml and pre-submission checklist.
  • References to Existing Documentation: Direct links to README.md for Android setup, secrets management, and content policies, ensuring zero redundant duplication.

Proposed Content Sections for CONTRIBUTING.md

  1. Welcome & Code of Conduct Overview
  2. Monorepo Structure & Component Map
  3. Prerequisites & Development Setup (linking to README.md, web/README.md, and resolver-worker/README.md)
  4. Development Workflow (Forking, Branching conventions, Commit guidelines)
  5. Local Quality Verification
    • Android: ./gradlew assembleSideloadDebug, ./gradlew :app:testPlayDebugUnitTest, ./gradlew detekt
    • Web: npm run lint, npm run build
    • Worker & Auth: npm run typecheck, npm test
  6. Content & Anti-Piracy Policy (referencing README.md)
  7. Pull Request Submission & CI Expectations
  8. Issue Reporting & Vulnerability Disclosure

Acceptance Criteria

  • CONTRIBUTING.md is created in the repository root.
  • All build, secret configuration, and legal policy references point directly to existing sections in README.md.
  • Local quality check commands (Detekt, unit tests, build checks) are documented accurately with exact Gradle and NPM invocations.
  • No existing files or documentation files are overwritten.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions