Skip to content

Commit bd1ed66

Browse files
authored
Conflict-Free Changelog Management System (#1194)
* 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
1 parent c8e7e25 commit bd1ed66

File tree

12 files changed

+2391
-7
lines changed

12 files changed

+2391
-7
lines changed

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ dotnet build
182182
- Documentation: Update `/servers/Azure.Mcp.Server/docs/azmcp-commands.md` and add test prompts to `/servers/Azure.Mcp.Server/docs/e2eTestPrompts.md`
183183
- Tool validation: Run `ToolDescriptionEvaluator` for command descriptions (target: top 3 ranking, ≥0.4 confidence)
184184
- Spelling check: `.\eng\common\spelling\Invoke-Cspell.ps1`
185-
- Changelog: Update `CHANGELOG.md` with your changes
185+
- Changelog: Create changelog entry YAML file if the change is a new feature, bug fix, or breaking change. See `docs/changelog-entries.md` for instructions. Always use the `-ChangelogPath` parameter (e.g., `servers/Azure.Mcp.Server/CHANGELOG.md` or `servers/Fabric.Mcp.Server/CHANGELOG.md`).
186186
- One tool per PR: Submit single toolsets for faster review cycles
187187

188188
## Architecture and Project Structure
@@ -687,7 +687,7 @@ When adding new commands:
687687
1. **Update `/servers/Azure.Mcp.Server/docs/azmcp-commands.md`** with new command details
688688
2. **Add test prompts to `/servers/Azure.Mcp.Server/docs/e2eTestPrompts.md`** (maintain alphabetical order)
689689
3. **Update toolset README.md** with new functionality
690-
4. **Update CHANGELOG.md** with changes
690+
4. **Create changelog entry** if user-facing or critical change. See `docs/changelog-entries.md` for instructions. Always use the `-ChangelogPath` parameter (e.g., `servers/Azure.Mcp.Server/CHANGELOG.md` or `servers/Fabric.Mcp.Server/CHANGELOG.md`).
691691
5. **Add CODEOWNERS entry** for new toolset
692692

693693
### Spelling and Content Validation

CONTRIBUTING.md

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@ If you are contributing significant changes, or if the issue is already assigned
1818
- [Adding a New Command](#adding-a-new-command)
1919
- [Testing](#testing)
2020
- [Unit Tests](#unit-tests)
21+
- [Cancellation plumbing](#cancellation-plumbing)
2122
- [End-to-end Tests](#end-to-end-tests)
2223
- [Testing Local Build with VS Code](#testing-local-build-with-vs-code)
2324
- [Build the Server](#build-the-server)
25+
- [Run the Azure MCP server in HTTP mode](#run-the-azure-mcp-server-in-http-mode)
2426
- [Configure mcp.json](#configure-mcpjson)
2527
- [Server Modes](#server-modes)
2628
- [Start from IDE](#start-from-ide)
@@ -91,6 +93,7 @@ If you are contributing significant changes, or if the issue is already assigned
9193
- `test-resources.bicep` - Infrastructure templates for testing
9294
- `eng/` - Shared tools, templates, CLI helpers
9395
- `docs/` - Central documentation and onboarding materials
96+
9497
## Development Workflow
9598

9699
### Development Process
@@ -115,6 +118,7 @@ If you are contributing significant changes, or if the issue is already assigned
115118
> - **Incremental progress**: Get your first tool merged to establish baseline, then build upon it
116119
>
117120
> If you're planning to contribute multiple tools, please:
121+
>
118122
> 1. Submit your most important or representative tool as your first PR to establish the code patterns.
119123
> 2. Use that baseline to inform your subsequent tool PRs.
120124
@@ -140,9 +144,22 @@ If you are contributing significant changes, or if the issue is already assigned
140144
- Add test prompts for the new command in [/servers/Azure.Mcp.Server/docs/e2eTestPrompts.md](https://github.com/microsoft/mcp/blob/main/servers/Azure.Mcp.Server/docs/e2eTestPrompts.md)
141145
- Update [README.md](https://github.com/microsoft/mcp/blob/main/README.md) to mention the new command
142146

143-
6. **Add CODEOWNERS entry** in [CODEOWNERS](https://github.com/microsoft/mcp/blob/main/.github/CODEOWNERS) [(example)](https://github.com/microsoft/mcp/commit/08f73efe826d5d47c0f93be5ed9e614740e82091)
144-
145-
7. **Add new tool to consolidated mode**:
147+
6. **Create a changelog entry** (if your change is a new feature, bug fix, or breaking change):
148+
- Use the generator script to create a changelog entry (see `docs/changelog-entries.md` for details):
149+
```powershell
150+
# Interactive mode (prompts for server)
151+
./eng/scripts/New-ChangelogEntry.ps1
152+
153+
# Or with all parameters
154+
./eng/scripts/New-ChangelogEntry.ps1 -ChangelogPath "servers/Azure.Mcp.Server/CHANGELOG.md" -Description <your-change-description> -Section <changelog-section> -PR <pr-number>
155+
./eng/scripts/New-ChangelogEntry.ps1 -ChangelogPath "servers/Fabric.Mcp.Server/CHANGELOG.md" -Description <your-change-description> -Section <changelog-section> -PR <pr-number>
156+
```
157+
- Or manually create a YAML file in `servers/{ServerName}/changelog-entries/`
158+
- Not every PR needs a changelog entry - skip for internal refactoring, test-only changes, or minor updates. If unsure, add to the "Other Changes" section or ask a maintainer.
159+
160+
7. **Add CODEOWNERS entry** in [CODEOWNERS](https://github.com/microsoft/mcp/blob/main/.github/CODEOWNERS) [(example)](https://github.com/microsoft/mcp/commit/08f73efe826d5d47c0f93be5ed9e614740e82091)
161+
162+
8. **Add new tool to consolidated mode**:
146163
- Open `core/Azure.Mcp.Core/src/Areas/Server/Resources/consolidated-tools.json` file, where the tool grouping definition is stored for consolidated mode. In Agent mode, add it to the chat as context.
147164
- Paste the follow prompt for Copilot to generate the change to add the new tool:
148165
```txt
@@ -157,7 +174,7 @@ If you are contributing significant changes, or if the issue is already assigned
157174
```
158175
- Commit the change.
159176
160-
8. **Create Pull Request**:
177+
9. **Create Pull Request**:
161178
- Reference the issue you created
162179
- Include tests in the `/tests` folder
163180
- Ensure all tests pass

0 commit comments

Comments
 (0)