vtex-css-sanitizer-cli 1.0.5 → 1.0.8

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.
@@ -39,6 +39,10 @@ jobs:
39
39
  working-directory: gui
40
40
  run: yarn install --frozen-lockfile
41
41
 
42
+ - name: Sync version from tag
43
+ working-directory: gui
44
+ run: npm version "${GITHUB_REF_NAME#v}" --no-git-tag-version
45
+
42
46
  - name: Build & Package
43
47
  working-directory: gui
44
48
  run: yarn ${{ matrix.build_script }}
package/PUBLISHING.md ADDED
@@ -0,0 +1,84 @@
1
+ # Guía de Publicación y Releases
2
+
3
+ Este repositorio actúa como un monorepo que contiene 2 proyectos independientes que conviven juntos:
4
+
5
+ 1. **CLI (Línea de comandos)**: Publicado en el registro de `npm`.
6
+ 2. **GUI (Aplicación de Escritorio)**: Compilado y publicado en GitHub Releases a través de GitHub Actions.
7
+
8
+ A continuación se detallan los 3 escenarios posibles de publicación.
9
+
10
+ > **Nota sobre la versión de la GUI:** No es necesario actualizar manualmente la versión en `gui/package.json`. El workflow de GitHub Actions la sincroniza automáticamente desde el tag de Git antes de compilar.
11
+
12
+ ---
13
+
14
+ ## Escenario 1: Cambios en CLI y GUI
15
+
16
+ Cuando hay cambios en ambos proyectos, una sola secuencia de comandos publica todo:
17
+
18
+ ```bash
19
+ # 1. Compilar el CLI
20
+ npm run build
21
+
22
+ # 2. Bump de versión (genera commit + tag automáticamente)
23
+ npm version patch # o minor / major según corresponda
24
+
25
+ # 3. Publicar CLI en npm
26
+ npm publish
27
+
28
+ # 4. Push de todo (el tag v*.*.* dispara el build de la GUI)
29
+ git push origin main --follow-tags
30
+ ```
31
+
32
+ El `npm version` crea el tag `v*.*.*` que automáticamente dispara la GitHub Action para compilar y publicar la GUI.
33
+
34
+ ---
35
+
36
+ ## Escenario 2: Solo cambios en la GUI
37
+
38
+ Cuando los cambios fueron exclusivamente dentro de `/gui` y no hay nada nuevo en el CLI:
39
+
40
+ ```bash
41
+ # 1. Commit de los cambios
42
+ git add gui/
43
+ git commit -m "feat(gui): descripción del cambio"
44
+
45
+ # 2. Crear tag manualmente (la versión del tag se inyecta en gui/package.json durante el build)
46
+ git tag v1.0.8 # usar la versión que corresponda
47
+
48
+ # 3. Push de todo (el tag dispara el build de la GUI)
49
+ git push origin main --follow-tags
50
+ ```
51
+
52
+ > No se ejecuta `npm publish` porque no hay cambios en el CLI.
53
+
54
+ ---
55
+
56
+ ## Escenario 3: Solo cambios en el CLI
57
+
58
+ Cuando los cambios fueron exclusivamente en `/src` y no hay nada nuevo en la GUI:
59
+
60
+ ```bash
61
+ # 1. Compilar el CLI
62
+ npm run build
63
+
64
+ # 2. Bump de versión
65
+ npm version patch # o minor / major según corresponda
66
+
67
+ # 3. Publicar en npm
68
+ npm publish
69
+
70
+ # 4. Push de commits (sin --follow-tags para NO disparar el build de la GUI)
71
+ git push origin main
72
+ ```
73
+
74
+ > **Importante:** Se usa `git push origin main` (sin `--follow-tags`) para evitar que el tag dispare un release innecesario de la GUI. Si en el futuro querés generar un release de la GUI con esta misma versión, podés hacer `git push origin v*.*.*` manualmente.
75
+
76
+ ---
77
+
78
+ ## ¿Qué ocurre después de pushear un tag?
79
+
80
+ 1. GitHub intercepta el tag `v*.*.*` y automáticamente arranca la [GitHub Action programada](.github/workflows/release.yml).
81
+ 2. La Action levanta dos entornos virtuales en los servidores de GitHub (uno con Windows y otro con Ubuntu).
82
+ 3. Automáticamente ingresa a la carpeta `/gui`, instala dependencias, **sincroniza la versión del tag en `gui/package.json`**, compila el framework y genera los instaladores `.exe` (NSIS para Windows) y `.AppImage` (para Linux).
83
+ 4. La Action crea la entrada en la sección **Releases** de este repositorio y sube ambos binarios como *assets*.
84
+ 5. A partir de ese momento, los botones de la Landing Page empezarán a servir automáticamente esta nueva versión.
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  ---
9
9
 
