# Contribuir a Repomix

¡Gracias por tu interés en **Repomix**! 🚀 Nos encantaría contar con tu ayuda para mejorarlo aún más. Esta guía te ayudará a comenzar a contribuir al proyecto.

## Cómo contribuir

- **Marcar el repositorio con una estrella**: ¡Muestra tu apoyo [marcando el repositorio con una estrella](https://github.com/yamadashy/repomix)!
- **Crear un issue**: ¿Has encontrado un error? ¿Tienes una idea para una nueva función? Háznoslo saber [creando un issue](https://github.com/yamadashy/repomix/issues).
- **Enviar un Pull Request**: ¿Has encontrado algo para arreglar o mejorar? ¡Envía un PR!
- **Difundir la palabra**: Comparte tu experiencia con Repomix en redes sociales, blogs o con tu comunidad tecnológica.
- **Usar Repomix**: Los mejores comentarios provienen del uso en el mundo real, así que no dudes en integrar Repomix en tus propios proyectos.
- **Patrocinar**: Apoya el desarrollo de Repomix [convirtiéndote en patrocinador](https://github.com/sponsors/yamadashy).

## Inicio rápido

```bash
git clone https://github.com/yamadashy/repomix.git
cd repomix
npm install
```

## Comandos de desarrollo

```bash
# Ejecutar CLI
npm run repomix

# Ejecutar pruebas
npm run test
npm run test-coverage

# Linting de código
npm run lint
```

## Estilo de código

- Usa [Biome](https://biomejs.dev/) para linting y formateo
- Inyección de dependencias para la testabilidad
- Mantén los archivos por debajo de las 250 líneas
- Agrega pruebas para las nuevas funciones

## Pautas para Pull Requests

1. Ejecuta todas las pruebas
2. Pasa las comprobaciones de linting
3. Actualiza la documentación
4. Sigue el estilo de código existente

## Configuración de Desarrollo

### Requisitos previos

- Node.js ≥ 18.0.0
- Git
- npm
- Docker (opcional, para ejecutar el sitio web o el desarrollo en contenedores)

### Desarrollo local

Para configurar Repomix para desarrollo local:

```bash
# Clonar el repositorio
git clone https://github.com/yamadashy/repomix.git
cd repomix

# Instalar dependencias
npm install

# Ejecutar CLI
npm run repomix
```

### Desarrollo con Docker

También puedes ejecutar Repomix usando Docker:

```bash
# Construir imagen
docker build -t repomix .

# Ejecutar contenedor
docker run -v ./:/app -it --rm repomix
```

### Estructura del proyecto

El proyecto está organizado en los siguientes directorios:

```
src/
├── cli/          # Implementación de CLI
├── config/       # Manejo de configuración
├── core/         # Funcionalidad principal
│   ├── file/     # Manejo de archivos
│   ├── metrics/  # Cálculo de métricas
│   ├── output/   # Generación de salida
│   ├── security/ # Comprobaciones de seguridad
├── mcp/          # Integración de servidor MCP
└── shared/       # Utilidades compartidas
tests/            # Pruebas que reflejan la estructura src/
website/          # Sitio web de documentación
├── client/       # Frontend (VitePress)
└── server/       # API de Backend
```

## Desarrollo del sitio web

El sitio web de Repomix está construido con [VitePress](https://vitepress.dev/). Para ejecutar el sitio web localmente:

```bash
# Requisitos previos: Docker debe estar instalado en su sistema

# Iniciar el servidor de desarrollo del sitio web
npm run website

# Acceder al sitio web en http://localhost:5173/
```

Al actualizar la documentación, solo necesita actualizar primero la versión en inglés. Los mantenedores se encargarán de las traducciones a otros idiomas.

## Proceso de lanzamiento

Para mantenedores y colaboradores interesados en el proceso de lanzamiento:

1. Actualizar versión
```bash
npm version patch  # o minor/major
```

2. Ejecutar pruebas y construcción
```bash
npm run test-coverage
npm run build
```

3. Publicar
```bash
npm publish
```

Las nuevas versiones son gestionadas por el mantenedor. Si crees que es necesario un lanzamiento, abre un issue para discutirlo.

## ¿Necesitas ayuda?

- [Abre un issue](https://github.com/yamadashy/repomix/issues)
- [Únete a Discord](https://discord.gg/wNYzTwZFku)
