You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
359 lines
12 KiB
359 lines
12 KiB
# Contribuir a Ciencia de Datos para Principiantes
|
|
|
|
¡Gracias por tu interés en contribuir al currículo de Ciencia de Datos para Principiantes! Apreciamos las contribuciones de la comunidad.
|
|
|
|
## Tabla de Contenidos
|
|
|
|
- [Código de Conducta](../..)
|
|
- [¿Cómo puedo contribuir?](../..)
|
|
- [Primeros pasos](../..)
|
|
- [Guías de contribución](../..)
|
|
- [Proceso de Pull Request](../..)
|
|
- [Guías de estilo](../..)
|
|
- [Acuerdo de Licencia para Contribuidores](../..)
|
|
|
|
## Código de Conducta
|
|
|
|
Este proyecto ha adoptado el [Código de Conducta de Microsoft Open Source](https://opensource.microsoft.com/codeofconduct/).
|
|
Para más información, consulta las [Preguntas Frecuentes sobre el Código de Conducta](https://opensource.microsoft.com/codeofconduct/faq/)
|
|
o contacta a [opencode@microsoft.com](mailto:opencode@microsoft.com) para cualquier pregunta o comentario adicional.
|
|
|
|
## ¿Cómo puedo contribuir?
|
|
|
|
### Reportar errores
|
|
|
|
Antes de crear reportes de errores, revisa los problemas existentes para evitar duplicados. Al crear un reporte de error, incluye tantos detalles como sea posible:
|
|
|
|
- **Usa un título claro y descriptivo**
|
|
- **Describe los pasos exactos para reproducir el problema**
|
|
- **Proporciona ejemplos específicos** (fragmentos de código, capturas de pantalla)
|
|
- **Describe el comportamiento observado y lo que esperabas**
|
|
- **Incluye detalles de tu entorno** (SO, versión de Python, navegador)
|
|
|
|
### Sugerir mejoras
|
|
|
|
¡Las sugerencias de mejoras son bienvenidas! Al sugerir mejoras:
|
|
|
|
- **Usa un título claro y descriptivo**
|
|
- **Proporciona una descripción detallada de la mejora sugerida**
|
|
- **Explica por qué esta mejora sería útil**
|
|
- **Enumera características similares en otros proyectos, si aplica**
|
|
|
|
### Contribuir a la documentación
|
|
|
|
Las mejoras en la documentación siempre son apreciadas:
|
|
|
|
- **Corrige errores tipográficos y gramaticales**
|
|
- **Mejora la claridad de las explicaciones**
|
|
- **Añade documentación faltante**
|
|
- **Actualiza información desactualizada**
|
|
- **Incluye ejemplos o casos de uso**
|
|
|
|
### Contribuir con código
|
|
|
|
Aceptamos contribuciones de código, incluyendo:
|
|
|
|
- **Nuevas lecciones o ejercicios**
|
|
- **Corrección de errores**
|
|
- **Mejoras a notebooks existentes**
|
|
- **Nuevos conjuntos de datos o ejemplos**
|
|
- **Mejoras a la aplicación de cuestionarios**
|
|
|
|
## Primeros pasos
|
|
|
|
### Requisitos previos
|
|
|
|
Antes de contribuir, asegúrate de tener:
|
|
|
|
1. Una cuenta de GitHub
|
|
2. Git instalado en tu sistema
|
|
3. Python 3.7+ y Jupyter instalados
|
|
4. Node.js y npm (para contribuciones a la aplicación de cuestionarios)
|
|
5. Familiaridad con la estructura del currículo
|
|
|
|
Consulta [INSTALLATION.md](INSTALLATION.md) para instrucciones detalladas de configuración.
|
|
|
|
### Hacer un fork y clonar
|
|
|
|
1. **Haz un fork del repositorio** en GitHub
|
|
2. **Clona tu fork** localmente:
|
|
```bash
|
|
git clone https://github.com/YOUR-USERNAME/Data-Science-For-Beginners.git
|
|
cd Data-Science-For-Beginners
|
|
```
|
|
|
|
3. **Añade el remoto upstream**:
|
|
```bash
|
|
git remote add upstream https://github.com/microsoft/Data-Science-For-Beginners.git
|
|
```
|
|
|
|
|
|
### Crear una rama
|
|
|
|
Crea una nueva rama para tu trabajo:
|
|
```bash
|
|
git checkout -b feature/your-feature-name
|
|
# or
|
|
git checkout -b fix/your-bug-fix
|
|
```
|
|
|
|
Convenciones para nombrar ramas:
|
|
- `feature/` - Nuevas características o lecciones
|
|
- `fix/` - Corrección de errores
|
|
- `docs/` - Cambios en la documentación
|
|
- `refactor/` - Refactorización de código
|
|
|
|
## Guías de contribución
|
|
|
|
### Para contenido de lecciones
|
|
|
|
Al contribuir con lecciones o modificar las existentes:
|
|
|
|
1. **Sigue la estructura existente**:
|
|
- README.md con el contenido de la lección
|
|
- Notebook de Jupyter con ejercicios
|
|
- Tarea (si aplica)
|
|
- Enlace a cuestionarios previos y posteriores
|
|
|
|
2. **Incluye estos elementos**:
|
|
- Objetivos de aprendizaje claros
|
|
- Explicaciones paso a paso
|
|
- Ejemplos de código con comentarios
|
|
- Ejercicios para practicar
|
|
- Enlaces a recursos adicionales
|
|
|
|
3. **Asegúrate de que sea accesible**:
|
|
- Usa lenguaje claro y sencillo
|
|
- Proporciona texto alternativo para imágenes
|
|
- Incluye comentarios en el código
|
|
- Considera diferentes estilos de aprendizaje
|
|
|
|
### Para notebooks de Jupyter
|
|
|
|
1. **Limpia todas las salidas** antes de hacer el commit:
|
|
```bash
|
|
jupyter nbconvert --clear-output --inplace notebook.ipynb
|
|
```
|
|
|
|
2. **Incluye celdas de markdown** con explicaciones
|
|
|
|
3. **Usa un formato consistente**:
|
|
```python
|
|
# Import libraries at the top
|
|
import pandas as pd
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
# Use meaningful variable names
|
|
# Add comments for complex operations
|
|
# Follow PEP 8 style guidelines
|
|
```
|
|
|
|
4. **Prueba tu notebook** completamente antes de enviarlo
|
|
|
|
### Para código en Python
|
|
|
|
Sigue las guías de estilo de [PEP 8](https://www.python.org/dev/peps/pep-0008/):
|
|
```python
|
|
# Good practices
|
|
import pandas as pd
|
|
|
|
def calculate_mean(data):
|
|
"""Calculate the mean of a dataset.
|
|
|
|
Args:
|
|
data (list): List of numerical values
|
|
|
|
Returns:
|
|
float: Mean of the dataset
|
|
"""
|
|
return sum(data) / len(data)
|
|
```
|
|
|
|
|
|
### Para contribuciones a la aplicación de cuestionarios
|
|
|
|
Al modificar la aplicación de cuestionarios:
|
|
|
|
1. **Prueba localmente**:
|
|
```bash
|
|
cd quiz-app
|
|
npm install
|
|
npm run serve
|
|
```
|
|
|
|
2. **Ejecuta el linter**:
|
|
```bash
|
|
npm run lint
|
|
```
|
|
|
|
3. **Construye exitosamente**:
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
4. **Sigue la guía de estilo de Vue.js** y los patrones existentes
|
|
|
|
### Para traducciones
|
|
|
|
Al añadir o actualizar traducciones:
|
|
|
|
1. Sigue la estructura en la carpeta `translations/`
|
|
2. Usa el código de idioma como nombre de carpeta (por ejemplo, `fr` para francés)
|
|
3. Mantén la misma estructura de archivos que la versión en inglés
|
|
4. Actualiza los enlaces de los cuestionarios para incluir el parámetro de idioma: `?loc=fr`
|
|
5. Prueba todos los enlaces y el formato
|
|
|
|
## Proceso de Pull Request
|
|
|
|
### Antes de enviar
|
|
|
|
1. **Actualiza tu rama** con los últimos cambios:
|
|
```bash
|
|
git fetch upstream
|
|
git rebase upstream/main
|
|
```
|
|
|
|
2. **Prueba tus cambios**:
|
|
- Ejecuta todos los notebooks modificados
|
|
- Prueba la aplicación de cuestionarios si fue modificada
|
|
- Verifica que todos los enlaces funcionen
|
|
- Revisa errores ortográficos y gramaticales
|
|
|
|
3. **Haz commit de tus cambios**:
|
|
```bash
|
|
git add .
|
|
git commit -m "Brief description of changes"
|
|
```
|
|
|
|
Escribe mensajes de commit claros:
|
|
- Usa tiempo presente ("Añadir característica" en lugar de "Añadido característica")
|
|
- Usa modo imperativo ("Mover cursor a..." en lugar de "Mueve cursor a...")
|
|
- Limita la primera línea a 72 caracteres
|
|
- Referencia problemas y pull requests cuando sea relevante
|
|
|
|
4. **Haz push a tu fork**:
|
|
```bash
|
|
git push origin feature/your-feature-name
|
|
```
|
|
|
|
|
|
### Crear el Pull Request
|
|
|
|
1. Ve al [repositorio](https://github.com/microsoft/Data-Science-For-Beginners)
|
|
2. Haz clic en "Pull requests" → "New pull request"
|
|
3. Haz clic en "compare across forks"
|
|
4. Selecciona tu fork y rama
|
|
5. Haz clic en "Create pull request"
|
|
|
|
### Formato del título del PR
|
|
|
|
Usa títulos claros y descriptivos siguiendo este formato:
|
|
```
|
|
[Component] Brief description
|
|
```
|
|
|
|
Ejemplos:
|
|
- `[Lesson 7] Fix Python notebook import error`
|
|
- `[Quiz App] Add German translation`
|
|
- `[Docs] Update README with new prerequisites`
|
|
- `[Fix] Correct data path in visualization lesson`
|
|
|
|
### Descripción del PR
|
|
|
|
Incluye en la descripción de tu PR:
|
|
|
|
- **Qué**: ¿Qué cambios realizaste?
|
|
- **Por qué**: ¿Por qué son necesarios estos cambios?
|
|
- **Cómo**: ¿Cómo implementaste los cambios?
|
|
- **Pruebas**: ¿Cómo probaste los cambios?
|
|
- **Capturas de pantalla**: Incluye capturas para cambios visuales
|
|
- **Problemas relacionados**: Enlace a problemas relacionados (por ejemplo, "Fixes #123")
|
|
|
|
### Proceso de revisión
|
|
|
|
1. **Se ejecutarán verificaciones automáticas** en tu PR
|
|
2. **Los mantenedores revisarán** tu contribución
|
|
3. **Aborda los comentarios** realizando commits adicionales
|
|
4. Una vez aprobado, un **mantenedor fusionará** tu PR
|
|
|
|
### Después de que tu PR sea fusionado
|
|
|
|
1. Elimina tu rama:
|
|
```bash
|
|
git branch -d feature/your-feature-name
|
|
git push origin --delete feature/your-feature-name
|
|
```
|
|
|
|
2. Actualiza tu fork:
|
|
```bash
|
|
git checkout main
|
|
git pull upstream main
|
|
git push origin main
|
|
```
|
|
|
|
|
|
## Guías de estilo
|
|
|
|
### Markdown
|
|
|
|
- Usa niveles de encabezado consistentes
|
|
- Incluye líneas en blanco entre secciones
|
|
- Usa bloques de código con especificadores de lenguaje:
|
|
````markdown
|
|
```python
|
|
import pandas as pd
|
|
```
|
|
````
|
|
|
|
- Añade texto alternativo a las imágenes: ``
|
|
- Mantén las líneas con una longitud razonable (alrededor de 80-100 caracteres)
|
|
|
|
### Python
|
|
|
|
- Sigue la guía de estilo PEP 8
|
|
- Usa nombres de variables significativos
|
|
- Añade docstrings a las funciones
|
|
- Incluye sugerencias de tipo cuando sea apropiado:
|
|
```python
|
|
def process_data(df: pd.DataFrame) -> pd.DataFrame:
|
|
"""Process the input dataframe."""
|
|
return df
|
|
```
|
|
|
|
|
|
### JavaScript/Vue.js
|
|
|
|
- Sigue la guía de estilo de Vue.js 2
|
|
- Usa la configuración de ESLint proporcionada
|
|
- Escribe componentes modulares y reutilizables
|
|
- Añade comentarios para lógica compleja
|
|
|
|
### Organización de archivos
|
|
|
|
- Mantén los archivos relacionados juntos
|
|
- Usa nombres de archivo descriptivos
|
|
- Sigue la estructura de directorios existente
|
|
- No hagas commit de archivos innecesarios (.DS_Store, .pyc, node_modules, etc.)
|
|
|
|
## Acuerdo de Licencia para Contribuidores
|
|
|
|
Este proyecto acepta contribuciones y sugerencias. La mayoría de las contribuciones requieren que aceptes un Acuerdo de Licencia para Contribuidores (CLA) declarando que tienes el derecho de, y efectivamente, nos otorgas los derechos para usar tu contribución. Para más detalles, visita
|
|
https://cla.microsoft.com.
|
|
|
|
Cuando envíes un pull request, un bot de CLA determinará automáticamente si necesitas proporcionar un CLA y decorará el PR apropiadamente (por ejemplo, etiqueta, comentario). Simplemente sigue las instrucciones proporcionadas por el bot. Solo necesitarás hacer esto una vez en todos los repositorios que usen nuestro CLA.
|
|
|
|
## ¿Preguntas?
|
|
|
|
- Consulta nuestro [Canal de Discord #data-science-for-beginners](https://aka.ms/ds4beginners/discord)
|
|
- Únete a nuestra [comunidad de Discord](https://aka.ms/ds4beginners/discord)
|
|
- Revisa los [problemas existentes](https://github.com/microsoft/Data-Science-For-Beginners/issues) y [pull requests](https://github.com/microsoft/Data-Science-For-Beginners/pulls)
|
|
|
|
## ¡Gracias!
|
|
|
|
Tus contribuciones hacen que este currículo sea mejor para todos. ¡Gracias por tomarte el tiempo de contribuir!
|
|
|
|
---
|
|
|
|
**Descargo de responsabilidad**:
|
|
Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por garantizar la precisión, tenga en cuenta que las traducciones automatizadas pueden contener errores o imprecisiones. El documento original en su idioma nativo debe considerarse como la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No nos hacemos responsables de malentendidos o interpretaciones erróneas que puedan surgir del uso de esta traducción. |