Master de II. ULL. 1er cuatrimestre
Al aceptar la asignación se le pedirá el nombre del equipo. Deberá darle como nombre
Nombre-Apellidos-aluXXX
(sin acentos ni caracteres especiales). Los equipos son de un sólo miembro.
Partiendo de la gh extension escrita en la práctica gh-cli construya un paquete npm y
publíquelo en npmjs con ámbito @aluXXX
.
Si no lo hizo, intente reescribir los requests en GraphQL.
El módulo además de exportar las funciones que sean necesarias deberá proveer el ejecutable gh-my-extension
Reescriba la extensión gh-cli que escribió en la práctica anterior para que haga uso del módulo creado en esta práctica. Recuerde que el ejecutable queda en node_modules/.bin
La mayor parte de los conceptos y habilidades a adquirir con esta práctica se explican en la sección Creating and publishing a node.js module en GitHub y en NPM. Léala con detenimiento antes de hacer esta práctica.
El módulo lo puede publicar como CommonJS o ES
Deberá publicar el paquete en npmjs con ámbito @aluXXX
y con nombre gh-...
. Sustituya los tres puntos por el nombre de su extensión.
Para saber sobre ámbitos, vea la sección Scopes and Registries.
Deberá añadir pruebas usando Mocha y Chai o Jest. Repase las secciones Testing with Mocha and Chai y Jest.
Use GitHub Actions para la ejecución de las pruebas
Compruebe que las pruebas pasan en los tres O.S: Linux, MacOS y Windows.
Documente
el módulo incorporando un README.md
y la documentación de la función exportada.
Repase la sección Documenting the JavaScript Sources
Crea un repo testing-gh-...
dentro de la organización.
Añada las pruebas necesarias para comprobar que la última versión del paquete publicado se instala y puede ser usado.
Repase la sección Testing in Production
Use GitHub Actions para la ejecución de las pruebas
Compruebe que las pruebas pasan en los tres O.S: Linux, MacOS y Windows
Crea dentro de la organización un repo con nombre para que contenga
a a los dos repos: en el que ha desarrollado el módulo npm gh-...
y el repo para las pruebas en tiempo de producción testing-gh-...
.
Usando git submodule
configura como super-project dicho repo.
Repase la sección Making a Project with the two repos: git submodule
Publique alguna mejora en la funcionalidad del módulo.
¿Como debe en tales casos cambiar el nº de versión?
Repase la sección Semantic Versioning
npm Module
El paquete está publicado en npmjs con ámbito aluXXX
Contiene un ejecutable que se ejecuta correctamente (--help
, etc.)
El módulo exporta las funciones adecuadas
Contiene suficientes tests
Opcional: estudio de covering
Se ha hecho CI con GitHub Actions y se ejecuta en los tres O.S.
Los informes están bien presentados
La documentación es completa: API, ejecutable, instalación, etc.
Opcional: publicar la documentación de la API usando GitHub Pages en la carpeta docs/
Las pruebas de producción funcionan bien
Probar que la librería está accesible y funciona
Probar que el ejecutable queda correctamente instalado, puede ser ejecutado con el nombre publicado y produce salidas correctas
El superproyecto está correctamente estructurado usando submódulos
Se ha hecho un buen uso del versionado semántico en la evolución del módulo