Git y Moodle

Ahí por septiembre que anduve en un seminario en el IIEc y tuve la fortuna de compartir varias comidas con Gunnar, abrió una de las gratas platicas de sobremesa con -¿cual es tu flujo de trabajo habitual con git? A lo que conteste en ese entonces, «no tengo, sigo usando subversion» y del cual hubo una interesante discusión de la que vale la pena escribir en otro momento

Más pronto de lo que hubiera deseado me encontré con la necesidad de implementar git ya que tengo más de una veintena de instancias de Moodle en al menos 4 maquinas con distribuciones diferentes y por ende versiones de software diferentes, pero más o menos un set de temas, plugins y modificaciones más o menos homogéneo, yo creo que a la semana de esta pregunta de sobremesa tuve que hacer un crash learning de lo que recordaba de git, status, commit, pull y aprender cual es el flujo diario de trabajo, el cual recomiendo para alguien que necesite un repaso de 10 minutos [1] e investigar como construir mi propio repositorio privado para mi versión especifica con sus modificaciones.

Lejos esta este de ser ese por un manual de como hacerlo, me puse a pensar tengo un montón de instancias, cual será la mejor forma de manejarlas, hasta el momento lo que hacia simplemente era clonar el LTS de Moodle via https en github, es decir prácticamente lo que dice que haga uno en la página de la documentación de Moodle [2] es más hasta había recortado lo que clonaba a solo el release que me interesaba en su momento 3.1 que era el anterior LTS, ahora que el LTS es 3.5 primero probé con las versiones de php y tuve varios problemas, por lo que en 3.5.8 había un par de problemas que no me permitían actualizar con php 7.0.33 en todo caso esto hizo más apremiante crear mi propio repositorio [3,4] a donde puse todos mis cambios y ejercite mis recién recordados usos de git…

Esto resolvió y creo un problema interesante, resolvió que en mis servidores tengo bloqueado un montón de sitios por políticas del firewall entre ellos github, go figure, por lo que hacia un pequeño túnel para que localhost se convirtiera en github, eso lo soluciono tener mi propio repositorio interno y en una de mis maquinas, ademas de añadir velocidad a mover archivos, pero me creo el problema de tener que entrar mi contraseña por todos lados, por supuesto crear una llave ssh sin contraseña lo solucionaría por lo cual tuve que mover mi repositorio privado de mi maquina de oficina a una maquina con mejor uptime y en el site de la universidad, cosa sencilla pues es la misma maquina que actualmente se encarga de los respaldos.

Aquí como se ve mi git log

commit 5d20900043d1f96e74f9c001c55f866b9a0a5004 (HEAD -> master, origin/master, origin/HEAD)
Author: vicm3 <vicm3@blografia.net>
Date: Tue Jan 7 12:47:46 2020 -0600

Añado morecandy en compatibilidad con los sitios que aún lo requieren.

commit 8efdcfae566a4a4d7992e46baf8ec1b70426fc47
Author: vicm3 <vicm3@blografia.net>
Date: Sun Dec 29 15:14:22 2019 -0600

Paso de 3.5.8 a 3.5.9, janus y sagan están atrasados ya que no siguen este repositorio.

commit a8cc685c61ed8e32048ed5e378371e0b320061c3
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Fri Dec 27 13:27:35 2019 -0600

Y bueno parece que ahora requiere () en vez de {} :P a ver si se ponen
de acuerdo o ponen un ejemplo, de hecho voy a tener que ponerlo.

commit 13b5c644f5dc7b18066816d6fea1d0f9e59bb74e
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Fri Dec 27 11:18:54 2019 -0600

A probar si el error es por el [] en lugar de {} o tengo que buscar en
la documentación.

commit 426b566679bfd68c475a9d930855ca67f2d2d569
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Thu Dec 26 20:51:10 2019 -0600

Los cambios para el manejo del corro, que aún hay que probar y la
libreria phpmailer para que acepte linux como relay.

commit a5ba8d7b3a264016b8eb868db6efd18820d089ed
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Thu Dec 26 18:44:18 2019 -0600

Actualizo los configurable_reports y format_onetopic.

commit 7f6125d8e2f6919fa18da5c9972ca659c8a109de
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Thu Dec 26 17:58:29 2019 -0600

Pensando en como manejar todo el relajo que traigo para tener un solo
repo pero de las modificaciones que si hacemos.

