Ir al contenido

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).


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.

Aunque las aportaciones de código estén temporalmente en pausa, la retroalimentación de la comunidad es muy valiosa:

Si encuentras un error de cálculo, un caso límite en la importación de extractos o un fallo visual:

  1. Revisa los Issues en GitHub para comprobar si ya ha sido comunicado.
  2. 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:

  1. Comprueba si existe ya una propuesta similar.
  2. 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.

  • 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 test y pnpm typecheck (vue-tsc --noEmit) sin excepciones de tipo any.
  • Utiliza la convención Conventional Commits (ej. feat(fiscal): add bitvavo staking parser).
  • Ejecuta pnpm changeset antes de subir cambios para declarar el impacto en las versiones bajo el principio “Frontend is King”.

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.Z de la aplicación genera el mismo tag vX.Y.Z en criptofolio-documents, creado automáticamente por el workflow de release de la app. El tag marca la documentación exacta de esa versión.
  • main es “latest”. El sitio publicado se construye siempre desde main, 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 New en la barra lateral (sidebar.badge en el frontmatter). Se retira cuando la funcionalidad llega a una release etiquetada.