Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama develop · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to Ombi

Thank you for your interest in contributing to Ombi! This document provides guidelines and information for contributors.

## 🚀 Getting Started

### Prerequisites
- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0)
- [Node.js 20+](https://nodejs.org/)
- [Yarn](https://yarnpkg.com/)
- [Git](https://git-scm.com/)

### Development Setup

1. **Fork then clone the repository**
   ```bash
   git clone https://github.com/YOUR_USERNAME/Ombi.git
   cd Ombi
   ```

2. **Install dependencies**
   ```bash
   # Install backend dependencies
   dotnet restore src

   # Install frontend dependencies
   yarn --cwd ./src/Ombi/ClientApp install
   ```

3. **Run the application**
   ```bash
   # Start the backend
   dotnet run --project src/Ombi

   # In another terminal, start the frontend
   yarn --cwd ./src/Ombi/ClientApp start
   ```

4. **Run tests**
   ```bash
   dotnet test src
   ```

Alternatively, once you have forked and cloned the repository, you can run `./scripts/setup-dev.sh` from the Ombi directory and prerequisites will be tested and, when successful, Ombi backend, frontend and tests will be built/installed.

### Using the makefile
   ```bash
   # Run the backend
   make run-backend

   # Run the frontend
   make run-frontend

   # Run the backend tests
   make run-backend-tests

   # Run the frontend tests
   make run-frontend-tests

   # Install the frontend
   make install-frontend

   # Install the frontend tests
   make install-frontend-tests
   ```

## 📝 How to Contribute

### Reporting Issues
- Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.yml)
- Search existing issues before creating new ones
- Provide clear reproduction steps and logs

### Suggesting Features
- Feature requests are handled on [Feature Upvote](https://features.ombi.io)
- Search existing requests before creating new ones
- Vote on existing requests if similar to your idea

### Code Contributions

1. **Create a feature branch**
   ```bash
   git checkout -b feature/your-feature-name
   ```

2. **Make your changes**
   - Follow the coding standards (see below)
   - Write tests for new functionality
   - Update documentation if needed

3. **Test your changes**
   ```bash
   # Run all tests
   dotnet test src
   yarn --cwd ./src/Ombi/ClientApp test

   # Run linting
   yarn --cwd ./src/Ombi/ClientApp lint
   ```

4. **Commit your changes**
   ```bash
   git add .
   git commit -m "feat: add your feature description"
   ```

5. **Push and create a Pull Request**
   ```bash
   git push origin feature/your-feature-name
   ```

## 🎯 Coding Standards

### Backend (.NET)
- Follow C# naming conventions
- Use meaningful variable and method names
- Add XML documentation for public APIs
- Write unit tests for new functionality
- Use `async/await` for I/O operations

### Frontend (Angular)
- Follow Angular best practices
- Use standalone components
- Prefer signals over observables for state management
- Use `OnPush` change detection strategy
- Write component tests

### General
- Keep functions small and focused
- Use meaningful commit messages
- Follow the existing code style
- Add comments for complex logic

## 🧪 Testing

### Running Tests
Start the backend and frontend, then run the end-to-end tests:

```bash
# Backend unit tests
dotnet test ./src

# Frontend unit tests
yarn --cwd ./src/Ombi/ClientApp test

# E2E tests
yarn --cwd ./tests cypress:run
```

### Test Requirements
- New features must include tests
- Bug fixes should include regression tests
- Aim for good test coverage
- Tests should be fast and reliable

## 📋 Pull Request Process

1. **Before submitting**
   - Ensure all tests pass
   - Update documentation if needed
   - Rebase on latest develop branch
   - Squash commits if necessary

2. **PR Requirements**
   - Clear description of changes
   - Reference related issues
   - Include screenshots for UI changes
   - Ensure CI passes

3. **Review Process**
   - Maintainers will review your PR
   - Address feedback promptly
   - Be open to suggestions
   - Keep PRs focused and small

## ❓ Getting Help

- [Discord Community](https://discord.gg/Sa7wNWb)
- [Documentation](https://docs.ombi.app/)
- [FAQ](https://docs.ombi.app/info/faq/)

## 📜 Code of Conduct

Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).

## 🙏 Recognition

Contributors are automatically recognized in our README. Thank you for contributing!

---

**Happy coding! 🎉**