Skip to content

Keep the [Unreleased] changelog section off main - #10

Merged
Sekers merged 1 commit into
developfrom
feature/unreleased-only-on-develop
Sep 16, 2026
Merged

Sekers merged 1 commit into
developfrom
feature/unreleased-only-on-develop

Conversation

@Sekers

@Sekers Sekers commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Summary

[Unreleased] now exists only on develop, and only while it has entries. Release prep renames it to the version
heading without adding an empty replacement; the first later pull request with a changelog entry adds it back. The
Release workflow's tag check now refuses to publish a CHANGELOG.md that still has an [Unreleased] section, so
the section never reaches main, the GitHub release, or the changelog the PowerShell Gallery links to.

This also removes the empty [Unreleased] section that the 1.1.1 release prep (#8) added. It merges before the 1.1.1
release pull request (#9), so 1.1.1 is the first release to go through the new check.

Release classification

  • Major: breaks the public contract (an existing script or configuration file can stop working)
  • Minor: adds backward-compatible functionality
  • Patch: a backward-compatible fix
  • None: no user-visible change (tests, CI, or contributor documentation only)

Checklist

  • Targets develop, or main for a hotfix
  • CHANGELOG.md has an entry in the right section under [Unreleased] (added if missing), or the change is not user-visible
  • .\Tests\Invoke-Tests.ps1 passes
  • Contains no real tenant names, email domains, secrets, or configuration files
  • Any live Microsoft Graph testing was done in a test tenant and is described above

[Unreleased] now exists only on develop, and only while it has entries. The
release-prep pull request renames it to the version heading without adding a
new empty one, and the first later pull request with a changelog entry adds
it back. The Release workflow's tag check refuses to publish a CHANGELOG.md
that still has an [Unreleased] section.

- Release.yml: the validate job fails on an [Unreleased] heading.
- RELEASING.md, AGENTS.md, CONTRIBUTING.md, pull request template: add the
  section only with an entry, never during release prep, and merge nothing
  else into develop between release prep and the release merge.
- CHANGELOG.md: remove the empty [Unreleased] section added by the 1.1.1
  release prep.
Copilot AI lite review requested due to automatic review settings September 16, 2026 19:28

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.

🟢 Approval recommended

The CI enforcement and documentation updates are consistent and low-risk, with only a minor documentation clarity suggestion noted.

Pull request overview

This PR updates the release process documentation and CI validation so that the CHANGELOG.md [Unreleased] section exists only on develop (and only when it has entries), and is prevented from reaching main and published releases.

Changes:

  • Document that release-prep renames [Unreleased] to the version heading without adding an empty replacement section.
  • Add a Release workflow validation that fails if CHANGELOG.md still contains an [Unreleased] heading at tag time.
  • Remove the currently-empty [Unreleased] section from CHANGELOG.md (so release notes and PowerShell Gallery-linked changelog don’t include it).
File summaries
File Description
RELEASING.md Documents the “no [Unreleased] on main” rule and updates release-prep steps accordingly.
CONTRIBUTING.md Clarifies that contributors may need to add [Unreleased] after a release if it’s missing.
CHANGELOG.md Removes the empty [Unreleased] section so released changelogs start at the latest version section.
AGENTS.md Adds an explicit rule: only add [Unreleased] when adding an entry; never leave it in a release.
.github/workflows/Release.yml Enforces “no [Unreleased] section” during release tag validation.
.github/pull_request_template.md Updates checklist wording to reflect that [Unreleased] may need to be added when missing.
Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread RELEASING.md
Comment on lines +108 to +112
`[Unreleased]` exists only on `develop`, and only while it has entries. A release renames it to the version
heading, so right after a release there is none. The next pull request that adds an entry also adds the section at
the top, linked to a comparison from the last release:
`## [Unreleased](https://github.com/Sekers/ScriptMessage/compare/1.2.0...develop)`. The Release workflow refuses to
publish a tag whose `CHANGELOG.md` still has an `[Unreleased]` section.
@Sekers
Sekers merged commit e2cad52 into develop Sep 16, 2026
5 checks passed
@Sekers
Sekers deleted the feature/unreleased-only-on-develop branch September 16, 2026 19:38
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