commit 8149c639edae09cbd8aa910623f84da1324aae00
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Thu Oct 24 13:54:18 2019 -0500

Probando añadir cambios desde janus.

commit 0f89bd30f24711aa5ec11cc48c503db3af3c689a
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Wed Oct 2 23:57:32 2019 -0500

Canvas es dependencia de formal_white y como no puedo hacer push lo
habia dejado con el nombre incorrecto y mal puesto… Buhh

commit 36e4f980e13d34e8b69d5b13a610a73de50ed81f
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Wed Oct 2 23:52:23 2019 -0500

Añado theme_base como dependencia de forma_white

commit b1a10a5abe60535e2c86ab56f089faea23c0f551
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Wed Oct 2 23:22:05 2019 -0500

Formal_white lo requiere como theme_canvas, probemos.

commit 6b3a36ded35b93d323cfe4485376fd2cb9e58d83
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Wed Oct 2 23:18:46 2019 -0500

Añado canvas y formal_white para nuestro stack tener en cuenta que son
viejisimos y pueden causar problemas con muchos dispositivos.

commit d72aec2b88d630ab90301ebb9351ef024b747f94
Author: Víctor Martínez <victor.m3@gmail.com>
Date: Wed Oct 2 23:05:38 2019 -0500

Para usar formal_white hay que poner todas sus dependencias, canvas y
otros dos que ya no están soportados hace tiempo, vale la pena?

commit 267198eecfaa0a054ebfeadcd58142653d1ad20e
Author: root <root@formaciontutores.ajusco.upn.mx>
Date: Wed Oct 2 22:29:55 2019 -0500

añado themes, configurable_reports y course_format_onetopic

commit 38a3831b1a3e63462309c79bfa9171f0ab82e18a
Author: root <root@formaciontutores.ajusco.upn.mx>
Date: Wed Oct 2 22:25:37 2019 -0500

Primer commit

Y claro simplemente hacer git pull en cada maquina me ha simplificado la vida, me simplificarla aún más la vida añadir a los hooks que cuando hago push lanzara los scripts que tengo para hacer pull y los de actualización, pero como no hago pruebas estandarizadas y pudiera tronar como un gigantesco ejote de momento hasta aquí me parece una mejor practica que estar siguiendo el HEAD de Moodle sin mayores cambios, lo cual rompió un par de instalaciones en el pasado por que tengo maquinas con CentOS, Debian y Ubuntu.

Bien dice el dicho, todos tenemos ambientes de desarrollo y de producción hay quien tiene la suerte de tenerlos separados ;) en mi caso esa separación se encuentra en que no se propaga automáticamente y que puedo ir probar maquina por maquina y luego correr la automatización, se que no es lo ideal, pero me funciona bastante bien.

Y claro, todavía no tengo un flujo ‘sano/diario’ de trabajo en git.

[1] https://rogerdudler.github.io/git-guide/
[2] https://docs.moodle.org/38/en/Git_for_Administrators
[3] https://stackoverflow.com/questions/7632454/how-do-you-use-git-bare-init-repository
[4] https://mijingo.com/blog/what-is-a-bare-git-repository

Esta entrada fue publicada en Debraye, General, planetalinux, sysadmin, Trabajo. Guarda el enlace permanente.

2 respuestas a Git y Moodle

  1. Gunnar dijo:

    Bienvenido al lado correcto de la fuerza :-]

    Por si sirve de aliciente — Desde la versión 3.2.algo, yo actualizo el Moodle del IIEc (con muy poquitito uso) exclusivamente con «git pull» seguido de llamar al update.php de Moodle con «updb» (¿era así?), con hasta ahora muy buenos resultados.

    Cada proyecto y necesidad tiene usos y patrones distintos :-]

    • vicm3 dijo:

      Como platicamos ese día, ya usaba git de manera cotidiana, svn sigue siendo mi entorno diario, no había tenido una necesidad real de usar git de manera intensiva y en este caso git ofreció ventajas muy superiores a svn.

      Desde 2.7 vengo actualizando Moodle con git, pero simplemente siguiendo el HEAD de stable… ahora finalmente me animé a organizar mi tiradero y al ver que hacer mi repositorio privado tomaba minutos, me seguí… a ver si en post siguiente o como añadido pongo mis scripts que están feos pero ingeniosos.

      Igual ahora ya tengo más para seguir esa platica de sobremesa.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.