Skip to main content

Contributing

We welcome contributions to Pulsarr.

Getting Started

  1. Fork the repository to your GitHub account
  2. Create a branch following naming conventions (see below)
  3. Make changes and ensure code quality
  4. Submit a pull request to the develop branch

Branch Naming

TypeFormatExample
Featurefeature/descriptionfeature/multi-instance-sync
Bug fixfix/descriptionfix/notification-delivery
Refactorrefactor/descriptionrefactor/status-service
Docsdocs/descriptiondocs/api-examples
Performanceperf/descriptionperf/query-optimization

Code Quality

npm run fix          # Safe lint fixes
npm run fix:unsafe # Import organization (if CI fails)
npm run typecheck # TypeScript checks

Commit Messages

This project follows Conventional Commits with commitlint.

Format

type(scope): description

[optional body]

Types

TypePurpose
featNew features or functionality
fixBug fixes
refactorCode changes without functional impact
perfPerformance improvements
docsDocumentation updates
testAdding or updating tests
choreMaintenance tasks

Examples

feat(router): add streaming service routing condition
fix(client): resolve variable shadowing in mutation handlers
refactor(watchlist-status): extract unified status sync module
perf(junction): use Set for O(1) planned primary lookups

Guidelines

  • Use lowercase for type, scope, and description
  • Keep description under 72 characters
  • Use present tense ("add" not "added")
  • Scope should identify the affected module/area
  • Reference issues when applicable: fixes #123

API Development

  1. Define request/response schemas using Zod
  2. Include OpenAPI tags and descriptions in route definitions
  3. OpenAPI docs auto-generate during CI build

Pull Requests

  • Describe what changes accomplish
  • Link related issues (e.g., "Fixes #123")
  • Include screenshots for visual changes
  • Update documentation if needed

Questions?

Open an issue with the "question" label.