Guías
Publicar una versión
Cómo se construye y publica el release de npm + PyPI desde un único release de GitHub.
Solo para mantenedores. Esta página trata de publicar una nueva versión de becwright en npm y PyPI. Si solo usas becwright, nunca la necesitas — instálalo con los comandos de la Introducción.
becwright se distribuye por tres canales desde un único release de GitHub:
- PyPI — el paquete de Python (
pip/pipx). - npm — un paquete lanzador (
becwright) más cinco paquetes por plataforma conos/cpu(@becwright/<target>), cada uno con un binario precompilado, para que quien no usa Python pueda instalarlo.
Configuración inicial (una vez)
- PyPI: vía Trusted Publishing (OIDC), sin token almacenado. Ver el job
pypien.github/workflows/release.yml. - npm:
- Crear el scope/org
@becwrighten npm y asegurar que la cuenta también sea dueña del nombre sin scopebecwright. - Agregar un token de acceso de automatización como secreto del repositorio
NPM_TOKEN.
- Crear el scope/org
Sacar una versión
- Subir la versión en
pyproject.toml(las versiones de npm se derivan del tag de git al publicar, no hace falta editarlas). - Commit y crear un release de GitHub con tag
vX.Y.Z(debe coincidir conpyproject.toml). - Publicar el release dispara
release.yml, que:- construye y prueba el binario en todas las plataformas (macOS como binario universal2),
- stagea cada binario en su paquete
@becwright/<target>(npm/stage.mjs), - fija la versión de cada paquete npm desde el tag (
npm/set-version.mjs), - publica primero los paquetes de plataforma y luego el lanzador,
- construye y publica el paquete de Python en PyPI.
Notas
- Los paquetes de plataforma se publican antes que el lanzador para que sus
optionalDependenciesresuelvan de inmediato. npm publishno es idempotente: re-ejecutar una versión ya publicada falla. Subí la versión para volver a publicar.- Para probar los binarios sin publicar, ejecutá el workflow Build binaries
manualmente (
workflow_dispatch).