Skip to content

Latest commit

 

History

History
112 lines (76 loc) · 2.52 KB

CONTRIBUTING.md

File metadata and controls

112 lines (76 loc) · 2.52 KB

Contributing to Iffy

Thanks for your interest in contributing! This document will help you get started.

Environment

For detailed instructions on setting up your local development environment, please refer to the README.

Development

  1. Create your feature branch
git checkout -b feature/your-feature
  1. Run the development server
npm run dev
  1. (Optionally) Run asynchronous jobs
npm run dev:inngest
  1. Run API (unit) tests
npm run test
  1. Run app (end-to-end) tests
npm run shortest
npm run shortest -- --no-cache # with arguments

Testing Guidelines

  • We use Vitest for our unit test suite
  • We use Shortest for end-to-end tests
  • Don't mock database queries in tests, rely on the seed data or inserting test data as part of the test

Pull Request

  1. Update documentation if you're changing behavior
  2. Add or update tests for your changes
  3. Make sure all tests pass
  4. Request a review from maintainers
  5. After reviews begin, avoid force-pushing to your branch
    • Force-pushing rewrites history and makes review threads hard to follow
    • Don't worry about messy commits - we squash everything when merging to main
  6. The PR will be merged once you have the sign-off of at least one maintainer

Style Guide

  • Write in TypeScript
  • Follow the existing code patterns
  • Use clear, descriptive variable names

Writing Bug Reports

A great bug report includes:

  • A quick summary and/or background
  • Steps to reproduce
    • Be specific!
    • Give sample code if you can
  • What you expected would happen
  • What actually happens
  • Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

Writing commit messages

We use the Conventional Commits specification.

A commit message should be structured as follows:

type(scope): title

description

Where type can be:

  • feat: new feature or enhancement
  • fix: bug fixes
  • docs: documentation-only changes
  • test: test-only changes
  • refactor: code improvements without behaviour changes
  • chore: maintenance/anything else

Example:

feat(cli): Add mobile testing support

Help

  • Check existing discussions/issues/PRs before creating new ones
  • Start a discussion for questions or ideas
  • Open an issue for bugs or problems

License

By contributing, you agree that your contributions will be licensed under the Iffy Community License.