Skip to content

Contribuir

Jose Luiz Rodrigues edited this page Sep 10, 2026 · 2 revisions

Contribuir

git clone https://github.com/zeluizr/vtex-io-snippets.git
cd vtex-io-snippets
npm install
npm test

F5 en VS Code abre una ventana de desarrollo con la extensión cargada.

Las convenciones, a rajatabla

  • JavaScript puro, no TypeScript. Sin src/, sin build step. El main es ./extension.js en la raíz. El tipado va en JSDoc, con // @ts-check.
  • Todo archivo empieza con // @ts-check y 'use strict'.
  • CommonJS: require y module.exports.
  • Estilo: 2 espacios, sin punto y coma, comillas simples.
  • Sin dependencias de runtime nuevas. Sólo la API vscode y fs / path de Node.
  • lib/*.js es lógica pura y libre de vscode, para poder probarse con node:test. Los providers y el cableado que depende de vscode viven en extension.js.

Idiomas

El repositorio es multilingüe a propósito, y se mantiene el idioma del archivo que estás editando:

idioma
comentarios y mensajes del código portugués
CLAUDE.md, AGENTS.md, docs/traco-puelche.md portugués
README.md, CHANGELOG.md, esta wiki español

El flujo de un cambio

La guía operativa vive ahora en el repositorio, en CONTRIBUTING.md. Esta página queda para el detalle.

Tres ramas de larga vida y una sola dirección: dev integra, qa valida y main es producción.

rama de trabajo  ->  dev  ->  qa  ->  main
  1. Rama desde dev, y el PR va contra dev. Nunca commits directos en main, nunca un PR apuntando a qa o a main.
  2. La lógica testable va a lib/; el provider o comando se registra en activate() con context.subscriptions.push(...).
  3. Si tocaste algo generado, corre el generador, no edites la salida. Ver Generación y build.
  4. npm test y node --check extension.js.
  5. Actualiza package.json (activationEvents, contributes.*) sin quitar nada de lo que ya está, más CHANGELOG.md y README.md.
  6. Bump de versión en SemVer.

Commits

Conventional Commits, y el mensaje describe el efecto, no el cambio.

fix(ci): regenera os snippets a partir da fonte e destrava o check de drift
docs(readme): rotula los badges y detalla las fuentes de data/

Lo que la CI te va a cobrar

.github/workflows/test.yml regenera el esquema y los snippets y falla si lo commiteado no es exactamente lo que produce el script. Para los iconos, el mismo control son npm run icons:check y npm run product:check, y desde la 4.2.0 también corren en la CI, con las dependencias de desarrollo instaladas. Córrelos igual antes de abrir el PR: salen en segundos y te ahorran la vuelta.

Los tres avisos que valen un PR entero

  • data/product-codepoints.json es append-only. Reordenar o borrar una entrada reasigna el número a otro dibujo, y cada usuario con la fuente en caché vería el icono equivocado.
  • Si tocas un icono, míralo a 16px reales. node scripts/contact-sheet.js <dir>.
  • Si cambias una regla de diseño, actualiza primero la spec del test. En theme.test.js y en icons.test.js la spec está escrita en el archivo, y es el documento; el JSON es sólo el artefacto.

Clone this wiki locally