Thank you for your interest in contributing to OSM Notes API. This document provides guidelines and standards for contributing to the project.
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
If you find a bug:
- Check that it hasn't already been reported in Issues
- If not, create a new issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Node.js version and operating system
- Relevant logs if applicable
To suggest new features:
- Check that it hasn't already been suggested
- Create an issue with:
- Clear description of the feature
- Use case and justification
- Examples of how it would be used
- Fork the repository
- Create a branch from
main:git checkout -b feature/your-feature-name
- Develop your change following project standards
- Write tests for your code (TDD preferred)
- Ensure all tests pass:
npm test npm run lint npm run type-check - Commit your changes using Conventional Commits:
git commit -m "feat: add new feature X" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request with clear description
- TypeScript: Use TypeScript with strict mode
- ESLint: Code must pass
npm run lintwithout errors - Prettier: Code must be formatted (
npm run format) - Tests: New code must include tests (minimum 80% coverage)
- Documentation: Document public functions with JSDoc
Use Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Formatting, semicolons, etc. (no code changes)refactor:Code refactoringtest:Add or modify testschore:Build changes, dependencies, etc.
Examples:
git commit -m "feat: add user search endpoint"
git commit -m "fix: correct User-Agent validation"
git commit -m "docs: update README with examples"A good PR includes:
- Clear title describing the change
- Description explaining what and why
- References to related issues (closes #123)
- Tests validating the change
- Documentation updated if applicable
- PRs require at least one approval
- Maintainers will review:
- Code quality
- Test coverage
- Standards compliance
- Documentation
See docs/INSTALLATION.md for detailed instructions.
Quick summary:
# Clone and setup
git clone https://github.com/OSM-Notes/OSM-Notes-API.git
cd OSM-Notes-API
npm install
# Configure environment variables
cp .env.example .env
# Edit .env
# Run tests
npm test
# Development
npm run devIf you have questions about contributing, you can:
- Open an issue with the
questionlabel - Contact the maintainers
All contributions are valuable and will be recognized. Thank you for helping improve OSM Notes API!