← Cerrar y publicar la versión

Sesión 6

Cierre y publicación de la primera versión

Antes de empezar. El portfolio supera ya las comprobaciones del pipeline. En esta sesión se cierra una versión identificada y se verifica si una persona ajena al proyecto es capaz de comprenderlo y utilizarlo.

Evaluación inicial · sin apuntes

  1. Una persona accede a tu repositorio sin conocer el proyecto. ¿Cuánto tiempo necesita para determinar qué es y verlo en funcionamiento?
  2. El portfolio actual y el de dentro de dos meses serán distintos. ¿Mediante qué mecanismo se identifica de forma inequívoca el estado de hoy?
  3. Si hubiera que acreditar dieciocho horas de trabajo distribuidas en seis semanas, ¿qué evidencias lo demostrarían?

Se explica

25 minutos · explicación conceptual y demostración técnica

El README como punto de entrada del repositorio

A un repositorio público acceden dos perfiles de visitante: quien evalúa el uso del proyecto y quien evalúa profesionalmente a su autor. Ambos consultan el mismo documento, le dedican menos de un minuto y abandonan si en ese intervalo no identifican qué están consultando.

README de ejercicio académico

«Proyecto de la primera evaluación del módulo de Proyecto Intermodular. Alumno: … Curso: 2.º DAW.» Está redactado para el docente, que ya dispone de esa información. Para cualquier otro lector carece de contenido informativo.

README de producto profesional

Qué es el proyecto, enlace a la versión en funcionamiento, con qué tecnologías está construido y cómo se publica. Está redactado para quien no conoce ni el proyecto ni a su autor y decide en menos de un minuto si continúa la lectura.

La estructura acordada consta de seis apartados. Un documento extenso no cumple su función, porque no se lee.

Apartado Contenido Defecto habitual
Título y descripción Qué es el proyecto, en una línea y sin adjetivación Consignar el nombre del módulo en lugar del proyecto
Enlace a la versión publicada La URL pública, en posición destacada Situarlo al final del documento u omitirlo
Captura Una imagen de la interfaz real Omitirla, lo que obliga a abrir el enlace para valorar el proyecto
Arquitectura y tecnologías Relación breve y verificable de lo empleado Ampliar la relación con tecnologías de uso marginal
Procedimiento de despliegue Qué lo desencadena, qué proceso lo ejecuta y cuál es el destino Redactarlo presuponiendo conocimiento previo del repositorio
Validaciones del pipeline Las cuatro comprobaciones, con una frase cada una Omitirlo, con la consiguiente pérdida del elemento más diferenciador

El apartado con mayor valor diferencial

El último. Un sitio web personal es un producto habitual en cualquier promoción; un repositorio en el que cada cambio ha superado una pull request que impedía la fusión ante marcado inválido, enlaces no resolubles o una puntuación de accesibilidad inferior a 90 constituye una evidencia metodológica infrecuente. Esa información no es deducible desde el exterior del repositorio: debe documentarse de forma explícita.

La versión como referencia inmutable

Etiqueta (tag)

Referencia asignada a un commit determinado. A diferencia de una rama, que avanza conforme se incorporan nuevos commits, una etiqueta es inmutable: v1.0.0 identifica hoy y de forma indefinida el mismo estado del proyecto.

Release

Publicación de una etiqueta acompañada de un título y unas notas que describen su contenido. La etiqueta es una referencia del sistema de control de versiones; la release es el documento dirigido a las personas.

Sin un esquema de versionado, la única forma de referirse a un estado del proyecto consiste en una referencia temporal imprecisa o en el identificador hexadecimal de un commit. El versionado permite afirmar que una demostración concreta correspondió a la versión 1.0 y recuperar ese estado de forma exacta.

Versionado semántico

El esquema empleado es el versionado semántico (Semantic Versioning 2.0.0), convención adoptada de forma generalizada en la distribución de software.

Estructura
MAYOR.MENOR.PARCHE, por ejemplo 1.4.2. Cada posición responde a un criterio distinto y su incremento transmite información al consumidor del software.
Incremento del parche
Corrección de un defecto sin incorporación de funcionalidad: un enlace no resoluble, un contraste insuficiente, una errata. De 1.0.0 a 1.0.1.
Incremento de la versión menor
Incorporación de funcionalidad nueva que mantiene la compatibilidad con la anterior. Una sección adicional del portfolio: de 1.0.1 a 1.1.0.
Incremento de la versión mayor
Modificación incompatible con la versión precedente (breaking change). Es una situación infrecuente en un sitio estático, pero habitual en el diseño de la API de la segunda evaluación.
Reinicio de las posiciones inferiores
Al incrementar una posición, las situadas a su derecha se restablecen a cero: de 1.4.2, al añadir una sección, se pasa a 1.5.0 y no a 1.5.2.

La versión que se publica en esta sesión es la 1.0.0, y no porque el desarrollo haya concluido, sino porque el producto satisface íntegramente el alcance comprometido. Un proyecto que nunca alcanza la versión 1.0 refleja la ausencia de una decisión sobre su alcance.

Criterios de auditoría del rastro de desarrollo

