Contribucion al Proyecto

Guía para contribuir al desarrollo de VasakOS. Esto aplica a desarrollos propios o comunitarios dentro del mismo entorno.

Proceso de Contribución#

Fork y Clone#

1
2
3
4
5
6
7
8
9
# En GitHub, haz Fork del repositorio
# https://github.com/Vasak-OS/vasak-desktop

# Clone tu fork
git clone https://github.com/TU_USUARIO/vasak-desktop.git
cd vasak-desktop

# Añade el repositorio original como remote
git remote add upstream https://github.com/Vasak-OS/vasak-desktop.git

Crea una Rama#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Actualiza main desde upstream
git fetch upstream
git checkout main
git merge upstream/main

# Crea una rama para tu feature
git checkout -b feature/descripcion-corta

# O para bugfix
git checkout -b bugfix/descripcion-corta

# O para docs
git checkout -b docs/descripcion-corta

Convención de nombres:

  • feature/feature-name - Nueva funcionalidad
  • bugfix/bug-name - Corrección de bug
  • refactor/refactor-name - Refactorización
  • docs/doc-name - Documentación
  • chore/chore-name - Tareas sin código funcional

Realiza tus Cambios#

Realiza los cambios en el proyecto segun creas conveninete para lo que estes intentando de resolver, recuerda que puedes utilizar varios commit si quieres organizarte pero evita exederte o que los mismos no tengan sentido. Recopila toda la informacion que creas importante para PR y para la documentacion.

Checklist:

  • Código sigue lineamientos
  • Tests pasan
  • Sin errores de linting
  • Documentación actualizada
  • Commits bien descriptos

Commits#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# Ver cambios
git status

# Añadir cambios
git add .

# Hacer commit con mensaje descriptivo
git commit -m "feat(audio): add volume normalization

Implement automatic volume normalization to provide
consistent output levels across different devices.

Closes #1234"

Formato de mensaje (Conventional Commits):

1
2
3
4
5
type(scope): subject

body

footer

Tipos: feat, fix, docs, style, refactor, perf, test, chore

Ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
feat(audio): add volume normalization

Implement automatic volume normalization to provide
consistent output levels across different devices.
This prevents audio clipping and improves user
experience when switching between devices.

- Added VolumeNormalizer struct
- Integrated with audio pipeline
- Added unit tests

Closes #1234
Fixes #5678

Push y Pull Request#

1
2
3
4
5
6
# Push tu rama
git push origin feature/descripcion-corta

# En GitHub, crea un Pull Request
# Contra: Vasak-OS/vasak-desktop main
# Desde: TU_USUARIO/vasak-desktop feature/descripcion-corta

Template de PR (auto-rellenado):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
## Descripción
Breve descripción de qué hace este PR.

## Tipo de Cambio
- [ ] Nueva funcionalidad
- [ ] Corrección de bug
- [ ] Cambio que rompe compatibilidad
- [ ] Documentación

## Cambios
- Cambio 1
- Cambio 2
- Cambio 3

## Testing
- [ ] Testeado en X11
- [ ] Testeado en Wayland
- [ ] Pruebas unitarias pasadas
- [ ] Pruebas de integración pasadas

## Checklist
- [ ] Mi código sigue los lineamientos
- [ ] He hecho self-review
- [ ] He comentado código complejo
- [ ] He actualizado la documentación
- [ ] He añadido tests
- [ ] Los tests pasan localmente

## Benchmark (Si aplica)

Revisión y Feedback#

  • Los mantenedores revisarán tu PR
  • Responde a los comentarios
  • Haz cambios si es necesario
  • Re-quiere revisión cuando hayas hecho cambios
1
2
3
4
5
6
7
8
# Después de cambios
git add .
git commit -m "Address review feedback

- Changed X to Y
- Added comment for Z"

git push origin feature/descripcion-corta

Merge#

Una vez aprobado:

  • Los mantenedores harán merge de tu PR
  • Tu branch se puede eliminar
1
2
3
4
# Limpiar local
git checkout main
git branch -d feature/descripcion-corta
git pull upstream main

Tipos de Contribución#

Nuevas Funcionalidades#

Pasos:

  1. Discute en un issue primero
  2. Sigue la arquitectura establecida
  3. Añade tests
  4. Documenta el cambio
  5. Actualiza CHANGELOG

Corrección de Bugs#

Pasos:

  1. Abre un issue describiendo el bug
  2. Crea rama desde issue
  3. Reproduce el bug con test
  4. Arregla el bug
  5. Test debe pasar
  6. Documenta la corrección

Documentación#

