协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
create-github-release【开发与工程】Crea una release de GitHub con etiquetado adecuado, notas de release y artefactos de compilación opcionales. Cubre el versionado semántico, generación de changelog y uso de GitHub CLI. Úsalo al marcar una versión estable de software para distribución, al publicar una nueva versión de una biblioteca o aplicación, al crear notas de release para las par…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Crea una release de GitHub etiquetada con notas de release y artefactos opcionales.
Sigue el versionado semántico (MAJOR.MINOR.PATCH):
| Cambio | Ejemplo | Cuándo |
|---|---|---|
| MAJOR | 1.0.0 -> 2.0.0 | Cambios incompatibles hacia atrás |
| MINOR | 1.0.0 -> 1.1.0 | Nuevas funcionalidades, compatible hacia atrás |
| PATCH | 1.0.0 -> 1.0.1 | Solo corrección de errores |
Esperado: Se elige un número de versión que refleja con precisión el alcance de los cambios desde la última release.
En caso de fallo: Si no estás seguro de si los cambios son incompatibles, revisa el diff de la API pública. Cualquier eliminación o cambio de firma de una función exportada es un cambio incompatible que requiere incrementar MAJOR.
DESCRIPTION (paquetes R)package.json (Node.js)Cargo.toml (Rust)pyproject.toml (Python)Esperado: El número de versión se actualiza en el archivo de proyecto apropiado y se hace commit al control de versiones.
En caso de fallo: Si la versión ya se actualizó en un paso anterior (por ejemplo, mediante usethis::use_version() en R), verifica que coincida con la versión de release prevista.
Crea o actualiza el changelog. Organiza por categoría:
## What's Changed
### New Features
- Added user authentication (#42)
- Support for custom themes (#45)
### Bug Fixes
- Fixed crash on empty input (#38)
- Corrected date parsing in UTC (#41)
### Improvements
- Improved error messages
- Updated dependencies
### Breaking Changes
- `old_function()` renamed to `new_function()` (#50)
**Full Changelog**: https://github.com/user/repo/compare/v1.0.0...v1.1.0
Esperado: Las notas de release están organizadas por categoría (funcionalidades, correcciones, cambios incompatibles) con referencias a issues/PRs para trazabilidad.
En caso de fallo: Si los cambios son difíciles de categorizar, revisa git log v1.0.0..HEAD --oneline para reconstruir la lista de cambios desde la última release.
git tag -a v1.1.0 -m "Release v1.1.0"
git push origin v1.1.0
Esperado: Existe una etiqueta anotada v1.1.0 local y en el remoto. git tag -l muestra la etiqueta.
En caso de fallo: Si la etiqueta ya existe, elimínala con git tag -d v1.1.0 && git push origin :refs/tags/v1.1.0 y vuelve a crearla. Si el push es rechazado, asegúrate de tener acceso de escritura al remoto.
Usando GitHub CLI (recomendado):
gh release create v1.1.0 \
--title "v1.1.0" \
--notes-file CHANGELOG.md
Con artefactos:
gh release create v1.1.0 \
--title "v1.1.0" \
--notes "Release notes here" \
build/app-v1.1.0.tar.gz \
build/app-v1.1.0.zip
Pre-release:
gh release create v2.0.0-beta.1 \
--title "v2.0.0 Beta 1" \
--prerelease \
--notes "Beta release for testing"
Esperado: Release visible en GitHub con etiqueta, notas y artefactos adjuntos (si los hay).
En caso de fallo: Si gh no está autenticado, ejecuta gh auth login. Si la etiqueta no existe en el remoto, súbela primero con git push origin v1.1.0.
GitHub puede generar notas automáticamente a partir de los PRs fusionados:
gh release create v1.1.0 \
--title "v1.1.0" \
--generate-notes
Configura las categorías en .github/release.yml:
changelog:
categories:
- title: New Features
labels:
- enhancement
- title: Bug Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
- title: Other Changes
labels:
- "*"
Esperado: Las notas de release se generan automáticamente a partir de los títulos de los PRs fusionados, categorizadas por etiqueta. .github/release.yml controla las categorías.
En caso de fallo: Si las notas generadas automáticamente están vacías, asegúrate de que los PRs fueron fusionados (no cerrados) y tenían etiquetas asignadas. Como alternativa, escribe las notas manualmente.
# List releases
gh release list
# View specific release
gh release view v1.1.0
Esperado: gh release list muestra la nueva release. gh release view muestra el título, etiqueta, notas y activos correctos.
En caso de fallo: Si la release no aparece, revisa la pestaña Actions en busca de flujos de trabajo de release que puedan haber fallado. Verifica que la etiqueta exista con git tag -l.
git log antes de etiquetar. Etiqueta después del commit de actualización de versión.git push no sube etiquetas. Usa git push --tags o git push origin v1.1.0.v1.0.0 y 1.0.0 y mantén la coherencia.commit-changes - flujo de trabajo de staging y commitmanage-git-branches - gestión de ramas para preparar una releaserelease-package-version - flujo de trabajo de release específico para Rconfigure-git-repository - requisito previo de configuración Gitsetup-github-actions-ci - automatizar releases mediante CI