1. Gobernanza del proyecto

iFay adopta un modelo de gobernanza por niveles para garantizar la toma de decisiones transparente y la participación de la comunidad. Como un ecosistema de estándares abiertos que abarca múltiples subproyectos independientes (FayID, Ego, diversos protocolos, FayGer, iFACTS, etc.), una estructura de gobernanza clara es esencial para coordinar las contribuciones y mantener la consistencia de la especificación.

Jerarquía de gobernanza

Colaboradores (Contributors)

Cualquier persona que contribuya al ecosistema iFay es un colaborador. Las contribuciones incluyen, entre otras:

  • Enviar Issues para reportar problemas o hacer sugerencias
  • Enviar Pull Requests para contribuir con código o documentación
  • Participar en GitHub Discussions y discusiones de SEP
  • Asistir con la traducción de documentos
  • Ayudar a otros miembros de la comunidad

Mantenedores (Maintainers)

Los mantenedores son responsables de la gestión diaria y las decisiones técnicas de subproyectos o grupos de trabajo específicos. Los mantenedores de iFay están organizados por dominio, por ejemplo:

  • Mantenedores de FayID: responsables del sistema de identidad
  • Mantenedores de Ego: responsables del modelo de personalización
  • Mantenedores de protocolos: responsables de Faying, Telepathy, ICP, CAP, DTP, SSP y otros protocolos
  • Mantenedores de FayGer: responsables del entorno de ejecución
  • Mantenedores de iFACTS: responsables del conjunto de pruebas de conformidad
  • Mantenedores de documentación: responsables de la documentación y la traducción multilingüe

Los mantenedores pueden tomar decisiones técnicas de forma independiente dentro de sus respectivos dominios, pero deben escalar las decisiones al nivel de Core Maintainer cuando impliquen un impacto entre dominios o cambios significativos.

Core Maintainers

Los Core Maintainers son responsables de la dirección general y la evolución de la especificación iFay. Sus responsabilidades incluyen:

  • Aprobar SEPs (Specification Enhancement Proposals)
  • Coordinar la consistencia entre subproyectos
  • Desarrollar y ajustar la hoja de ruta del proyecto
  • Aprobar la incorporación de nuevos mantenedores

Los Core Maintainers pueden anular la decisión de un mantenedor mediante votación por mayoría para garantizar la consistencia y calidad general de la especificación.

Lead Maintainer (BDFL)

El Lead Maintainer es el responsable de la toma de decisiones final del proyecto, cargo que actualmente ocupa el fundador del proyecto. Cuando los Core Maintainers no pueden alcanzar un consenso, el Lead Maintainer tiene la última palabra.

Principios fundamentales

  • La membresía pertenece a las personas, no a las empresas. Los mantenedores priorizan los intereses del protocolo y la comunidad sobre los intereses comerciales de sus empleadores. Esto garantiza la neutralidad de iFay como estándar abierto.
  • Todas las decisiones se registran de forma transparente. El proceso de discusión y los resultados de las decisiones importantes se registran públicamente en GitHub, accesibles para cualquier miembro de la comunidad.
  • Los mantenedores pueden decidir de forma independiente, pero pueden escalar. Los mantenedores tienen autonomía dentro de sus respectivos dominios, pero cuando las decisiones implican un impacto entre dominios o son controvertidas, pueden escalarse al nivel de Core Maintainer para su discusión.
  • Los Core Maintainers pueden anular las decisiones de los mantenedores. Los Core Maintainers pueden anular la decisión de un mantenedor mediante votación por mayoría — este es un mecanismo de protección para garantizar la consistencia general de la especificación.

Responsabilidades de los mantenedores

Cada mantenedor debe cumplir con las siguientes responsabilidades:

  • Interactuar activamente con los colaboradores de la comunidad, respondiendo con prontitud a Issues y PRs
  • Mantener y mejorar el código y las especificaciones en sus respectivas áreas
  • Apoyar la redacción de documentación y la planificación de la hoja de ruta
  • Comunicar las ideas y comentarios de la comunidad a los Core Maintainers
  • Participar en la discusión y revisión de los SEPs relevantes

Cómo convertirse en mantenedor

El proceso para convertirse en mantenedor:

  1. Realizar contribuciones sostenidas y de alta calidad a un subproyecto o dominio
  2. Ser nominado por un mantenedor existente
  3. Los Core Maintainers revisan y aprueban la nominación

Animamos a todos los colaboradores a participar activamente y demostrar su capacidad técnica y espíritu de colaboración. El estatus de mantenedor es un reconocimiento a la contribución sostenida, no un privilegio.