Sistemas y Tecnologías Web: Servidor

Master de II. ULL. 1er cuatrimestre


Organization ULL-MII-SYTWS-2122   Classroom ULL-MII-SYTWS-2122   Campus Virtual SYTWS   Chat Chat   Profesor Casiano

npm Module

Práctica de Grupo individual

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.

Objetivos

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

Ámbitos

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.

Pruebas

Deberá añadir pruebas usando Mocha y Chai o Jest. Repase las secciones Testing with Mocha and Chai y Jest.

Integración Contínua usando GitHub Actions

Use GitHub Actions para la ejecución de las pruebas

Compruebe que las pruebas pasan en los tres O.S: Linux, MacOS y Windows.

Documentación

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

Pruebas de Producción

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

Superproject with Git Submodule

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

Semantic Versioning

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

References

Rúbrica

Incidencias para el Project Board para la práctica

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

    1. Probar que la librería está accesible y funciona

    2. 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

Comment with GitHub Utterances