beez-ui 0.6.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/README.md +30 -13
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Cambios
|
|
2
2
|
|
|
3
|
+
Todos los cambios relevantes de beez-ui se documentan en este archivo con el formato de [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y versionado [SemVer](https://semver.org/lang/es/). Cada cambio agrega sus entradas en `[Unreleased]`; `pnpm create-version` las pasa a la versión publicada con su fecha.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [0.6.2] - 2026-09-26
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- El comando de release (`pnpm create-version`, alias `pnpm cv`) toma las notas del bloque `[Unreleased]` del CHANGELOG, les asigna la versión y la fecha, y pide a Codex que lo complete cuando está vacío.
|
|
12
|
+
- Las cajas del comando de release ajustan el texto largo en varias líneas en lugar de cortarlo.
|
|
13
|
+
- Un release interrumpido reusa automáticamente el artefacto ya preparado cuando es posterior al último cambio de código.
|
|
14
|
+
|
|
15
|
+
### Removed
|
|
16
|
+
|
|
17
|
+
- La opción `--notes` y las preguntas sobre las notas del CHANGELOG y sobre reusar el artefacto preparado.
|
|
18
|
+
|
|
19
|
+
## 0.6.1 - 2026-09-26
|
|
20
|
+
|
|
21
|
+
- Actualiza pnpm a 12.6.0 y next a 16.3.6
|
|
22
|
+
- Add terminal UI for interactive prompts and spinners
|
|
23
|
+
- Update release banner and icons for improved visibility
|
|
24
|
+
- Remove create-version script
|
|
25
|
+
- Update release command to create-version and improve documentation
|
|
26
|
+
|
|
3
27
|
## 0.6.0 - 2026-09-23
|
|
4
28
|
|
|
5
29
|
- Actualiza el paquete a la versión 0.6.0.
|
package/README.md
CHANGED
|
@@ -201,27 +201,44 @@ El compilador `tsc` es TypeScript 7. Para `typescript-eslint`, se mantiene la [A
|
|
|
201
201
|
|
|
202
202
|
## Crear y publicar una versión
|
|
203
203
|
|
|
204
|
-
Desde el repositorio de beez-ui, configurar `NPM_TOKEN` con permiso de publicación en el entorno o en `.env`, tomando `.env.example` como referencia. Mantener el archivo local existente si ya está configurado.
|
|
204
|
+
Desde el repositorio de beez-ui, configurar `NPM_TOKEN` con permiso de publicación en el entorno o en `.env`, tomando `.env.example` como referencia. Mantener el archivo local existente si ya está configurado.
|
|
205
|
+
|
|
206
|
+
### Un solo comando: `pnpm create-version` (alias `pnpm cv`)
|
|
205
207
|
|
|
206
208
|
```sh
|
|
207
|
-
pnpm
|
|
208
|
-
pnpm
|
|
209
|
-
pnpm
|
|
209
|
+
pnpm create-version # diagnóstico, plan y release interactivo
|
|
210
|
+
pnpm create-version --bump minor # patch | minor | major sin preguntar
|
|
211
|
+
pnpm create-version --set-version 0.7.0 # versión exacta
|
|
212
|
+
pnpm create-version --dry-run # solo muestra el diagnóstico y el plan
|
|
213
|
+
pnpm cv # alias de pnpm create-version
|
|
210
214
|
```
|
|
211
215
|
|
|
212
|
-
|
|
216
|
+
El comando hace `git fetch`, consulta npm y muestra un panel con la rama, el upstream, el working tree, `main` frente a origin, la versión local, la última versión publicada, los commits posteriores al último cambio de versión y el artefacto ya preparado. Después decide qué falta:
|
|
217
|
+
|
|
218
|
+
- **Release nuevo**: si hay commits sin publicar, sugiere `patch`, `minor` o `major` según los commits (breaking change, funcionalidades o solo arreglos) y pregunta con las flechas. Las notas salen del bloque `## [Unreleased]` de `CHANGELOG.md` (ver la sección CHANGELOG más abajo); si está vacío, invoca a Codex (`codex exec`) para completarlo desde los commits sin publicar y muestra el resultado, y si Codex no está o no escribe nada válido, el release se corta. Tras confirmar ejecuta el flujo validado completo (ver abajo).
|
|
219
|
+
- **Release a medio terminar**: si `package.json` tiene una versión que npm todavía no tiene, completa solo lo que falta: si `package.json` y `CHANGELOG.md` quedaron sin commitear los commitea primero; después prepara el artefacto (reusa automáticamente el ya preparado cuando es posterior al último cambio de código, y `release:publish` lo vuelve a verificar), pushea el commit de release si todavía no está en origin y publica (la confirmación del inicio cubre la publicación). Nunca vuelve a subir la versión.
|
|
220
|
+
- **Todo al día**: si la versión está publicada y no hay commits nuevos, no hace nada.
|
|
221
|
+
|
|
222
|
+
`--set-version` sólo acepta el siguiente patch, minor o major de la versión actual (desde `0.6.0`: `0.6.1`, `0.7.0` o `1.0.0`); rechaza versiones menores, iguales, prerelease o que salteen versiones. Los releases salen sólo desde `main` con upstream configurado. Se detiene y explica qué hacer ante otra rama, `HEAD` desacoplado, cambios sin commitear (salvo `CHANGELOG.md` en un release nuevo, que viaja en el commit de release, o `package.json` y `CHANGELOG.md` de un release a medio terminar), secciones de `[Unreleased]` fuera de las de Keep a Changelog, `main` divergida o npm sin respuesta; un bloqueo termina con código 0 porque ya está explicado en pantalla, y un paso fallido termina con código 1. Si `main` está atrás, la actualiza con fast-forward antes de versionar. Si algo falla, basta con volver a ejecutar `pnpm create-version`: retoma desde el primer paso pendiente. Las opciones de cada pregunta están numeradas: se eligen apretando su número, o con las flechas y Enter; cada versión muestra debajo qué significa patch, minor o major. Sin terminal interactiva cada pregunta toma su opción por defecto. El tiempo total que muestra al final no cuenta el tiempo que espera tus respuestas.
|
|
223
|
+
|
|
224
|
+
La lógica pura vive en `scripts/release-plan.js` y `scripts/changelog.js` (lectura y release de `[Unreleased]`), la invocación de Codex en `scripts/changelog-ai.js`, la lectura de Git y npm en `scripts/release-state.js`, la UI de terminal (cajas, colores, íconos Nerd Font, spinner y selector) en `scripts/terminal-ui.js` y el orquestador en `scripts/release.js`, sin dependencias nuevas. Los íconos requieren una Nerd Font en la terminal.
|
|
225
|
+
|
|
226
|
+
### CHANGELOG
|
|
227
|
+
|
|
228
|
+
`CHANGELOG.md` sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/). Cada cambio agrega sus entradas en el bloque `## [Unreleased]`, agrupadas en `### Added`, `### Changed`, `### Deprecated`, `### Removed`, `### Fixed` y `### Security` (solo las que apliquen). Nunca se escriben la versión ni la fecha a mano: `pnpm create-version` las agrega al publicar. Las versiones anteriores a este formato (`## 0.6.1 - 2026-09-26`) siguen siendo válidas. La regla completa está en `AGENTS.md`.
|
|
213
229
|
|
|
214
|
-
|
|
230
|
+
### Flujo validado de un release nuevo
|
|
215
231
|
|
|
216
|
-
1. Actualiza `package.json` y
|
|
217
|
-
2.
|
|
218
|
-
3.
|
|
219
|
-
4.
|
|
220
|
-
5.
|
|
232
|
+
1. Actualiza `package.json` y renombra `## [Unreleased]` a `## [X.Y.Z] - AAAA-MM-DD` (fecha UTC), dejando un `[Unreleased]` vacío arriba y conservando el historial (`scripts/release-version.js`). Si `[Unreleased]` no tiene cambios o usa secciones no válidas, no toca nada.
|
|
233
|
+
2. Commitea en el momento `package.json` y `CHANGELOG.md` (sólo esos dos archivos, conservando otros archivos staged), antes de las validaciones largas: si algo se corta después, queda un commit local y nunca metadata suelta.
|
|
234
|
+
3. Prepara la release: instalación congelada, tests sin React Compiler, build optimizado de JavaScript, tipos y CSS, lint, typechecks, tests unitarios y pruebas de navegador.
|
|
235
|
+
4. Genera el tarball en `releases/<version>-<sha256>/beez-ui-<version>.tgz` y valida su contenido, exports e integridad.
|
|
236
|
+
5. Pushea el commit de release a la rama upstream configurada, sólo si sigue siendo el commit actual.
|
|
237
|
+
6. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
|
|
221
238
|
|
|
222
|
-
La publicación usa el cliente oficial de npm para admitir su flujo interactivo de verificación en el navegador/2FA. Instalación, build y checks siguen usando pnpm 12. Ejecutar desde una terminal interactiva cuando la cuenta requiera autenticación adicional. El token se carga sólo al publicar
|
|
239
|
+
La publicación usa el cliente oficial de npm para admitir su flujo interactivo de verificación en el navegador/2FA. Instalación, build y checks siguen usando pnpm 12. Ejecutar desde una terminal interactiva cuando la cuenta requiera autenticación adicional. El token se carga sólo al publicar y no se imprime. El repositorio no tiene `.npmrc`: pnpm 12 ignora las variables de entorno en credenciales controladas por el repositorio y avisaba en cada comando. `release:publish` crea un config temporal de npm fuera del repositorio que sólo referencia `${NPM_TOKEN}` (npm lo expande desde el entorno; el token no se escribe en disco ni en la línea de comandos), lo pasa con `--userconfig` y lo borra al terminar, también si la publicación falla (`scripts/npm-auth.js`).
|
|
223
240
|
|
|
224
|
-
El
|
|
241
|
+
El commit se limita a los dos archivos de metadatos, incluidos sus cambios previos; revisar el código antes de ejecutar la release. No crea tags ni hace force push. Si cambian el checkout, el upstream o los metadatos durante las validaciones, se detiene. También comprueba que los hooks de Git no hayan agregado archivos ni alterado los metadatos validados antes de pushear. Si falla una validación o el push, no publica y el commit de release queda en local: `pnpm create-version` lo detecta y retoma sólo lo que falte (preparar, pushear, publicar), sin volver a subir la versión. Si falla la publicación, comprobar primero si npm recibió la versión; si no, `pnpm create-version` reintenta sólo la publicación del mismo tarball.
|
|
225
242
|
|
|
226
243
|
Los pasos individuales siguen disponibles:
|
|
227
244
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beez-ui",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"description": "Shared UI components with the customizations extracted from TuTribu.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
290
290
|
"happy-dom": "^20.14.0",
|
|
291
291
|
"lucide-react": "^1.41.0",
|
|
292
|
-
"next": "^16.3.
|
|
292
|
+
"next": "^16.3.6",
|
|
293
293
|
"oxc-parser": "^0.149.0",
|
|
294
294
|
"oxc-transform-react": "^0.149.0",
|
|
295
295
|
"react": "^19.3.0",
|
|
@@ -338,7 +338,8 @@
|
|
|
338
338
|
"lint": "eslint .",
|
|
339
339
|
"test:browser": "pnpm build && playwright test",
|
|
340
340
|
"build": "node scripts/build.js",
|
|
341
|
-
"create-version": "node scripts/
|
|
341
|
+
"create-version": "node scripts/release.js",
|
|
342
|
+
"cv": "node scripts/release.js",
|
|
342
343
|
"release:prepare": "node scripts/prepare-release.js",
|
|
343
344
|
"release:publish": "node scripts/publish-release.js",
|
|
344
345
|
"storybook": "pnpm build && storybook dev -p 6006 --no-open",
|