Conflict-Free Changelog Management System#1194
Merged
Conversation
weshaggard
reviewed
Nov 18, 2025
weshaggard
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
| # Last line: add PR link here | ||
| # Line is already trimmed at the end, preserve leading indentation | ||
| $trimmedLine = $line.TrimStart() | ||
| $leadingSpaces = $line.Length - $trimmedLine.Length |
Member
There was a problem hiding this comment.
Should we be converting tabs to spaces before indenting?
Should we be standardizing indent level width (2 spaces, 4 spaces) across entries?
hallipr
reviewed
Nov 18, 2025
hallipr
reviewed
Nov 18, 2025
… the Azure MCP Server. Added an optional filename parameter in New-ChangelogEntry.ps1. Updated schema. Updated documentation.
…er the .yml or .yaml extension
…pts/ChangeLog-Operations.ps1`
hallipr
reviewed
Dec 1, 2025
hallipr
approved these changes
Dec 8, 2025
colbytimm
pushed a commit
to colbytimm/microsoft-mcp
that referenced
this pull request
Apr 20, 2026
* Added development plan * Added and updated docs * Added scripts * Removed old YAML file * Added some QoL changes to the scripts * Added a way to provide a specific version to compile entries into * Updated dry run code * Fixed the compile script to not delete entries with different indentation * Added support for multi-line entries * Added trimming for multi-line * Added multi-line support to New-ChangelogEntry.ps1 * Added a script for syncing the main CHANGELOG with that one for VS Code * Updated the changelog compilation script to remove empty sections * Added support for any MCP server in this repo * Moved a couple of docs * Updated other docs * Updated new-command.md * Updated behavior to ask for a CHANGELOG path instead of defaulting to the Azure MCP Server. Added an optional filename parameter in New-ChangelogEntry.ps1. Updated schema. Updated documentation. * Updated Compile-Changelog.ps1 to accept files any name and using either the .yml or .yaml extension * Applied GitHub Copilot feedback for PowerShell scripts * Applied PR feedback to PS scripts * Added sample file * Refactored indentation and trimming logic * Refactored a couple of scripts to use logic found in `eng/common/scripts/ChangeLog-Operations.ps1` * Updated test file and added examples for other servers * Added logic for extracting PR number from the commit that added an entry file
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.
What does this PR do?
This PR implements a GitLab-inspired changelog management system that eliminates merge conflicts on
CHANGELOG.mdby using individual YAML files for changelog entries. The system includes automation scripts, multi-server support, and comprehensive documentation.Addresses: #646
What's Changed
Core System:
Scripts Added:
eng/scripts/New-ChangelogEntry.ps1- Interactive generator for creating changelog entrieseng/scripts/Compile-Changelog.ps1- Compiles YAML files into CHANGELOG.mdeng/scripts/Sync-VsCodeChangelog.ps1- Syncs main CHANGELOG to VS Code extension CHANGELOGDocumentation:
docs/changelog-entries.md- User guide for contributorsdocs/design/changelog-management-system.md- Design document and implementation detailseng/schemas/changelog-entry.schema.json- JSON schema for validationInfrastructure:
servers/<server-name>/changelog-entries/folder for each serverCHANGELOG.mdfiles for each serverCONTRIBUTING.md,AGENTS.md, andnew-command.mdwith changelog workflowKey Features
1. No More Merge Conflicts
Contributors create individual YAML files with a unique name instead of editing
CHANGELOG.mddirectly:2. Multi-Server Support
All scripts support multiple MCP servers
3. Smart Compilation
4. VS Code Extension Integration
Automatically syncs main CHANGELOG to VS Code extension CHANGELOG with section mapping:
Usage Examples
For Contributors:
For Release Managers:
Technical Details
Filename convention: Unix timestamp in milliseconds (e.g.,
1731260400123.yml)Version handling: Supports both
## 2.0.0 (Unreleased)and## [0.0.1] - 2025-09-16formatsValidation: All entries validated against JSON schema during creation and compilation
Benefits
Testing
Tested with:
Migration Notes
Existing workflow remains valid during transition:
Related Documentation
docs/changelog-entries.mdfor contributor guidedocs/design/changelog-management-system.mdfor design detailsGitHub issue number?
Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.json/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline