Dogfood SIL.ReleaseTasks to automate CHANGELOG stamping and release creation from pushed tags
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- csharp, github-actions
- Área
- build-system, ci-cd, release
Línea de trabajo
Comienza con .github/workflows/CI-CD.yml y las referencias a SIL.ReleaseTasks.Dogfood en SIL.BuildTasks.csproj y SIL.BuildTasks.AWS.csproj; inspecciona StampChangelogFileWithVersion y SetReleaseNotesProperty. Primero determina si el trabajo abarca la integración del workflow, una nueva tarea de enlaces de comparación o ambas cosas. La finalización debe incluir un flujo de release acordado que marque CHANGELOG.md, cree un GitHub Release a partir de las notas del tag, adjunte los paquetes compilados y mantenga los enlaces de comparación especificados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We just had a case (PR #86) where a release's CHANGELOG entries sat under ## [Unreleased] indefinitely because nobody renamed the section and updated the compare-link footer at release time.
This repo already ships tooling that covers most of what's needed to prevent that:
StampChangelogFileWithVersionalready handles Keep-a-Changelog-aware stamping — given a literal## [Unreleased]line, it inserts## [x.y.z] - dateright after it, leaving a fresh empty## [Unreleased]above. It's just never invoked anywhere in this repo's own build.SetReleaseNotesPropertyis already dogfooded (viaSIL.ReleaseTasks.Dogfood, referenced bySIL.BuildTasks.csproj/SIL.BuildTasks.AWS.csproj) to populatePackageReleaseNotesat pack time — the same extraction could feed a GitHub Release body.CreateReleaseNotesHtmlcould render those notes as HTML if ever wanted.
None of this is wired into .github/workflows/CI-CD.yml: there's no step that stamps CHANGELOG.md and no step that creates a GitHub Release.
Suggested direction (not a committed design):
- Use
StampChangelogFileWithVersionin a maintainer-run script orworkflow_dispatchjob to prepare a release PR, replacing today's hand-editing (the exact step that was skipped for v3.2.0). - On tag push, add a CI step that extracts notes via
SetReleaseNotesPropertyand creates the GitHub Release with the built packages attached, since by then CHANGELOG.md should already be correctly stamped via the step above.
New task worth adding to SIL.ReleaseTasks itself: nothing today maintains the Keep-a-Changelog compare-link footer (the [Unreleased]: .../compare/vX...master line and the per-version [x.y.z]: .../compare/vPREV...vNEW lines). This isn't specific to this repo — every consumer of SIL.ReleaseTasks that follows the Keep a Changelog format has to maintain these links by hand. A new task (either folded into StampChangelogFileWithVersion or a standalone one) that, given the changelog file, the new version, and the repo URL, updates the [Unreleased] compare link and inserts the new version's compare-link line would benefit all downstream consumers of the package, not just this repo.
- Lenguaje dominante
- C#
- Estrellas
- 5
- Forks
- 3
- Merge medio
- 8 h 23 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sillsdev/SIL.BuildTasks
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
sillsdev/SIL.BuildTasks#91 ·
Todos los issues de sillsdev/SIL.BuildTasks
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Devolutions/UniGetUI#5541 ·
Los mantenedores suelen responder en 1 día
-
[aw] PR Iteration Agent 🔧 failedAbiertoagentic-workflows Needs: Triage :mag:
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
dette technique priorité: basse zone: service
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
damiensabau/nexus-lobby#25 ·