10
- vtex-css-sanitizer es una herramienta de línea de comandos (CLI) diseñada para limpiar y optimizar las hojas de estilo en proyectos de **VTEX IO**. Analiza tu base de código para encontrar clases CSS huérfanas y declaraciones `blockClass` sin uso, ayudándote a mantener tu proyecto limpio, performante y fácil de mantener.
10
+ vtex-css-sanitizer es una herramienta diseñada para limpiar y optimizar las hojas de estilo en proyectos de **VTEX IO**. Analiza tu base de código para encontrar clases CSS huérfanas y declaraciones `blockClass` sin uso, ayudándote a mantener tu proyecto limpio, performante y fácil de mantener. Disponible como **Aplicación de Escritorio (GUI)** o como herramienta de **Línea de Comandos (CLI)**.
11
11
 
12
12
  ---
13
13
 
@@ -23,22 +23,35 @@ Estos restos de código aumentan el tamaño de los bundles y hacen que la base d
23
23
  ### ✨ Características
24
24
 
25
25
  - **Análisis Bidireccional:** Encuentra tanto CSS sin `blockClass` como `blockClass` sin CSS.
26
- - **Limpieza Interactiva:** El comando `fix` te guía a través de cada regla candidata, dándote el control total para decidir qué se elimina y qué se conserva.
26
+ - **Doble Interfaz:** Utilizalo desde tu terminal preferida (CLI) o a través de nuestra moderna Aplicación de Escritorio (GUI).
27
+ - **Limpieza Interactiva:** El proceso guiado te permite decidir qué se elimina y qué se conserva regla por regla.
27
28
  - **Inteligente:** Reconoce las clases de estado dinámicas de VTEX (ej. `--isActive`) y solo valida el `blockClass` principal.
28
29
  - **Seguro:** Ignora automáticamente los archivos CSS de componentes React custom para evitar falsos positivos.
29
30
  - **Informes Detallados:** Genera informes en formato Markdown de cada análisis y sesión de limpieza para un registro histórico.
30
31
 
31
- ### 📦 Instalación
32
+ ### 📦 Descargas e Instalación
32
33
 
33
- Para usar esta herramienta en cualquier proyecto de tu máquina, instálala globalmente:
34
+ Elegí la versión que mejor se adapte a tu necesidad:
35
+
36
+ #### 1. Versión GUI (Aplicación de Escritorio)
37
+
38
+ Interfaz visual intuitiva para analizar y limpiar tu proyecto sin tocar la terminal.
39
+ - **[Descargar para Windows (.exe)](https://github.com/emanueleelias/vtex-css-sanitizer/releases/latest)**
40
+ - **[Descargar para Linux (.AppImage)](https://github.com/emanueleelias/vtex-css-sanitizer/releases/latest)**
41
+
42
+ *(Los binarios se encuentran en la sección "Assets" de cada Release).*
43
+
44
+ #### 2. Versión CLI (Línea de Comandos)
45
+
46
+ Ideal para integrar en workflows de desarrollo. Para usar la herramienta en cualquier proyecto local, instálala globalmente vía npm:
34
47
 
35
48
  ```bash
36
49
  npm install -g vtex-css-sanitizer-cli
37
50
  ```
38
51
 
39
- ### 🚀 Uso
52
+ ### 🚀 Uso (Versión CLI)
40
53
 
41
- Navega a la carpeta raíz de tu proyecto VTEX IO y ejecuta los siguientes comandos.
54
+ Navega a la carpeta raíz de tu proyecto VTEX IO y ejecuta los siguientes comandos. *(Nota: La versión GUI proporciona botones visuales equivalentes a estos comandos).*
42
55
 
43
56
  #### 1. Analizar el Proyecto (`analyze`)
44
57