๐Ÿค Contributing to Droid-ify

October 3, 2025 ยท View on GitHub

Thank you for your interest in contributing to Droid-ify! This document provides guidelines for contributors.

๐ŸŒŸ Ways to Contribute

๐Ÿ› Bug Reports

  • Search existing issues before creating new ones
  • Use bug report templates when available
  • Include system information and reproduction steps
  • Add screenshots when applicable

๐Ÿ’ก Feature Requests

  • Check for existing requests to avoid duplicates
  • Clearly describe the feature and its use case
  • Explain why it would be valuable

๐Ÿ”ง Code Contributions

  • Bug fixes - Fix reported issues
  • New features - Implement requested features
  • Performance improvements - Optimize existing code
  • Code refactoring - Improve code quality

๐ŸŒ Translations

Help translate Droid-ify via Weblate

๐Ÿ“– Documentation

Improve README, guides, and code comments

๐Ÿš€ Getting Started

  1. Fork and clone the repository
  2. Set up environment following Building from Source
  3. Create a branch for your contribution
  4. Make changes following our guidelines
  5. Test thoroughly on different Android versions
  6. Create a pull request

๐Ÿ“‹ Development Guidelines

Code Style

  • Follow Kotlin Coding Conventions
  • Use meaningful variable and function names
  • Prefer val over var when possible
  • Use Android Studio's default formatting (Ctrl+Alt+L)
  • 4 spaces for indentation, 120 character line limit
  • Organize imports and remove unused ones

Architecture

  • Follow Clean Architecture principles
  • Domain layer: Business logic and models
  • Data layer: Repository implementations and data sources
  • Presentation layer: UI components and ViewModels
  • Use Hilt for dependency injection
  • Write meaningful tests for business logic

Git Workflow

Use Conventional Commits format:

<type>: <description>

Types: feat, fix, docs, style, refactor, chore

Branch naming:

  • feature/description
  • fix/description
  • docs/description

๐Ÿ“ Pull Request Guidelines

Before Submitting

  • Run tests and ensure they pass
  • Update documentation if needed
  • Test on actual devices when possible
  • Rebase on latest main branch

Pull Request Content

  • Clear title summarizing the change
  • Description of what was changed and why
  • Issue reference (e.g., "Fixes #123")
  • Testing notes and screenshots for UI changes

๐Ÿท๏ธ Issue Labels

TypeDescription
bugSomething isn't working
enhancementNew feature or improvement
documentationDocumentation related
help wantedCommunity help needed
good first issueGood for newcomers
PriorityDescription
criticalUrgent fixes needed
highImportant issues
mediumStandard priority
lowNice to have

๐ŸŽฏ Project Priorities

Current Focus Areas

  1. Index V2 implementation - Modern repository format support
  2. Performance improvements - Faster sync and better UX
  3. Test coverage - More comprehensive testing
  4. Code quality - Refactoring and modernization

Areas Needing Help

  • Translation updates - Keep all languages current
  • Documentation improvements - Better guides and examples
  • Bug triage - Help categorize and prioritize issues
  • Testing on different devices - Ensure broad compatibility

๐Ÿ” Security

Do not report security vulnerabilities through public GitHub issues. Send details to iamlooker@proton.me instead.

๐Ÿ“ž Getting Help

  • GitHub Issues - Bug reports and feature requests
  • GitHub Discussions - General questions
  • Weblate - Translation questions

Search existing issues and documentation before asking for help.

๐Ÿ“š Resources

๐Ÿ“œ Code of Conduct

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.


Thank you for contributing to Droid-ify! ๐Ÿš€