Siguiente: Sistemas de creación Superior: El proyecto FreeBSD Anterior: Origen del proyecto |
Un modelo de desarrollo describe como se estructura y lleva a cabo un desarrollo, y en el caso de FreeBSD, es un proceso abierto y flexible que permite la participación real de cientos de colaboradores.
Existen dos importantes sistemas que permiten realizar ese desarrollo y gestionar coherentemente las contribuciones: El CVS (Concurrent Versions System) y el sistema de reporte de problemas (Problem Reports) GNATS.
En estos momentos (15/10/2000) existen 233 desarrolladores dedicados, conocidos como committers. Un grupo de 9 de estos committers, conocido como Core Team, son los responsables máximos de las decisiones dentro del proyecto.
El sistema de contribución de código al proyecto FreeBSD funciona de la siguiente manera: todas las contribuciones son evaluadas, asignadas a algún committer e implementadas, bien con el formato original, bien con modificaciones si son necesarias. Aunque se promueve que los reportes de problemas vayan acompañados del correspondiente "parche", estos no son necesarios para realizar el reporte inicial.
El sistema de reporte de problemas es público por lo que cualquier persona puede informar a los desarrolladores del proyecto de cualquier anomalía, bug, modificación, nueva característica, etc.
El sistema PR (Problem Reports) gestiona el reporte de problemas. Mantiene la información de cada problema, permite asignar un problema a un desarrollador en concreto o a un grupo, y mantiene un histórico de los cambios de estado y los e-mails relaciondos con dicho problema.
GNATS dispone de una interfaz web pública a través del cual se pueden ver todos y cada uno de los PR existentes, hacer búsquedas, etc. Se trata, básicamente, de un sistema de ticketing.
Este es un listado de los posibles estados de un PR:
Si un usuario de FreeBSD descrubre algun error o quiere hacer una petición de modificación de algún tipo en el sistema, debe abrir un PR. Una vez abierto, el PR queda registrado en el sistema GNATS en estado open. En las próximas horas o días, este PR será recogido por alguno de los desarrolladores (committers), analizado y se modificará su estado a feedback o analized en función del resultado de ese análisis. Si queda en estado feedback, se esperará a tener comunicación con el responsable de la apertura del PR y si se deja en estado analized significa que se está trabajando en él. Una vez recibida la comunicación o se ha terminado el trabajo, el PR pasará ha estado analized, closed o suspended en función del resultado.
El Sistema de Versiones Concurrentes (CVS) permite a FreeBSD mantener todo el histórico del código desde principios de 1994.
CVS permite trabajar a distintos desarrolladores de manera simultánea en el código fuente manteniendo un histórico completo. De esta manera es posible encontrar los errores recientes mostrando los cambios realizados en el código últimamente.
Otra ventaja es que ayuda a los usuarios a replicar las actualizaciones de código por revisiones sin forzar la obtención de todo el código completo cada vez que quieren realizar actualizaciones. Es posible obtener una versión determinada de todos y cada uno de los archivos que componen el sistema.
Este es un ejemplo de un mensaje de log creado cuando se modifica un archivo en el CVS.
lile 1999/09/15 16:09:10 PDT
Modified files: (Branch: RELENG_3)
sys/netinet if_ether.c
Log:
MFC fix for truncated token-ring arp replies.
Reorder arp code to make ethernet arp's the default
and allow fddi to arp correctly.
Reported by: Russell Neeper <r-neeper@tamu.edu>
Reviewed by: Eivind Eklund <eivind@freebsd.org>
Approved by: Jordan K. Hubbard <jkh@freebsd.org>
Revision Changes Path
1.52.2.4 +57 -37 src/sys/netinet/if_ether.c
Este log describe un commit (modificación del código) hecha por el committer lile (Larry Lile), que ha modificado el archivo if_ether.c. Este commit es, de hecho, un Merge From Current o MFC, lo que significa que estas modificaciones han sido testeadas inicialmente en la rama de desarrollo, antes de ser incluidas en la rama stable.
Este commit soluciona un problema reportado por Russel Neeper, siendo revisados los cambios por Eivin Eklund. Además, como este commit se ha hecho durante una congelación del código en la rama estable, el commit ha sido aprobado por el ingeniero de releases Jordan K. Hubbard.
Los principales participantes de FreeBSD son los committers, los cuales tienen acceso de escritura en el árbol CVS, permitiendo hacer modificaciones directamente sobre la distribución original de FreeBSD. Además, existen contribuyentes externos, pudiendo ser cualquier persona, que envian o aconsejan soluciones a problemas en el código y se comunican continuamente con los committers. Todos los parches enviados por los contribuyentes tienen que pasar por los committers. Actualmente hay 233 committers, mientras que el año pasado había 141.
Además de los contribuyentes hay toda una serie de desarrolladores que envían cantidad de nuevo código y modificaciones. Hay alrededor de mil contribuyentes y desarrolladores listados en la sección "Additional Contributors" del manual de FreeBSD.
El Core Team es un grupo formado por nueve personas encargado de marcar y dirigir las directrices del proyecto FreeBSD. Una de las labores más importantes del core team es la de ejercer de árbitro o intermediario cuando se producen diferencias de opinión o criterio entre los desarrolladores. Hasta ahora, el core team era un grupo cerrado al que sólo se podía acceder por invitación del propio core team. Desde Octubre del 2000, los miembros del core team son elegidos democráticamente por todos los committers del proyecto. Las normas de esta votación son: