Guía de Contribución y Versionado
🤝 Guía de Contribución y Versionado
Sección titulada «🤝 Guía de Contribución y Versionado»¡Gracias por tu interés en colaborar con Criptofolio!
Criptofolio es un proyecto de código abierto publicado bajo la licencia GNU Affero General Public License v3.0 (AGPL-3.0).
⚠️ Estado Actual del Proyecto
Sección titulada «⚠️ Estado Actual del Proyecto»Actualmente, Criptofolio se encuentra en fase activa de desarrollo inicial como proyecto personal y plataforma de aprendizaje.
En este momento:
- No se aceptan Pull Requests directas de código externo sobre la rama principal.
- Te animamos con entusiasmo a hacer fork del repositorio, auditar su arquitectura, experimentar con nuevas ideas y utilizar el código para tus propias necesidades personales.
💬 Cómo Colaborar Hoy
Sección titulada «💬 Cómo Colaborar Hoy»Aunque las aportaciones de código estén temporalmente en pausa, la retroalimentación de la comunidad es muy valiosa:
1. Reportar Errores o Inexactitudes
Sección titulada «1. Reportar Errores o Inexactitudes»Si encuentras un error de cálculo, un caso límite en la importación de extractos o un fallo visual:
- Revisa los Issues en GitHub para comprobar si ya ha sido comunicado.
- Abre un nuevo issue detallando:
- Título claro y pasos exactos para reproducirlo.
- Fragmento anónimo de las líneas de CSV problemáticas.
- Comportamiento numérico esperado frente al obtenido.
- Entorno de ejecución (sistema operativo, versión de Node y navegador).
2. Sugerir Nuevas Funcionalidades o Perfiles de Exchange
Sección titulada «2. Sugerir Nuevas Funcionalidades o Perfiles de Exchange»Si deseas solicitar soporte para una plataforma de intercambio adicional o una nueva jurisdicción fiscal:
- Comprueba si existe ya una propuesta similar.
- Abre un issue indicando:
- Nombre de la plataforma y formato de cabeceras de sus extractos CSV.
- Particularidades en la forma en que exporta comisiones o transacciones divididas.
🔮 Directrices para Futuras Contribuciones de Código
Sección titulada «🔮 Directrices para Futuras Contribuciones de Código»Cuando el repositorio se abra a aportaciones externas, se exigirán los siguientes estándares:
1. Acuerdo de Licencia de Contribuyente (CLA)
Sección titulada «1. Acuerdo de Licencia de Contribuyente (CLA)»Todo colaborador deberá aceptar el Contributor License Agreement (CLA.md) para preservar la seguridad jurídica del proyecto.
2. Respeto Estricto de la Arquitectura
Sección titulada «2. Respeto Estricto de la Arquitectura»- El dominio debe permanecer 100% puro: cero dependencias de frameworks o bases de datos en
packages/core-domain. - Los cálculos financieros deben preservar la precisión obligatoriamente mediante
PreciseAmount. - El código debe superar
pnpm testypnpm typecheck(vue-tsc --noEmit) sin excepciones de tipoany.
3. Changesets y Commits Convencionales
Sección titulada «3. Changesets y Commits Convencionales»- Utiliza la convención Conventional Commits (ej.
feat(fiscal): add bitvavo staking parser). - Ejecuta
pnpm changesetantes de subir cambios para declarar el impacto en las versiones bajo el principio “Frontend is King”.
📚 Versionado de la Documentación
Sección titulada «📚 Versionado de la Documentación»El portal de documentación vive en su propio repositorio y sigue el ciclo de releases de la aplicación:
- Los tags replican los de la app. Cada release
vX.Y.Zde la aplicación genera el mismo tagvX.Y.Zencriptofolio-documents, creado automáticamente por el workflow de release de la app. El tag marca la documentación exacta de esa versión. maines “latest”. El sitio publicado se construye siempre desdemain, que documenta la última release más lo integrado antes de la siguiente.- Fijar una versión. Para leer la documentación de una release anterior, haz checkout de su tag:
git checkout v1.16.14 && npm ci && npm run build. - Versión en
package.json. Indica la versión de la aplicación con la que se alineó la documentación por última vez. Si difieren, el tag es la fuente de verdad. - Las novedades llevan insignia. Las páginas de funcionalidades que aún no están en una release estable muestran la insignia
Newen la barra lateral (sidebar.badgeen el frontmatter). Se retira cuando la funcionalidad llega a una release etiquetada.