🤝 Contribuir a ShFlow
Gracias por tu interés en colaborar con ShFlow. Este proyecto está abierto a contribuciones técnicas, documentales y comunitarias. Aquí encontrarás las pautas para participar de forma efectiva.
🧭 Flujo de trabajo con Git
- Haz un fork del repositorio
- Crea una rama descriptiva:
feature/modulo-nuevoofix/limpieza-labels - Realiza tus cambios con commits claros y concisos
- Actualiza la documentación si aplica
- Abre un Pull Request explicando el propósito y alcance
✍️ Estilo de código y documentación
- Usa Shell estricto (
set -euo pipefail) - Prefiere funciones con nombres claros:
ntp_task,vaultTask - Documenta cada módulo en
docs/modules/ - Incluye ejemplos de uso y argumentos esperados
- Mantén consistencia en los changelogs (
docs/changelog/)
⚙️ Crear nuevos módulos
ShFlow permite la creación de módulos personalizados para ampliar su funcionalidad. Sin embargo, existe una distinción clara entre los módulos core y los módulos community:
🔧 Módulos core (core/modules/)
- Son módulos oficiales del proyecto
- Deben seguir estándares estrictos de calidad, trazabilidad y documentación
- Su inclusión está sujeta a revisión y aprobación por la autoridad responsable del proyecto (Luis GuLo)
- Se documentan en
docs/modules/y se registran endocs/changelog/
🌐 Módulos comunitarios (community_modules/)
- Son contribuciones abiertas de la comunidad
- Pueden agruparse por bloques temáticos (ej.
windows/,networking/,security/) - No afectan al núcleo del sistema, pero pueden ser invocados desde playbooks
- Se documentan en
docs/community/y pueden tener su propio changelog
🧩 Pasos para crear un módulo
-
Crea el archivo en la ruta correspondiente (
core/modules/ocommunity_modules/) -
Define una función principal:
<nombre>_task() -
Usa argumentos en formato
clave=valor -
Añade trazas si se usa
--debug -
Documenta en
docs/modules/<nombre>.mdodocs/community/<bloque>/<nombre>.mdcon:- Descripción
- Argumentos
- Ejemplo de uso
- Changelog
🔍 Revisión y mejora
- Todo PR será revisado por el mantenedor principal
- Se valoran propuestas con documentación clara y trazabilidad
- Se aceptan mejoras en estructura, rendimiento, seguridad y estilo
🌐 Comunidad
- Puedes proponer ideas en issues
- Se agradecen traducciones, ejemplos y validaciones cruzadas
- El proyecto busca crecer con aportes abiertos y trazables