[Internal] Changelog: Adds Missing Changelog Entries#5860
Merged
kundadebdatta merged 3 commits intoMay 14, 2026
Conversation
NaluTripician
previously approved these changes
May 13, 2026
aavasthy
previously approved these changes
May 13, 2026
ananth7592
previously approved these changes
May 13, 2026
kushagraThapar
requested changes
May 13, 2026
0e1ffc3
kushagraThapar
approved these changes
May 13, 2026
Member
kushagraThapar
left a comment
There was a problem hiding this comment.
LGTM, thanks @kundadebdatta
NaluTripician
added a commit
that referenced
this pull request
May 14, 2026
… release-copilot-agent (#5864) ## Summary Moves the .NET Cosmos SDK and the FaultInjection package from release-time PR-title-derived changelogs to per-PR manual entries under a persistent `### Unreleased` section, matching the Java and Python SDK pattern. After this PR: - Every PR that touches `Microsoft.Azure.Cosmos/src/**` or `Microsoft.Azure.Cosmos/FaultInjection/src/**` must add (or justify the absence of) a changelog entry under `### Unreleased` in the corresponding `changelog.md`. - The release agent (now exclusively in the toolkit) reads that section, reconciles it, and closes it with a version+date at release time. **This PR must be reviewed as a pair with the cosmos-sdk-copilot-toolkit PR:** **[azure-data-database-platform/cosmos-sdk-copilot-toolkit#68](https://github.com/azure-data-database-platform/cosmos-sdk-copilot-toolkit/pull/68)** Do not approve one without the other. Background: [Issue #5858](#5858), [PR #5860](#5860) (retroactive fix-up, separate in-flight). ## Files Changed ### Changelogs (Unreleased section structure) | File | Action | Notes | |---|---|---| | `changelog.md` | Edit | Adds `### Unreleased` block with four subsections. Includes PR #5851 (Change Feed Estimator) pre-staged under `#### Bugs Fixed`. | | `Microsoft.Azure.Cosmos/FaultInjection/changelog.md` | Edit | Prepends `### Unreleased` block (anchor: `unreleased-faultinjection`). Existing beta sections untouched. | ### Contributor documentation | File | Action | Notes | |---|---|---| | `CONTRIBUTING.md` | Edit | Inserts `## Changelog entry` section after Contribution flow. Includes: where to add, how to write, verb→subsection table, [Internal] definition, preview-feature carve-out, reviewer checklist, merge conflict guidance. | | `PULL_REQUEST_TEMPLATE.md` | Edit | Appends `## Changelog` block with two checkboxes. | ### AI / Copilot guidance | File | Action | Notes | |---|---|---| | `.github/copilot-instructions.md` | Edit | (1) Adds `Changelog entry required` bullet. (2) Adds `Changelog classifier` 4-step rubric immediately after. (3) Replaces ReleaseCopilotAgent bullet with pointer to toolkit skills. | ### Release flow (in-repo agent retired) | File | Action | Notes | |---|---|---| | `.github/agents/release-copilot-agent.agent.md` | **Delete** | Retired — toolkit skills are now the sole canonical source. Audit confirmed only `copilot-instructions.md` referenced it (updated in this PR). | ### CI | File | Action | Notes | |---|---|---| | `.github/workflows/prlint.yml` | Edit | Updates `on-failed-regex-comment` only. Title regex line 16 is **unchanged**. Removes false "used to help generate the changelog" claim; replaces with accurate [Internal] definition pointing to CONTRIBUTING.md. | | `.github/workflows/changelog-check.yml` | **Create** | Soft non-blocking workflow: posts a reminder comment when a PR touches shipped source but not the changelog. Skippable via `no-changelog-needed` label. Uses `marocchino/sticky-pull-request-comment@v2` (community action — requires org allow-list if not already permitted; inline fallback documented in spec §5.11). | ## What this does NOT change - **No public API change.** No GenAPI run needed. `ContractEnforcementTests.cs` not affected. - **No wire / serialization change.** - **No production code under** `Microsoft.Azure.Cosmos/src/` or test code. - **No version bump.** `Directory.Build.props` untouched. - **Historical changelog sections** (`### 3.59.0`, `### 3.58.0`, etc.) are **untouched** — existing anchors continue to work. - **prlint.yml title regex** is **unchanged** (line 16). - **Encryption / Encryption.Custom changelogs** — deferred per gate decision Q1. FaultInjection is in scope. ## Side Effects (from landscape analysis) - 🟢 MINOR SE-1: `scrape_changelogs.py` regex — `Features Added` already covered; `Bugs Fixed`/`Breaking Changes`/`Other Changes` not extracted by the script (pre-existing gap in feature-parity dashboard; not a regression from this PR). Script runs unchanged. - 🟢 MINOR SE-2: First release after merge: reconciliation sweep will show every prior-merged PR as "no bullet in Unreleased" — expected. Release skill now includes transition-release note for the operator. - 🟢 MINOR SE-3: `[Internal]` meaning shift — now a review hint only; no longer affects changelog generation. CONTRIBUTING.md, copilot-instructions.md, and prlint comment all updated consistently. - 🟢 MINOR SE-4: Merge conflicts in `### Unreleased` — guidance added to CONTRIBUTING.md ("take both bullets"). - 🟢 MINOR SE-5: Author awareness — PR template, CONTRIBUTING.md, and copilot-instructions.md all surface the rule at PR-author time. - 🟡 POTENTIAL SE-8: `marocchino/sticky-pull-request-comment@v2` requires org allow-listing in Actions settings. If not permitted, the changelog-check job will fail (silently, since it's non-blocking). Fallback: swap for inline `gh pr comment` step with an HTML comment marker — documented in spec §5.11. ## Skeptic Pass **Q1: What didn't I look at?** - Encryption / Encryption.Custom changelogs (explicitly deferred per gate decision). - ADO pipeline definitions (not in scope — no pipeline change needed for a process-only change). - Open in-flight PRs that may land before this merges and create Unreleased merge conflicts. Those PRs will add bullets to a section that doesn't exist yet (on main); once this merges the conflict is trivial to resolve (keep both bullets). **Q2: What assumption could be wrong?** - Assumption: PR #5851 (pre-staged under `#### Bugs Fixed`) will either merge before this PR or the merge conflict will be handled by the standard "take both bullets" rule. If #5851 merges to main after this PR merges, the Unreleased section will already be there with the bullet. - Assumption: `marocchino/sticky-pull-request-comment@v2` is permitted in the org. If it isn't, the comment step fails silently (soft check — merge not blocked). **Q3: Who didn't I think about?** - External contributors: the PR template `## Changelog` block will be visible to forks. This is intentional — the rule applies to all PRs. - Release engineers in the window between this merge and the toolkit PR merge: the skill still exists with the old behavior. Both PRs should merge same-day; the spec calls out reviewing them as a pair. **Q4: What would break in a scenario I haven't tested?** - A release operator runs Mode 1 of `cosmos-release-dotnet` before the first PR with a changelog entry lands post-merge. The Unreleased section would be empty. The reconciliation step (§1.2.2) would surface many gaps (expected). The transition-release note handles this. ## Quality Gates - ✅ YAML validity: `prlint.yml` and `changelog-check.yml` both parse cleanly (`python -m yaml` validated). - ✅ No production code modified. - ✅ Three-places alignment: `CONTRIBUTING.md`, `copilot-instructions.md`, and `changelog-check.yml` comment all state the same rule with consistent wording. - ✅ Agent deletion audit: only `copilot-instructions.md` referenced `release-copilot-agent.agent.md` (confirmed via grep pre-deletion; updated in this PR to a retirement notice). - ✅ `scrape_changelogs.py`: verified regex handles `Features Added`/`Added`; `Bugs Fixed` gap is pre-existing and documented. - ✅ No new unit/integration tests (no production code under change). -⚠️ `marocchino/sticky-pull-request-comment@v2`: community action — requires org allow-list entry if not already permitted. ## Reviewer guidance Please review together with [cosmos-sdk-copilot-toolkit#68](https://github.com/azure-data-database-platform/cosmos-sdk-copilot-toolkit/pull/68). Do not approve one without the other. Requested reviewers: @kirankumarkolli + one of @Kushagra Thapar / @fabian-meiswinkel / @debdatta-kunda --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds missing changelog entries.
Type of change
Please delete options that are not relevant.
Closing issues
To automatically close an issue: closes #IssueNumber