Cómo Contribuir

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:

  1. 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>
    
  2. Crear un Fork del repositorio principal
  3. 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:

  1. 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)
  2. 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
    
  3. 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>
    
  4. Realizar los cambios y/o aportaciones deseadas
  5. Realizar un commit con los cambios:
    git add <elementos cambiados>
    git commit -m "<Mensaje del Commit>"
    
  6. Pushear sus cambios al fork del submódulo:
    git push <nombre_remoto> <funcionalidad_branch>
    
  7. 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:

  1. 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
    
  2. 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)"
    
  3. 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