Los criterios de evaluación de diciembre son públicos, dado que corresponden a la aplicación de la definición de terminado de la UD1 sobre seis semanas de trabajo.

Evidencias evaluables en el historial del repositorio
  1. Distribución temporalCommits y pull requests repartidos entre las semanas del periodo, sin concentración en fechas próximas a la entrega.
  2. TrazabilidadCada pull request referencia la issue que resuelve, y cada issue se cierra desde la pull request correspondiente.
  3. ControlesNinguna fusión con comprobaciones en estado fallido y ningún commit directo sobre la rama principal.
  4. RevisiónRevisiones propias registradas en el repositorio de la pareja asignada, con indicación de qué se verificó.
  5. CierreUna versión publicada con notas comprensibles sin acceso al código fuente.

La sesión incluye la auditoría de ese rastro en un repositorio ajeno, procedimiento que constituye la forma más eficaz de aprender a evaluar el propio.


Se trabaja

140 minutos · trabajo práctico guiado sobre el proyecto base

Bloque A · Redacción del README

Trabajo individual: issue, rama y pull request

1 · Issue. «Escribir el README del portfolio», con el siguiente criterio de aceptación: una persona que desconoce el proyecto comprende qué es, accede a la versión en funcionamiento y deduce cómo se publica, sin formular ninguna consulta.

2 · Captura. Antes de redactar, genera una captura del portfolio en su estado actual y almacénala en el repositorio, por ejemplo en docs/portada.png. Controla su peso: el job de calidad de la UD2 penaliza los recursos de tamaño desproporcionado.

3 · Redacción de los seis apartados. Sin contenido de relleno y sin fórmulas de disculpa. Expresiones como «es un proyecto sencillo hecho para clase» degradan la percepción del trabajo y esa valoración corresponde a quien lee.

Redacción del apartado de despliegue para un lector externo

Formulación insuficiente: «Se ejecuta el workflow de despliegue», que no aporta información a quien desconoce el repositorio. Formulación adecuada: «Cada cambio incorporado a main se publica de forma automática en GitHub Pages mediante GitHub Actions. Con anterioridad a su incorporación, cada pull request debe superar cuatro comprobaciones automáticas y la revisión de otra persona». Dos frases permiten comprender el procedimiento completo sin consultar ningún archivo.

4 · Insignias de estado. Una línea situada bajo el título que refleja en tiempo real el resultado del pipeline:

