Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions .github/instructions/changelog.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
applyTo: 'CHANGELOG.md'
---

Do not edit the file unless explicitly requested by the user.
When releasing a new version, you will be asked to create a new section in the `CHANGELOG.md` file for the version based on "Unreleased Changes".

# Style guidelines

- Use semantic versioning headings (e.g., ## <version>)
- Release candidates are supported with version suffix format (e.g., `0.5.0-rc.1` should be labeled as "0.5.0 (Release Candidate 1)" in the changelog)
- Do not use subheadings
- Do not mention commit hashes
- Write in past tense (e.g., "improved", "introduced", "added")
- Balance technical accuracy with user-facing language
- Use bullet points for individual changes

# Content guidelines

- Entries should be concise but can include technical details relevant to users
- Write a bullet point for every new, changed, fixed, or removed feature
- Do not use emojis
- Include both user benefits and technical specifics when relevant

# Writing patterns

## Change descriptions

- **New tools/features**: "Added [tool/feature name] [brief description]"
- **Improvements**: "Improved [component] to [specific enhancement]"
- **Bug fixes**: "Fixed [issue description]" or "Fixed: [specific problem]"
- **Removals**: "Removed [item] [reason if relevant]"
- **Technical changes**: Include scope changes, API modifications, and architectural improvements

## User-centric language

- Emphasize user capabilities: "You can now...", "You will now find...", "It is now possible to..."
- Explain business value: "enabling more precise...", "providing greater flexibility...", "ensuring smoother performance..."
- Use positive framing: "enhanced", "improved", "better", "more accurate"

## Technical details to include

- Tool additions, modifications, and removals
- Scope changes and OAuth permissions
- API endpoint changes that affect users
- Performance improvements with specific impacts
- Breaking changes with migration guidance
17 changes: 17 additions & 0 deletions .github/prompts/release.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
mode: agent
---

# Release Instructions

When preparing a release, follow these steps to ensure everything is in order:

1. Go to the main branch and pull the latest changes. If dependencies changed, run `npm ci`.
2. Ask the user what the new version number should be. It should follow semantic versioning, but it may have a suffix for release candidates.
3. Work on a release branch, typically named `chore/prepare-release-<version>`.
4. Create a new section in CHANGELOG.md for the version below "Unreleased Changes".
5. Move all entries from "Unreleased Changes" to this new section. Reword them in the process to fit the content guidelines specified in `.github/instructions/changelog.instructions.md`.
6. Update the version number in `package.json`.
7. Run `npm install --package-lock-only` to sync the lock file.
8. Let the user verify the release notes and version number before proceeding.
9. Commit the changes with a message like `chore(release): prepare for <version> release`.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -568,6 +568,20 @@ Third, create a `.env` file in this repository (you can copy from `.env.template

Finally, make changes to your code and compile it with `npm run build` or just run `npm run watch` and it auto-compiles.

## Releasing

When you are preparing for a release, you can use GitHub Copilot to guide you through the preparations.

In Visual Studio Code, you can use `/release` in the chat with Copilot in Agent Mode, which will execute [release.prompt.md](.github/prompts/release.prompt.md).

You may include additional information such as the version number. If not specified, you will be asked.

This will

- prepare the [changelog](CHANGELOG.md),
- update the version number in [package.json](package.json),
- commit the changes.

## Notes

This product is not officially supported by Dynatrace.
Expand Down
4 changes: 2 additions & 2 deletions src/authentication/dynatrace-clients.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ describe('dynatrace-clients', () => {
baseUrl: environmentUrl,
defaultHeaders: {
'Authorization': 'Bearer test-access-token',
'User-Agent': 'dynatrace-mcp-server/v1.0.0-test (linux-x64)',
'User-Agent': expect.stringMatching(/^dynatrace-mcp-server\/v1\.0\.0-test \(\w+-\w+\)$/),
},
});
expect(result).toBeInstanceOf(PlatformHttpClient);
Expand Down Expand Up @@ -172,7 +172,7 @@ describe('dynatrace-clients', () => {
baseUrl: environmentUrl,
defaultHeaders: {
'Authorization': `Bearer ${dtPlatformToken}`,
'User-Agent': 'dynatrace-mcp-server/v1.0.0-test (linux-x64)',
'User-Agent': expect.stringMatching(/^dynatrace-mcp-server\/v1\.0\.0-test \(\w+-\w+\)$/),
},
});
expect(result).toBeInstanceOf(PlatformHttpClient);
Expand Down