sillsdev / sillsdev/SIL.BuildTasks
Dogfood SIL.ReleaseTasks to automate CHANGELOG stamping and release creation from pushed tags
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 5
- Forks
- 3
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 12
Description
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .github/workflows/CI-CD.yml and the SIL.ReleaseTasks.Dogfood references in SIL.BuildTasks.csproj and SIL.BuildTasks.AWS.csproj; inspect StampChangelogFileWithVersion and SetReleaseNotesProperty. First resolve whether the work covers workflow integration, a new compare-link task, or both. Done should include an agreed release flow that stamps CHANGELOG.md, creates a GitHub Release from tag notes, attaches built packages, and maintains the specified compare links.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, github-actions
- Domain
- build-system, ci-cd, release
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100