Skip to content

Latest commit

History

History
104 lines (78 loc) 路 2.93 KB

File metadata and controls

104 lines (78 loc) 路 2.93 KB

Contributing to atproto.dart

Thank you for your interest in contributing! Please read these guidelines carefully before submitting issues or pull requests.

Getting Started

Before contributing, please:

  1. Read our Code of Conduct
  2. Check existing issues and pull requests
  3. Set up your development environment

Types of Contributions

Bug Reports

  • Check existing issues before creating a new one
  • Provide clear reproduction steps and environment details

Bug Fixes

  • Reference the issue number with Fixes #xxxx in your PR
  • Include tests that verify the fix

New Features

  • Open an issue to discuss the feature before implementation
  • Wait for maintainer feedback to ensure alignment with project goals

Documentation

  • Improvements to docs, examples, and tutorials are always welcome
  • File an issue first for larger documentation changes

Contribution Requirements

All contributions must include:

  • Tests - Add or update tests for your changes
  • Documentation - Update relevant docs and examples
  • Conventional Commits - Use prefixes like feat:, fix:, docs:, etc.

Breaking changes must end with ! (e.g., feat!: Remove deprecated API)

Development Setup

Prerequisites

  • Dart SDK 3.0.0 or later
  • Git

Local Development

  1. Fork & Clone

    git clone https://github.com/YOUR_USERNAME/atproto.dart.git
    cd atproto.dart
  2. Install Dependencies

    dart pub get
  3. Run Tests

    dart test

Development Workflow

  1. Open an Issue - For significant changes, discuss your proposal first
  2. Create Branch - Create a feature branch from main
    git checkout -b feat/my-new-feature
  3. Make Changes - Implement your changes with clear commit messages
  4. Test Locally - Ensure all tests pass
  5. Push & PR - Push to your fork and open a pull request

Pull Request Guidelines

Use conventional commit prefixes in your PR title:

  • feat: - New features
  • fix: - Bug fixes
  • docs: - Documentation updates
  • test: - Test additions/updates
  • refactor: - Code refactoring

Examples:

  • feat: Add new Data model
  • fix: Handle null values in ATProto client
  • docs: Update README with examples

Code Style

  • Follow Dart style guide
  • Use dart format to format your code
  • Run dart analyze to check for issues
  • Maintain test coverage for new features

Questions?

If you have questions about contributing, feel free to: