El Portal del Investigador es Software Libre, por lo que las contribuciones de la comunidad serán bienvenidas.
Puede contribuir de diversas maneras:
- Implementando nuevas funcionalidades
- Corrigiendo errores
- Mejorando la traducción
- etc.
La presente guía tiene como objetivo definir la metodología de trabajo que se debe seguir para colaborar en el proyecto. Si tiene alguna duda, contacte con nosotros.
Trabajar con Git-Submodules
Los submódulos de Git permiten insertar uno o más repositorios externos en subdirectorios dentro de otro repositorio. Es decir, permiten gestionar subproyectos dentro de un gran proyecto versionado con Git.
En el Portal de Investigador, implementado en Python/Django, cada aplicación se corresponde con un submódulo, por lo que el árbol de directorios será similar al siguiente:
-INVESTIGACION |_core |_cvn (Git-Submodule) |_githooks |_investigacion |_.gitignore |_.gitmodules (Configuración de Git-Submodules) |_AUTHORS |_LICENSE |_manage.py |_requirements.py
Si quiere contribuir con el proyecto le recomendamos seguir los siguientes pasos:
-
Clonar el repositorio principal:
Cuando Git clona un proyecto con submódulos se crean los directorios asociados a ellos, pero no se descarga su contenido de forma automática, por tanto, estarán vacíos.
Para obtener el contenido de los submódulos se deben ejecutar los siguientes comandos:
git clone <url del repositorio> git submodule init git submodule update
La ejecución de
git submodule init
sólo debería ser necesaria la primera vez, es decir, después de clonar el repositorio. Por contra,git submodule update
podrá ser ejecutada en cualquier momento para así obtener los últimos cambios de cada submódulo.Una alternativa más simple para obtener el contenido de los submódulos es ejecutar el comando
git clone
con el parámetro--recursive
. Git inicializará y actualizará cada submódulo de forma automática.git clone --recursive <url del repositorio>
- Crear un Fork del repositorio principal
-
Añadir el Fork creado como remoto
git remote add <nombre_remoto> <url del fork> git remote update
Contribuir en Submódulos
Si quiere contribuir en un submódulo del proyecto debe seguir los siguientes pasos:
- Crear un Fork del repositorio del submódulo en el que desea colaborar (Inspeccione .gitmodules en la raíz del proyecto para obtener la url del repositorio del submódulo)
-
Añadir el Fork creado como remoto en el submódulo:
cd <directorio del submódulo> git remote add <nombre_remoto> <url del fork> git remote update
-
Crear un branch para desarrollar una nueva funcionalidad.
Este paso es opcional, es sólo una cuestión de metodología de trabajo,
usted puede hacer un checkout del master si lo desea
git checkout -b <funcionalidad_branch>
- Realizar los cambios y/o aportaciones deseadas
-
Realizar un commit con los cambios:
git add <elementos cambiados> git commit -m "<Mensaje del Commit>"
-
Pushear sus cambios al fork del submódulo:
git push <nombre_remoto> <funcionalidad_branch>
- Enviar una solicitud de Pull Request al repositorio original
Pull Request
Cuando una solicitud de Pull Request sea aceptada, se debe actualizar la referencia del submódulo en el repositorio principal del proyecto:
- En el directorio de submódulo, actualice a la última revisión de origin:
cd <directorio del submódulo> git checkout master git pull origin master
- En la raíz del repositorio principal, añada el directorio del submódulo actualizado y commitee los cambios:
git add <directorio del submódulo> git commit -m "<directorio del submódulo> (new commits)"
-
Pushee los cambios al repositorio principal:
git push origin master
Cuando se realiza un cambio en la configuración de los Git-Submodules (.gitmodules) es posible que la actualización de los submódulos falle, ya que Git no conoce los nuevos cambios aplicados. Ante esta situación se deben ejecutar los siguientes comandos:
git submodule sync git submodule update
Directrices de Codificación
-
Se deben seguir las convenciones de codificación descritas en PEP8
-
Los caracteres de tabulador, Tab (\0x09), no se deben utilizar en el código. Toda la indentación debe hacerse con 4 caracteres de espacio
-
El Portal del Investigador implementa una suite de tests propia. En nuestra política de desarrollo, toda funcionalidad debe ser cubierta por tests que pasen en todo momento