![CI](https://github.com/TU-USUARIO/portfolio/actions/workflows/ci.yml/badge.svg)

No constituye un elemento decorativo: es el primer indicador que consulta un lector con criterio técnico.

5 · Pull request, revisión y fusión. Conforme al procedimiento establecido. La revisión de la pareja asignada resulta aquí especialmente pertinente, dado que corresponde exactamente al perfil de lector para el que se redacta el documento: solicítale que identifique qué apartados no ha comprendido.

Lista de verificación del bloque A

  • Los seis apartados, en el orden establecido y sin apartados adicionales.
  • La URL pública visible sin necesidad de desplazamiento vertical.
  • La captura se renderiza correctamente en el repositorio y su ruta resuelve.
  • La pareja de revisión ha identificado los apartados no comprendidos y se han corregido.

Bloque B · Publicación de la versión 1.0.0

Trabajo individual, desde main actualizada

1 · Creación de la etiqueta. Se asigna sobre main, con el README ya fusionado:

git switch main
git pull
git tag -a v1.0.0 -m "Primera version publica del portfolio"
git push origin v1.0.0

La opción -a genera una etiqueta anotada, que constituye un objeto propio del repositorio con autoría, fecha y mensaje, frente a la etiqueta ligera, que es únicamente un puntero. El envío de la etiqueta requiere una instrucción específica: git push sin argumentos no transfiere las etiquetas al repositorio remoto.

2 · Creación de la release. En GitHub: pestaña ReleasesDraft a new release → en Choose a tag, selecciona v1.0.0 → título v1.0.0 · Portfolio publicado.

3 · Redacción de las notas. La opción Generate release notes produce un borrador a partir de las pull requests fusionadas. Ese borrador constituye material de partida, no el documento final: sobre él se redactan tres o cuatro líneas que respondan al criterio que interesa a quien consulta una release, esto es, qué permite hacer esta versión que la anterior no permitía.

Notas generadas automáticamente

«Merge pull request #12 from usuario/12-seccion-proyectos». La información es exacta, pero solo resulta interpretable para quien participó en el desarrollo.

Notas redactadas

«Primera versión pública. Portfolio con presentación, proyectos y contacto, publicado automáticamente en cada cambio. Toda incorporación supera cuatro comprobaciones: validez del marcado, disponibilidad de los enlaces, formato y una puntuación mínima de accesibilidad de 90.»

4 · Publicación mediante Publish release, y verificación de que la versión figura en la portada del repositorio.

Bloque C · Auditoría por pares del repositorio

Por parejas, cada persona sobre el repositorio de la otra

El objeto de esta auditoría no es una pull request concreta, sino seis semanas de desarrollo en conjunto. Recorre el repositorio de tu pareja conforme a la siguiente relación de criterios y registra la evidencia concreta, no la valoración general.

Criterio Ubicación de la evidencia Dato que se registra
Distribución temporal Pestaña Insights → Commits, o el listado de pull requests con sus fechas Número de semanas distintas con actividad registrada
Trazabilidad Cada pull request cerrada Cuántas referencian la issue que resuelven y cuántas no
Cumplimiento de los controles Historial de main Existencia de commits que no procedan de una fusión
Calidad del README Lectura del documento sin conocimiento previo del proyecto Qué apartados resultan incomprensibles, con la cita literal
Release Pestaña Releases Si las notas resultan interpretables sin acceso al código

Procedimiento de comunicación de los hallazgos. Mediante la apertura de issues en el repositorio auditado. La condición de colaborador no es necesaria: el repositorio es público. Se abre una issue por hallazgo, con el formato establecido para las propias, esto es, título con verbo en infinitivo y cuerpo con la descripción de lo observado y su ubicación.

Naturaleza de una auditoría técnica

Una auditoría no consiste en un inventario de defectos. Se registran las incidencias susceptibles de corrección y también los elementos correctamente resueltos, dado que quien recibe el informe necesita conocer qué debe conservar. Un informe que únicamente consigna deficiencias se interpreta como una descalificación y se desatiende en su totalidad; un informe que no consigna ninguna evidencia el auditor no ha realizado la revisión.

Semanas distintas con actividad en el repositorio auditado
Pull requests sin issue asociada
Apartados no comprendidos del README, con la cita literal
El elemento mejor resuelto del repositorio auditado, y su fundamento

Bloque D · Respuesta a la auditoría recibida

Trabajo individual, sobre el repositorio propio

El repositorio propio contiene ahora issues abiertas por una persona externa al desarrollo. Es la primera vez que se produce esta situación y corresponde exactamente a la dinámica de un entorno profesional.

  1. Lee la totalidad de las issues antes de responder a ninguna.
  2. Las aceptadas se incorporan al tablero y se resuelven conforme al flujo de integración establecido.
  3. Las no aceptadas se cierran acompañadas de un comentario que motive la decisión. «No procede» no constituye una respuesta; «la captura ocupa 800 KB de forma deliberada porque el presupuesto de calidad no penaliza ese peso y la nitidez de la imagen es relevante en este contexto» sí lo es.
  4. Si se han incorporado correcciones, publica la versión v1.0.1 repitiendo el procedimiento del bloque B. Se trata de un incremento de parche: corrección sin funcionalidad nueva.
Objetivo mínimoREADME con los seis apartados, v1.0.0 publicada con notas redactadas, y la auditoría del repositorio de la pareja completada con sus issues abiertas.
AmpliaciónLa totalidad de las issues recibidas atendidas: resueltas o cerradas con motivación explícita.
RetoIncorporar al README un enlace dinámico a la última release publicada y verificar que continúa siendo correcto tras publicar la v1.0.1.

Cierre

15 minutos · comprobación del resultado

Trabajo esperado de la unidad

  • README de seis apartados, incorporado mediante pull request y revisado.
  • v1.0.0 etiquetada y publicada como release, con notas de elaboración propia.
  • Una auditoría completada sobre el repositorio de la pareja asignada, con sus issues correspondientes.
  • La totalidad de las issues recibidas, atendidas.
  • El primer proyecto de la evaluación, cerrado.

Autoevaluación conceptual · sin consulta de apuntes

  1. ¿A qué destinatario se dirige un README y qué apartado aporta mayor valor diferencial?
  2. ¿Qué diferencia existe entre una etiqueta y una rama?
  3. Se ha corregido un enlace no resoluble. ¿Qué versión corresponde publicar?
  4. Se ha incorporado una sección nueva sobre la versión 1.2.3. ¿Qué versión corresponde publicar?
  5. ¿Por qué es posible abrir una issue en el repositorio de otra persona sin ser colaborador?
  6. ¿Qué procedimiento corresponde ante una issue de la auditoría con la que no se coincide?
Ver respuestas

1 · A una persona que no conoce el proyecto ni a su autor. El apartado de mayor valor diferencial es el de las validaciones del pipeline, por tratarse de una evidencia metodológica infrecuente.

2 · La rama avanza conforme se incorporan commits; la etiqueta identifica un commit determinado y es inmutable.

3 · Un incremento de parche: 1.0.1. Corrección sin funcionalidad nueva.

4 · 1.3.0. Se incrementa la versión menor y la posición del parche se restablece a cero.

5 · Porque el repositorio es público. La escritura sobre el código requiere permisos; la apertura de una issue, no.

6 · Se cierra acompañada de un comentario que motive la decisión. El cierre sin justificación no es un procedimiento admisible.

Antes de la sesión 7

  • El portfolio dispone de una release publicada y de un README validado por la pareja de revisión.
  • Las issues de la auditoría están cerradas, resueltas o motivadas.
  • Una propuesta escrita sobre qué datos gestionará el CRUD del segundo proyecto: en la sesión 7 comienza su desarrollo y el flujo de integración pasa a aplicarse sin explicación previa.