Gem Version Build Status

Yanapiri

logo

Yanapiri es un vocablo aymara que significa "ayudante" o "el que ayuda".

A partir de este humilde aporte, es también una aplicación de línea de comandos (CLI) para asistir a docentes en ciertas tareas relacionadas al manejo de entregas a través de GitHub Classroom.

Instalación

Yanapiri funciona con Ruby, por lo cual es necesario instalarlo antes. Podés consultar cómo hacerlo en la documentación oficial.

Una vez que tu entorno Ruby esté funcionando, ejecutá lo siguiente:

gem install yanapiri

Luego, por única vez, deberás darle a yanapiri un access token de GitHub y una organización por defecto sobre la cual trabajar. Para ello, ejecutá el siguiente comando:

yanapiri setup

Uso

Podés ver una lista de los comandos existentes ejecutando yanapiri help. Un flujo de trabajo típico sería el siguiente:

yanapiri clonar entrega-1
yanapiri corregir entrega-1 --commit-base 326336a8ba771611 --fecha-limite "2019-05-01 23:59:59"

Otra opción posible, para cuando el commit base no es el mismo para todas las entregas, es especificarlo mediante un índice (con base 1). Por ejemplo, esto tomará como base al tercer commit que tenga el repositorio:

yanapiri corregir entrega-1 --commit-base index:3 --fecha-limite "2019-05-01 23:59:59"

Trabajando con más de una organización

Yanapiri soporta tres formas de configurar la organización:

  • global, que se configura con yanapiri setup;
  • local, que se configura con yanapiri init;
  • por parámetro, que se configura con la opción --orga.

Para los casos en que se necesite trabajar regularmente con más de una organización (por ejemplo, si tenés varios cursos) conviene utilizar la configuración local.

Un ejemplo de estructura de directorios podría ser el siguiente:

entregas
├── une-objetos1
└── unlu-intro

Para escribir la configuración local, habría que ejecutar yanapiri init en cada uno de los subdirectorios.

Releases

Utilizamos la gema bump para generar los releases, en conjunto con gren para actualizar la información en GitHub Releases.

Las versiones se nombran según la especificación Semantic Versioning 2.0.0 y son publicadas automáticamente en RubyGems gracias a Travis.

Para publicar una nueva versión (un patch, en este ejemplo), hay que ejecutar lo siguiente:

rake bump:patch             # o bien bump:minor o bump:major
git push --follow-tags

Agradecimientos

Gracias a Elizabeth Arostegui, autora de la cholita que usamos como logo de Yanapiri. Podés ver otros íconos de esa gran colección entrando a su sitio Cosmocollita.