Estoy a punto de subir un proyecto en el que he estado trabajando en Sourceforge bajo la GPL, y esperaba obtener algunos consejos sobre cómo organizar el código de una manera que sea fácil de entender y usar por cualquier desarrollador que pueda míralo, eso funciona bien con git, y la forma en que Sourceforge presenta las cosas.Estoy a punto de abrir un proyecto C++ en Sourceforge. ¿Puedo obtener algunos consejos sobre la organización del código?
Mis proyectos es un C aplicación multiplataforma ++, y consta de los siguientes:
- Una porción biblioteca, que hace el trabajo real
- Una porción GUI separada, que utiliza la porción biblioteca
- Bibliotecas de código abierto, cuyas rutas de acceso de inclusión son necesarias para compilar la biblioteca
- Bibliotecas de código abierto modificadas, que se han modificado y, por lo tanto, también forman parte directa de este proyecto
- Salida compilada de todas las bibliotecas
¿Cuál es la mejor manera de organizar esto?
Mientras se trabaja en él mismo, desde la raíz del proyecto lo tengo así:
/LibPortion
/GuiPortion
/libs/librerías de código abierto
bibliotecas /libs/código abierto modificado
/libs/compilado/para contener las bibliotecas compiladas, incluso al compilar para Windows algunas que no son de las bibliotecas de código abierto, como los archivos de la biblioteca Cygwin
¿Es esta una forma sensata de organizar las cosas? ¿Eso coincide con las convenciones y las expectativas?
Al registrar mi proyecto, ¿tiene sentido verificar las bibliotecas de código abierto y parte del proyecto? Me imagino que tiene sentido hacerlo, porque eso minimiza la fricción al configurar el proyecto y ejecutarlo para un nuevo desarrollador. Ciertamente, al menos debería verificar las bibliotecas de código abierto modificadas.
Además, ¿qué tiene sentido incluir en el repositorio en las bibliotecas compiladas? Estoy pensando que sería mejor decirle a git que ignore ese directorio y lo deje en blanco, ya que su contenido será diferente en cada objetivo de compilación, ya que mi proyecto es multiplataforma.
Sin embargo, también parece muy agradable para las personas que no quieren molestarse en crear y/o descargar todas las bibliotecas para ofrecer las bibliotecas pre compiladas para las principales plataformas. ¿Cuál es la forma más inteligente de compartirlos también? Estoy mirando Sourceforge, y no me resulta evidente cómo debería compartirlos si no fuera parte de mi repositorio de git.
@nantucket Mientras no algo realmente terrible lo que más importa es la documentación de todo - desde la forma en la fuente está estructurado para un cómo construir un ejecutable y hacer una versión de despliegue. Normalmente consulto el código fuente de las bibliotecas cuando realizo proyectos de Windows y confío en las bibliotecas y paquetes instalados cuando ejecutas Linux. Si necesito hacer ambas cosas, también verifico en las bibliotecas. Pero la palabra clave es: * document * it all. –