Project

yanapiri

0.0
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Ayudante para administrar entregas via GitHub Classroom.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.8
~> 2.0
~> 2.0
~> 10.0
~> 3.0

Runtime

~> 1.5
~> 4.0
~> 0.20
 Project Readme

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.

Pruebas locales

Para una prueba rápida, se puede instalar la gema localmente ejecutando rake install. Esto hará que el comando yanapiri ejecute el código local.

Durante el desarrollo es más cómodo no tener que correr rake install ante cada cambio, y para eso el proyecto incluye guard, una herramienta que se encarga de correrlo ante cada cambio. Basta con ejecutar bundle exec guard para que funcione (¡no olvides dejar abierta la terminal!).

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.