Skip to content

Latest commit

 

History

History
81 lines (50 loc) · 2.41 KB

File metadata and controls

81 lines (50 loc) · 2.41 KB

Contributing to mailer

First of all, thank you for considering contributing to mailer! We appreciate your help in maintaining this community project.

Community & Conduct

This project is now a community-maintained effort. We expect all interactions—whether in Issues, Pull Requests, or Discussions—to be friendly, respectful, and constructive.

Please review our Code of Conduct before participating.

Reporting Issues

If you find a bug or have a feature request, please submit an issue.

When reporting a bug, please include:

  • A clear description of what you expected vs. what happened.
  • Reproducible code: A small, standalone Dart snippet is the best way to get a quick fix.
  • Environment details: Your Dart SDK version and mailer version.

The Development Process

1. Local Setup

  1. Fork and Clone the repository.
  2. Install dependencies:
dart pub get

2. Coding Standards

We enforce strict styling to keep the codebase clean:

  • Formatting: We use the default Dart formatter. Run dart format . before committing.
  • Analysis: We use dart analyze --fatal-infos. Ensure your code produces no warnings or hints.

3. Verification (Pre-flight Checks)

Our GitHub Actions will run these checks on every PR. You can run them locally to save time:

# 1. Check formatting
dart format --output=none --set-exit-if-changed .

# 2. Static analysis
dart analyze --fatal-infos

# 3. Run all tests
dart test

# 4. Verify package integrity
dart pub publish --dry-run

4. Submitting a Pull Request

  • Create a feature branch for your work.
  • If your change affects the API or fix a bug, **update the CHANGELOG.md** and bump the version in pubspec.yaml following Semantic Versioning.
  • Submit your PR against the master branch.

Release Process (for Maintainers)

mailer uses automated publishing via GitHub Actions and OIDC.

  1. Once a PR is merged into master, a maintainer creates a new Git tag (e.g., v7.1.0).
  2. Pushing the tag triggers the Publish workflow.
  3. A maintainer must manually approve the deployment in the GitHub Actions tab.
  4. Once approved, the package is automatically uploaded to pub.dev.

Thank you for helping make mailer the best email library for Dart!