Archivos:

  • docs/user/* - Para usuarios finales |   repo
  • docs/devs/* - Para desarrolladores |   repo
  • README.md - Para repositorio
  • Code comments - Dentro del código

Mejoras de Performance#

Requerimientos:

  1. Mide antes (con profiler)
  2. Implementa mejora
  3. Mide después (compara)
  4. Añade benchmark si es crítico
  5. Documenta cambio

Tests#

Tipos:

  • Unit tests - Funciones individuales
  • Integration tests - Componentes integrados
  • E2E tests - Flujo completo del usuario

Ubicación:

  • src-tauri/tests/ - Tests de Rust
  • src/tests/ - Tests de Vue

Reportes de Bugs#

Ver   Cómo Reportar Errores

Requiere:

  • Descripción clara
  • Pasos para reproducir
  • Comportamiento esperado vs actual
  • Sistema operativo y versión
  • Logs relevantes

Código Review#

Como Revisor#

Verifica:

  • El código funciona
  • Sigue lineamientos
  • Tiene tests
  • Está documentado
  • No introduce regresiones
  • Performance es aceptable

Comentario constructivo:

❌ “Esto está mal”

✅ “Considerar usar X en lugar de Y porque…”

Como Autor#

  • Responde a todos los comentarios
  • No seas defensivo
  • Haz cambios si son mejoras
  • Explica tu decisión si no estás de acuerdo
  • Agradece el feedback

Licencia#

Toda contribución debe ser compatible con la licencia del proyecto.

Ver LICENSE en la raíz del proyecto.

Comportamiento Esperado#

Código de Conducta#

Nos comprometemos a mantener un ambiente respetuoso:

  • Sé respetuoso con otros contribuidores
  • Acepta crítica constructiva
  • Enfócate en el código, no en la persona
  • Respeta privacidad
  • Reporta abuso

Si Ves Comportamiento Inapropiado#

Contacta a los mantenedores directamente (privadamente).

Reconocimiento#

  • Contribuidores serán reconocidos en CONTRIBUTORS.md
  • Commits quedan en el historio de Git
  • Releases grandes pueden tener changelog especial

Ayuda y Soporte#

Preguntas sobre Contribución#

  • Abre una Discusión en GitHub
  • Pregunta en el chat comunitario (si existe)

No Sabes por Dónde Empezar#

Busca issues con label:

  • good-first-issue - Para nuevos contribuidores
  • help-wanted - Se busca ayuda
  • documentation - Mejoras de docs

Necesitas Ayuda#

  • Menciona a mantenedores con @
  • Se específico con tu pregunta
  • Comparte código/error si es relevante

Cambios que No Aceptamos#

No aceptamos:

  • Código que rompe compatibilidad sin versión major
  • Cambios que requieren librerías propietarias
  • Código que no tiene tests
  • Documentación incompleta
  • Cambios de estilo sin funcionalidad
  • Commits enormes sin descripción

Aceptamos:

  • Nuevas funcionalidades bien testeadas
  • Correcciones de bugs
  • Mejoras de performance con evidencia
  • Documentación mejorada
  • Refactorización que mejora mantenibilidad
  • Tests adicionales

Maintenance#

Si Eres Mantenedor#

Responsabilidades:

  • Revisar PRs oportunamente
  • Mantener código limpio
  • Actualizar documentación
  • Moderar comportamiento
  • Planificar releases

Merging#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Antes de merge, verifica:
git checkout main
git pull origin main
git merge --no-ff feature/branch -m "Merge feature/branch"

# Resolve conflicts si existen

git push origin main

# Elimina rama
git push origin --delete feature/branch

Releases#

Versionamiento: MAJOR.MINOR.PATCH

  • MAJOR - Breaking changes
  • MINOR - Nuevas funcionalidades
  • PATCH - Bug fixes

Próximos Pasos#

  1. Selecciona una issue o funcionalidad
  2. Comenta que trabajarás en ello
  3. Sigue este proceso de contribución
  4. ¡Gracias por contribuir!

Recursos#

Preguntas Frecuentes#

P: ¿Puedo trabajar en múltiples cosas simultáneamente? R: Usa ramas diferentes para cada cosa.

P: ¿Cuánto tiempo toma ver mi PR? R: Depende, típicamente 1-3 días.

P: ¿Qué si mi PR es rechazado? R: Se explicarán las razones. Puedes pedir clarificación.

P: ¿Puedo hacer commit directo? R: No, todos pasan por PR (incluso mantenedores).

P: ¿Dónde veo mis contribuciones? R: En tu perfil GitHub y en git log.


¡Gracias por considerar contribuir a Vasak Desktop! 🎉

logo

Vasak group © Todos los derechos reservados