planeacion-colaborativa

Coordinación interna del Área de Planeación Colaborativa del Laboratorio Nacional de Ciencias de la Sostenibilidad.

View the Project on GitHub lancis-apc/planeacion-colaborativa

Protocolo de desarrollo de software


Objetivo y alcance

Objetivo: Definir los lineamientos generales para el desarrollo de software como parte de las actividades del LANCIS.

Alcance: Aplica para todos los colaboradores internos y externos del LANCIS.


Protocolo

Este protocolo pretende guiar a los colaboradores en el desarrollo de software hacia la adopción del estándar del LANCIS. Este documento describe este estándar.


Actividades

1. Crear un repositorio en GitHub

Version control systems (VCSs) offer an easy way to store and back up not only the current version of your code that you are working on but also every previous version of the code (in what’s known as a repository). This not only saves you from having to keep multiple copies of the same file but also allows you to “roll back” to an older “working” version of the code if things go wrong. VCSs also allow you to share material between multiple machines, operating systems, and more importantly, users in a simple and robust manner.

Version Control with Git, un tutorial creado por Software Carpentry, una organización especializada en educación para cómputo científico.

Guía de 15 minutos en GitHub.

Guías y manuales en la página oficial del protocolo Git.

2. Generar un Readme

El Readme.md deberá responder a las preguntas ¿qué? y ¿cómo?. Deberá presentar con claridad el objetivo y alcance del software, las variables y unidades que lo componen, así como información sobre cómo instalar el software y cómo correrlo. Debe escribirse en formato Markdown o Restructured Text.

3. Adoptar la licencia GPL3

Compartir libremente no sólo facilita el desarrollo de la ciencia a través de replicación, validación y detección de errores: también previene fraudes y otras malas prácticas a través de la transparencia.

En este video Stephen Fry explica por qué software libre.

4. Adoptar el esquema de nombramiento de carpetas y archivos

4.1 Aportar datos de prueba

Es importante asegurarse de que los datos que acompañan el software sean de libre acceso. En caso de que los datos tengan restricciones, crear datos “dummy” que reporuzcan la estructura de los datos de entrada y que sean suficientes para correr el modelo.

5. Documentar el código

El uso de un sistema como Sphinx ayuda a crear documentación a partir del código fuente.

6. Adoptar estilo del código

Se sugiere incluir en cada archivo:

  1. Comentarios sobre derechos de autor y la licencia (GPL)
  2. Comentarios del autor
  3. Descripción general del archivo
  4. Descripción de las librerías
  5. Definición de funciones

6.1 En Python

Programas escritos en Python deben considerar la guía sugerida en PEP 8.

En el editor Atom hay un plugin que verifica automáticamente el estilo.

6.2 En R

Acá hay tres guías de estilo para el lenguaje R:

El paquete lintr automatiza la verificación del estilo en R.

7. Redactar viñeta para su publicación en la página web del LANCIS

En el repositorio de la página del laboratorio hay varios ejemplos de viñetas.

8. Publicar en repositorios oficiales de software

El repositorio oficial de Python es el Python Package Index. El de R es CRAN. El de Perl CPAN.


Referencias

Ten simple rules for effective computational research

Scientific Utopia: I. Opening Scientific Communication