Describe releases from the changelog, and check that Cargo.toml has the CMake version #16

Merged
GrumpyStraw merged 1 commit from release-notes into main 2026-10-13 19:18:40 +02:00
Owner

Release descriptions

The 0.2.0 release was published with the tag as its title and an empty description, because the release step passed only the bundle folder to actions/forgejo-release.

A v* tag now publishes a release titled "Strawly Music ". Its description comes from the new .forgejo/release-notes.sh, which prints:

  • the summary from the version's <release> entry in data/app.strawly.music.metainfo.xml,
  • the version's section of CHANGELOG.md, with the ### headings moved up to ## and wrapped lines joined, so each item is one line on the release page.

There are no install steps, since the README covers them. The script fails when the summary or the changelog section is missing. The build job runs it for a tag before building, so a missing entry fails in seconds instead of after the 8-minute build. The release job checks out the repository, writes the notes and passes them with release-notes-file and title, which the v2 branch of the action supports.

The three existing releases were fixed by hand to match: all are titled "Strawly Music ", 0.2.0 has the generated description, and the Install sections are gone from 0.1.0 and 0.1.1.

Version check

check.sh now fails when CMakeLists.txt and Cargo.toml have different versions. The release workflow compares a tag with CMakeLists.txt only, so a release with an old version in Cargo.toml would have passed. The version is read from the [package] section only. Cargo.lock needs no check of its own, since clippy runs with --locked and fails when it does not match Cargo.toml.

The README's test and CI paragraphs describe both changes.

Checked

  • check.sh passes in org.kde.Sdk//6.11, with all 3 tests. The version check passes on copies of the two files with the same version, and fails with "CMakeLists.txt has version 0.2.0, but Cargo.toml has 0.2.1." when they differ.
  • release-notes.sh gives the right output for 0.2.0, 0.1.1 and 0.1.0, keeps the nested list under the Rust item, leaves out the link definitions at the end of CHANGELOG.md, and fails for a version with no entry. Its 0.2.0 output is the description now on the 0.2.0 release.
  • The workflow file parses as YAML. The release job itself runs only for a tag, so the next release is its first real run.
## Release descriptions The 0.2.0 release was published with the tag as its title and an empty description, because the release step passed only the bundle folder to `actions/forgejo-release`. A `v*` tag now publishes a release titled "Strawly Music <version>". Its description comes from the new `.forgejo/release-notes.sh`, which prints: - the summary from the version's `<release>` entry in `data/app.strawly.music.metainfo.xml`, - the version's section of `CHANGELOG.md`, with the `###` headings moved up to `##` and wrapped lines joined, so each item is one line on the release page. There are no install steps, since the README covers them. The script fails when the summary or the changelog section is missing. The build job runs it for a tag before building, so a missing entry fails in seconds instead of after the 8-minute build. The release job checks out the repository, writes the notes and passes them with `release-notes-file` and `title`, which the `v2` branch of the action supports. The three existing releases were fixed by hand to match: all are titled "Strawly Music <version>", 0.2.0 has the generated description, and the Install sections are gone from 0.1.0 and 0.1.1. ## Version check `check.sh` now fails when `CMakeLists.txt` and `Cargo.toml` have different versions. The release workflow compares a tag with `CMakeLists.txt` only, so a release with an old version in `Cargo.toml` would have passed. The version is read from the `[package]` section only. `Cargo.lock` needs no check of its own, since clippy runs with `--locked` and fails when it does not match `Cargo.toml`. The README's test and CI paragraphs describe both changes. ## Checked - `check.sh` passes in `org.kde.Sdk//6.11`, with all 3 tests. The version check passes on copies of the two files with the same version, and fails with "CMakeLists.txt has version 0.2.0, but Cargo.toml has 0.2.1." when they differ. - `release-notes.sh` gives the right output for 0.2.0, 0.1.1 and 0.1.0, keeps the nested list under the Rust item, leaves out the link definitions at the end of `CHANGELOG.md`, and fails for a version with no entry. Its 0.2.0 output is the description now on the 0.2.0 release. - The workflow file parses as YAML. The release job itself runs only for a tag, so the next release is its first real run.
Describe releases from the changelog, and check that Cargo.toml has the CMake version
All checks were successful
Pull request checks / Lint and test (pull_request) Successful in 6m12s
977d84023d
A tag now publishes a release titled "Strawly Music <version>", described by the version's
summary in the metainfo and its section of CHANGELOG.md. .forgejo/release-notes.sh writes the
description, and the tag build runs it before building, so a missing entry fails early.

check.sh fails when CMakeLists.txt and Cargo.toml have different versions. The release
workflow compares a tag with CMakeLists.txt only.
GrumpyStraw scheduled this pull request to auto merge when all checks succeed 2026-10-13 19:14:16 +02:00
GrumpyStraw canceled auto merging this pull request when all checks succeed 2026-10-13 19:17:02 +02:00
GrumpyStraw scheduled this pull request to auto merge when all checks succeed 2026-10-13 19:18:12 +02:00
GrumpyStraw deleted branch release-notes 2026-10-13 19:18:40 +02:00
Sign in to join this conversation.
No description provided.