Changeset
Crea archivos changeset para el monorepo de Astro. Los changesets declaran qué paquetes cambiaron, el tipo de bump semver y un mensaje orientado al usuario que se convierte en la entrada del CHANGELOG.
Cada PR que modifica un paquete requiere un changeset. Solo los cambios en examples/* están exentos.
Creación del archivo
Ejecuta pnpm changeset --empty desde la raíz del repositorio. Esto crea un archivo .md con nombre aleatorio en .changeset/ con front matter vacío — no es necesario inventar un nombre de archivo ni inspeccionar el directorio. Luego edita el archivo generado para agregar el bump del paquete y el mensaje.
Formato
---
'<nombre-del-paquete>': patch
---
<mensaje del changeset>
- Los nombres de paquete deben coincidir exactamente con el campo
nameen elpackage.jsondel paquete (por ejemplo,'astro','@astrojs/node') - Tipos de bump:
patch,minoromajor - Un solo archivo changeset puede cubrir múltiples paquetes
- Los bumps
majoryminoral paqueteastroprincipal están bloqueados por CI y requieren revisión de los mantenedores
Redacción del mensaje
El mensaje del changeset es una entrada pública del CHANGELOG. Escríbelo para usuarios de Astro, no para revisores de código.
Comienza con un verbo en presente que complete la oración "Este PR...":
- Agrega, Elimina, Corrige, Actualiza, Refactoriza, Mejora, Depreca
Describe el cambio tal como lo experimentará alguien que construye un sitio con Astro, no cómo se implementó internamente:
// Demasiado centrado en la implementación
Registra errores útiles si el contenido no es válido
// Mejor – impacto en el usuario
Agrega registro de errores de configuración de colecciones de contenido.
Actualizaciones de parche
Generalmente una línea es suficiente. No se requiere puntuación final a menos que se escriban varias oraciones.
---
'astro': patch
---
Corrige un error donde la auditoría de la barra de herramientas marcaba incorrectamente las imágenes como "above the fold"
---
'astro': patch
---
Refactoriza el manejo interno de estilos y scripts para colecciones de contenido con el fin de mejorar el rendimiento de compilación
Ayuda al lector a determinar si el cambio le afecta. Incluye el nombre específico de la API (con formato de backtick) cuando el cambio esté vinculado a una opción o función reconocible. Cuando la API no sea visible para el usuario, describe el caso de uso o el resultado final:
// Vago
Mejora la generación automática de fallbacks
// Claro – el lector puede saber si le afecta
Mejora la generación automática de `fallbacks` para la API experimental de Fonts
Nuevas funciones (minor)
Comienza con "Agrega", nombra la nueva API y describe lo que los usuarios pueden hacer ahora. Incluye un ejemplo de código cuando sea útil:
---
'astro': minor
---
Agrega una nueva propiedad opcional `timeout` para la directiva `client:idle`
Este valor permite especificar un tiempo máximo de espera, en milisegundos, antes de hidratar un componente de framework de UI.
```astro
<Button client:idle={{ timeout: 500 }} />
```
Las nuevas funciones son una oportunidad para escribir una descripción más completa que pueda alimentar publicaciones de blog. Consulta la documentación de cambiosets de Astro para obtener orientación sobre entradas más largas.
Cambios de ruptura (major)
Usa verbos como "Elimina", "Cambia" o "Depreca". Debe incluir orientación de migración. Usa ejemplos de código diff cuando sea apropiado:
---
'astro': major
---
Elimina el soporte para la propiedad `path` de lenguajes personalizados de Shiki. El archivo JSON del lenguaje ahora debe importarse y pasarse a la opción en su lugar.
```diff
// astro.config.js
+ import customLang from './custom.tmLanguage.json'
export default defineConfig({
markdown: {
shikiConfig: {
langs: [
- { path: './custom.tmLanguage.json' },
+ customLang,
],
},
},
})
```
Los cambios en los valores predeterminados deben mencionar el valor anterior, el nuevo valor y cómo restaurar el comportamiento anterior.
Changesets más largos
Para descripciones más extensas, usa encabezados #### y más profundos (nunca ## o ###) para dividir secciones. Esto mantiene el CHANGELOG legible cuando se incorpora tu entrada:
---
'astro': minor
---
Agrega una nueva API de Sesiones para almacenar el estado del usuario entre solicitudes en páginas renderizadas bajo demanda.
#### Configuración del almacenamiento de sesiones
<!-- ... -->
#### Uso de sesiones
<!-- ... -->