Skip to content

Ignore nightly tags in release notes#55

Merged
samdark merged 3 commits into
masterfrom
fix-release-notes-ignore-nightly-tags
Jun 7, 2026
Merged

Ignore nightly tags in release notes#55
samdark merged 3 commits into
masterfrom
fix-release-notes-ignore-nightly-tags

Conversation

@samdark

@samdark samdark commented Jun 7, 2026

Copy link
Copy Markdown
Member

Summary

  • make release notes find the previous stable version tag only
  • render changelog authors as @username-style handles instead of real names
  • add packaging regression tests so nightly tags are not used as changelog boundaries and names do not come from %an

Cause

After immutable nightly releases, git describe --tags --abbrev=0 "${tag}^" can return a nightly-* tag. That makes release notes show only changes since the latest nightly instead of the previous stable release. Existing notes also used real author names from %an; they should use handles.

Existing releases

Updated the existing stable GitHub release descriptions for 0.1.0 and 0.1.1 to use the new format. Nightly prerelease descriptions were left unchanged.

Tests

  • make test tests/Unit/Packaging/ConfigurationPackagingTest.php
  • make psalm
  • make composer-dependency-analyser

Copilot AI review requested due to automatic review settings June 7, 2026 18:45
@coderabbitai

coderabbitai Bot commented Jun 7, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@samdark, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 43 minutes and 31 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 37c03199-f820-4bd1-b085-c0fdd8e6f0b3

📥 Commits

Reviewing files that changed from the base of the PR and between e1085e6 and 9b4fd56.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • tests/Unit/Packaging/ConfigurationPackagingTest.php
📝 Walkthrough

Walkthrough

The release workflow's prior-tag detection is now constrained to match semver tags in MAJOR.MINOR.PATCH format, replacing logic that considered any prior tag. A new test confirms the workflow reads the previous stable release tag correctly and generates release notes from that boundary.

Changes

Release Workflow Semver Constraint

Layer / File(s) Summary
Release workflow tag-matching constraint
.github/workflows/release.yml
The "Generate release notes" step now uses git describe with a regex pattern [0-9]*.[0-9]*.[0-9]* to select only semver-formatted tags as the boundary for determining what changes to include in release notes.
Workflow validation test
tests/Unit/Packaging/ConfigurationPackagingTest.php
New test loads the release workflow and asserts it includes tag-pattern matching for semver, invokes git describe with the correct ${tag}^ syntax, and contains the "Changes since %s:" release-notes marker.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • yiipress/engine#44: Introduces the tag-based release workflow infrastructure that this PR refines with improved semver tag matching.

Poem

🐰 Tags must match the semver way,
MAJOR.MINOR.PATCH we say!
Release notes flow from stable ground,
Where numbered versions can be found.
Tests confirm our workflow's right—
Hop along to tagging's height! 🏷️

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Ignore nightly tags in release notes' directly reflects the main change: updating release notes generation to skip nightly tags and use only stable version tags, which is the core objective of the PR.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-release-notes-ignore-nightly-tags

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the GitHub release workflow to avoid using nightly-* tags as changelog boundaries when generating release notes, and adds a packaging unit test to lock the intended behavior in place.

Changes:

  • Restrict git describe in the release workflow to consider only version-like tags when determining the previous tag for release notes.
  • Add a regression test ensuring the release workflow trigger remains limited to version tags and the release-notes boundary logic ignores nightlies.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
tests/Unit/Packaging/ConfigurationPackagingTest.php Adds a unit test asserting the release workflow’s tag trigger and git describe usage for release note boundaries.
.github/workflows/release.yml Updates release notes generation to find the previous version tag using git describe --match instead of potentially selecting nightly-*.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/release.yml Outdated
set -euo pipefail
tag="${GITHUB_REF_NAME}"
previous_tag="$(git describe --tags --abbrev=0 "${tag}^" 2>/dev/null || true)"
previous_tag="$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*' "${tag}^" 2>/dev/null || true)"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 9b4fd56: the previous-release lookup now also uses --exclude '*[!0-9.]*', so tags containing prerelease suffixes or other non-digit/dot characters are excluded from the changelog boundary.

Comment on lines +366 to +369
self::assertStringContainsString(
"git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*' \"\${tag}^\"",
$workflow,
);

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed in 9b4fd56: the regression test now expects the --exclude '*[!0-9.]*' guard in addition to the version-like --match pattern.

@samdark samdark merged commit a72a660 into master Jun 7, 2026
7 checks passed
@samdark samdark deleted the fix-release-notes-ignore-nightly-tags branch June 7, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants