Thank you for your interest in contributing! Please read these guidelines carefully before submitting issues or pull requests.
Before contributing, please:
- Read our Code of Conduct
- Check existing issues and pull requests
- Set up your development environment
- Check existing issues before creating a new one
- Provide clear reproduction steps and environment details
- Reference the issue number with
Fixes #xxxxin your PR - Include tests that verify the fix
- Open an issue to discuss the feature before implementation
- Wait for maintainer feedback to ensure alignment with project goals
- Improvements to docs, examples, and tutorials are always welcome
- File an issue first for larger documentation changes
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)
- Dart SDK 3.0.0 or later
- Git
-
Fork & Clone
git clone https://github.com/YOUR_USERNAME/atproto.dart.git cd atproto.dart -
Install Dependencies
dart pub get
-
Run Tests
dart test
- Open an Issue - For significant changes, discuss your proposal first
- Create Branch - Create a feature branch from
maingit checkout -b feat/my-new-feature
- Make Changes - Implement your changes with clear commit messages
- Test Locally - Ensure all tests pass
- Push & PR - Push to your fork and open a pull request
Use conventional commit prefixes in your PR title:
feat:- New featuresfix:- Bug fixesdocs:- Documentation updatestest:- Test additions/updatesrefactor:- Code refactoring
Examples:
feat: Add new Data modelfix: Handle null values in ATProto clientdocs: Update README with examples
- Follow Dart style guide
- Use
dart formatto format your code - Run
dart analyzeto check for issues - Maintain test coverage for new features
If you have questions about contributing, feel free to:
- Open a discussion
- Ask in an issue
- Contact the maintainers