Guía de Contribución
Nos encantaría aceptar tus parches y contribuciones a este proyecto. Aprende cómo empezar y hacer tu primera contribución.
Antes de Comenzar
Requisitos importantes antes de contribuir
Sign the CLA
Contributions must be accompanied by a Contributor License Agreement (CLA). You retain the copyright to your contribution.
Sign the CLA →Community Guidelines
This project follows Google's Open Source Community Guidelines. Please review them before contributing.
Read Guidelines →Formas de Contribuir
Hay muchas formas de contribuir al proyecto Gemini CLI
Contribuciones de Código
Fix bugs, add features, improve performance
- Correcciones de bugs y parches
- Nuevos comandos CLI
- Optimizaciones de rendimiento
- Refactorización de código
- Mejoras de pruebas
- Mejoras en manejo de errores
Documentación
Improve docs, add examples, create tutorials
- Corregir errores de documentación
- Agregar ejemplos de uso
- Mejorar documentación API
- Crear tutoriales y guías
- Actualizar archivos README
- Agregar comentarios de código
Reporte de Problemas
Report bugs, suggest features, provide feedback
- Reportes de bugs con pasos de reproducción
- Solicitudes de características y propuestas
- Reportes de problemas de rendimiento
- Reportes de vulnerabilidades de seguridad
- Retroalimentación de experiencia de usuario
- Problemas de compatibilidad
Soporte Comunitario
Help users, participate in discussions
- Responder preguntas en issues
- Ayudar con solución de problemas
- Revisar pull requests
- Probar versiones beta
- Compartir ejemplos de uso
- Mentorear nuevos contribuidores
Pautas de Pull Request
Sigue estas pautas para ayudarnos a revisar y fusionar tus PR rápidamente
Enlazar a un Issue Existente
All PRs should be linked to an existing issue. For bug fixes, link to the bug report. For features, link to an approved feature request.
Manténlo Pequeño y Enfocado
Create small, atomic PRs that address a single issue. Don't bundle multiple unrelated changes.
Usa PR Borrador para Trabajo en Progreso
Use GitHub's Draft Pull Request feature for early feedback before formal review.
Asegúrate de que Todas las Verificaciones Pasen
Run npm run preflight before submitting to ensure all tests, linting, and style checks pass.
Actualizar Documentación
If your PR introduces user-facing changes, update the relevant documentation in the /docs directory.
Escribir Mensajes de Commit Claros
Follow Conventional Commits standard for your commit messages and PR descriptions.
Configuración del Entorno de Desarrollo
Guía paso a paso para configurar tu entorno de desarrollo
Prerrequisitos
Set up your development environment
# Install Node.js ~20.19.0 (required for development) # Use nvm to manage Node.js versions nvm install 20.19.0 nvm use 20.19.0
Clone and Setup
Get the source code and install dependencies
git clone https://github.com/google-gemini/gemini-cli.git cd gemini-cli npm install npm run build
Enable Sandboxing (Optional)
Set up sandboxing for enhanced security
# Add to your ~/.env file echo "GEMINI_SANDBOX=true" >> ~/.env # Build with sandbox container npm run build:all
Run and Test
Start the CLI and run tests
# Start Gemini CLI from source npm start # Run all tests npm run test # Run integration tests npm run test:e2e
Quality Checks
Ensure code quality before submitting
# Run all quality checks npm run preflight # Format code npm run format # Lint code npm run lint
Depuración y Pruebas
Herramientas y técnicas para depurar y probar tus contribuciones
Depuración VS Code
Depura el CLI de forma interactiva en VS Code con F5 o usa la configuración de depuración.
# Iniciar en modo depuración npm run debug # O usa la tecla F5 de VS Code # con configuración "Attach"
React DevTools
Depura la interfaz de usuario basada en React del CLI usando React DevTools versión 4.x.
# Iniciar en modo desarrollo DEV=true npm start # Instalar React DevTools npm install -g react-devtools@4.28.5 react-devtools
Depuración Sandbox
Depura dentro del contenedor sandbox para desarrollo relacionado con seguridad.
# Depurar dentro del sandbox DEBUG=1 gemini # Habilitar depuración sandbox GEMINI_SANDBOX=true npm start
Tipos de Pruebas
Ejecuta diferentes tipos de pruebas para asegurar que tus cambios funcionen correctamente.
# Pruebas unitarias npm run test # Pruebas de integración npm run test:e2e # Todas las verificaciones de calidad npm run preflight
¿Listo para Contribuir?
Comienza tu viaje de contribución con estos recursos
Recursos Adicionales
Enlaces útiles y documentación para contribuidores
Documentación de Arquitectura
Aprende sobre la estructura y arquitectura del proyecto
Leer Arquitectura →