¡Gracias por tu interés en contribuir a Amoxcalli! 🎉
Esta guía te ayudará a entender cómo puedes colaborar en nuestros proyectos Open Source.
- Código de Conducta
- Uso en Otros Repositorios
- ¿Cómo Puedo Contribuir?
- Proceso de Contribución
- Estándares de Código
- Commits y Pull Requests
- Reportar Bugs
- Sugerir Mejoras
Este proyecto se rige por nuestro Código de Conducta. Al participar, se espera que respetes estos lineamientos.
Esta guía de contribución aplica para todos los repositorios de Amoxcalli. Si estás creando un nuevo repositorio o actualizando uno existente, debes hacer referencia a estos archivos centralizados.
Hay muchas formas de contribuir a Amoxcalli:
- Arreglar bugs reportados en los issues
- Implementar nuevas features
- Mejorar la documentación
- Refactorizar código existente
- Agregar o mejorar tests
- Reportar bugs
- Sugerir nuevas features
- Mejorar la documentación
- Responder preguntas en Discussions
- Revisar Pull Requests de otros colaboradores
- Compartir el proyecto en redes sociales
# Haz fork del repositorio desde GitHub
# Luego clona tu fork
git clone https://github.com/TU_USUARIO/NOMBRE_DEL_REPO.git
cd NOMBRE_DEL_REPO
# Agrega el repositorio original como upstream
git remote add upstream https://github.com/AmoxcalliDev/NOMBRE_DEL_REPO.gitCrea una rama descriptiva para tu trabajo:
# Para nuevas funcionalidades
git checkout -b feature/nombre-descriptivo
# Para arreglar bugs
git checkout -b fix/descripcion-del-bug
# Para documentación
git checkout -b docs/que-documentas- Escribe código limpio y legible
- Sigue las convenciones del proyecto
- Agrega comentarios cuando sea necesario
- Asegúrate de que el código funcione correctamente
Antes de hacer commit, asegúrate de que:
- El código compile/ejecute sin errores
- Los tests existentes pasen
- Hayas agregado tests para tu nuevo código (si aplica)
- La documentación esté actualizada
Usa mensajes de commit descriptivos en español o inglés (lo que prefieras):
# En español
git add .
git commit -m "feat: agrega funcionalidad de autenticación"
# En inglés
git add .
git commit -m "feat: add authentication functionality"Usamos Conventional Commits:
feat:Nueva funcionalidad / New featurefix:Corrección de bug / Bug fixdocs:Cambios en documentación / Documentation changesstyle:Formateo, puntos y comas faltantes, etc. / Formatting, missing semicolons, etc.refactor:Refactorización de código / Code refactoringtest:Agregar o modificar tests / Add or modify testschore:Tareas de mantenimiento / Maintenance tasks
Ejemplos en español:
feat: agrega endpoint para obtener usuarios
fix: corrige error en validación de email
docs: actualiza README con instrucciones de instalación
refactor: optimiza consulta de base de datos
test: agrega tests para módulo de pagosEjemplos en inglés:
feat: add endpoint to get users
fix: correct email validation error
docs: update README with installation instructions
refactor: optimize database query
test: add tests for payment module# Haz push a tu fork
git push origin tu-rama
# Crea un Pull Request desde GitHubCuando crees tu PR, automáticamente se cargará nuestro template. Asegúrate de completar toda la información relevante:
- Descripción clara de los cambios
- Tipo de cambio (bug fix, feature, docs, etc.)
- Issue relacionado (si aplica)
- Cómo probaste los cambios
- Checklist de revisión
💡 Tip: Revisa el template completo en pull_request_template.md
- Idioma: Código y variables en inglés (estándar global), comentarios y documentación pueden ser en español o inglés
- Consistencia de idioma: Elige un idioma (español o inglés) y manténlo en todo el archivo/módulo. Evita mezclar idiomas (espanglish) ya que dificulta la lectura
- Estilo de código: Sigue las convenciones y buenas prácticas del proyecto al que contribuyas (indentación, formato, estructura)
- Nombres: Descriptivos y significativos
💡 Nota sobre idiomas: Seguimos los estándares globales usando inglés para nombres de variables, funciones y clases. Los comentarios, documentación y wikis pueden estar en español. Si dominas el inglés, puedes contribuir con traducciones.
⚠️ Evita el espanglish: Si comentas en español, hazlo todo en español. Si comentas en inglés, hazlo todo en inglés. La mezcla confunde a nuevos contribuidores.
// ✅ Bueno - Todo en inglés
const getUserById = async (userId) => {
// Find user in database
const user = await db.users.findById(userId);
return user;
};
// ✅ Bueno - Todo en español
const getUserById = async (userId) => {
// Busca el usuario en la base de datos
const user = await db.users.findById(userId);
return user;
};
// ❌ Evitar - Espanglish confuso
const getUserById = async (userId) => {
// Find el usuario en la database
const user = await db.users.findById(userId);
return user;
};
// ❌ Evitar - Nombres poco descriptivos
const getUsr = async (id) => {
const u = await db.users.findById(id);
return u;
};// ✅ Bueno - Todo en inglés
public function getUserById(int $userId): ?User
{
// Retrieve user from repository
return $this->userRepository->find($userId);
}
// ✅ Bueno - Todo en español
public function getUserById(int $userId): ?User
{
// Obtiene el usuario del repositorio
return $this->userRepository->find($userId);
}
// ❌ Evitar - Espanglish
public function getUserById(int $userId): ?User
{
// Retrieve el usuario del repository
return $this->userRepository->find($userId);
}
// ❌ Evitar - Nombres poco descriptivos
public function get($id)
{
return $this->repo->find($id);
}# ✅ Bueno - Todo en inglés
def get_user_by_id(user_id: int) -> Optional[User]:
"""Gets a user by their ID."""
return db.users.find_by_id(user_id)
# ✅ Bueno - Todo en español
def get_user_by_id(user_id: int) -> Optional[User]:
"""Obtiene un usuario por su ID."""
return db.users.find_by_id(user_id)
# ❌ Evitar - Espanglish
def get_user_by_id(user_id: int) -> Optional[User]:
"""Gets un usuario por su ID."""
return db.users.find_by_id(user_id)
# ❌ Evitar - Nombres poco descriptivos
def get(id):
return db.users.find_by_id(id)En un mismo archivo:
- ✅ Permitido: Todo en inglés O todo en español
- ✅ Tolerado: Cambiar de idioma entre funciones/clases diferentes (con moderación)
- ❌ Evitar: Mezclar idiomas en el mismo comentario o documentación
- ❌ No hacer: Espanglish constante que dificulte la lectura
- Revisa que no exista un issue similar
- Asegúrate de que realmente es un bug
- Recolecta toda la información necesaria
💡 Tip: Revisa el template completo en .github/ISSUE_TEMPLATE/bug_report.md
- Revisa que no exista una sugerencia similar
- Asegúrate de que tu sugerencia sea clara y específica
- Proporciona contexto y ejemplos si es posible
💡 Tip: Revisa el template completo en .github/ISSUE_TEMPLATE/feature_request.md
Cuando revises PRs de otros:
- ✅ Sé constructivo y amable
- ✅ Explica el "por qué" de tus comentarios
- ✅ Sugiere alternativas cuando sea posible
- ✅ Reconoce el buen trabajo
- ❌ No seas grosero o despectivo
- ❌ No critiques a la persona, critica el código
- 💬 Abre una Discussion
- 🐛 Crea un Issue
- 💬 Comunícate por Discord
- 📧 Contacta al equipo: contact@amoxcalli.dev
Cada contribución, sin importar su tamaño, es valiosa para nosotros. ¡Gracias por hacer que Amoxcalli sea cada vez mejor!
"El código es mejor cuando se comparte"
💚 Hecho con amor desde México 🇲🇽