Skip to content
Open
Changes from 1 commit
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
56 changes: 56 additions & 0 deletions .github/post-release-activities/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: post-release-activities
description: Systematic activities that needs to be performed after a release is done.
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Front-matter description has a grammar error: “activities that needs” should be “activities that need”.

Suggested change
description: Systematic activities that needs to be performed after a release is done.
description: Systematic activities that need to be performed after a release is done.

Copilot uses AI. Check for mistakes.
---

# Post-release Activities Skill

## When to Use This Skill

Use this skill when assigned an issue asking you to do the post-release activities. You will be given the branch name for the release. If that information is missing, ask for it and don't proceed with doing anything.

## Steps to Follow

### Step 1: Find the release version

The branch name only contains the major and minor parts of the version, but not the patch part. To find the full version:

1. Look for `eng/Versions.props` file in the given branch.
2. Find the value of `VersionPrefix`.

### Step 2: Tagging the branch

Create a tag for the branch using the version you found in Step 1. The tag name should be `v{version}` (replace `{version}` with the version you found in Step 1). After creating the tag, push it to the remote repository.

### Step 3: Create a GitHub draft release

1. Create a file `release-notes.md` and add the following content to it: `See the release notes [here](https://github.com/microsoft/testfx/blob/main/docs/Changelog.md#{version})` (replace `{version}` with the version you found in Step 1).
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 3 uses the same placeholder {version} both for the tag (which is v{version}) and the changelog URL fragment. Since docs/Changelog.md anchors are of the form #4.1.0 (no leading v), this is easy to misapply—please clarify that the fragment should use the raw version (e.g. #4.1.0).

Suggested change
1. Create a file `release-notes.md` and add the following content to it: `See the release notes [here](https://github.com/microsoft/testfx/blob/main/docs/Changelog.md#{version})` (replace `{version}` with the version you found in Step 1).
1. Create a file `release-notes.md` and add the following content to it: `See the release notes [here](https://github.com/microsoft/testfx/blob/main/docs/Changelog.md#{version})` (replace `{version}` with the raw version you found in Step 1, without a leading `v`, so the fragment looks like `#4.1.0`).

Copilot uses AI. Check for mistakes.
1. Run `gh release create v{version} --draft --title v{version} --notes-file release-notes.md`.

Check failure on line 28 in .github/post-release-activities/SKILL.md

View workflow job for this annotation

GitHub Actions / lint

Ordered list item prefix

.github/post-release-activities/SKILL.md:28:1 MD029/ol-prefix Ordered list item prefix [Expected: 2; Actual: 1; Style: 1/2/3] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md029.md
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 3 list numbering has two items both numbered 1.; this renders oddly in Markdown and makes the sequence unclear. Renumber the second item to 2..

Suggested change
1. Run `gh release create v{version} --draft --title v{version} --notes-file release-notes.md`.
2. Run `gh release create v{version} --draft --title v{version} --notes-file release-notes.md`.

Copilot uses AI. Check for mistakes.

### Step 4: Open a PR updating the change log files

1. Run the following command to get markdown of the changelog: `gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/microsoft/testfx/releases/generate-notes -f 'tag_name=v4.1.0'`
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 4 hard-codes tag_name=v4.1.0 in the gh api ... releases/generate-notes command. This will generate notes for the wrong release unless manually edited each time; use the version discovered in Step 1 (e.g. tag_name=v{version}).

Suggested change
1. Run the following command to get markdown of the changelog: `gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/microsoft/testfx/releases/generate-notes -f 'tag_name=v4.1.0'`
1. Run the following command to get markdown of the changelog: `gh api --method POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/microsoft/testfx/releases/generate-notes -f 'tag_name=v{version}'` (replace `{version}` with the version you found in Step 1).

Copilot uses AI. Check for mistakes.
2. Classify everything whether it's MSTest change or Microsoft.Testing.Platform change.
3. MSTest changes go to `docs/Changelog.md` and Microsoft.Testing.Platform changes go to `docs/Changelog-Platform.md`.
4. Classify further the changes of each product into categories like "Added", "Changed", "Fixed", etc.
5. Update the changelog markdown files using the above instructions and following the existing format of those files.
6. When not confident about the classification of a specific change, indicate in the PR description that it requires attention and manual review.

#### Step 5: Create a PR to release branch to update patch version

Open a PR to the release branch to update the patch version in `eng/Versions.props` file. The new patch version should be one more than the patch version you found in Step 1.

#### Step 6: Create a PR to main to update minor version

Open a PR to the main branch to update the minor version in `eng/Versions.props` file. The new minor version should be one more than the minor version you found in Step 1, and the patch version should be reset to 0.

#### Step 7: Update public samples

Open a PR to the main branch to update the product versions of public samples to latest. Public samples are present in `samples/public` directory.

#### Step 8: Move Unshipped to Shipped
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Steps 5 and 6 are formatted as #### headings, which makes them appear nested under Step 4 rather than being peers of Steps 1–4. If they are intended to be top-level steps, use the same heading level (###) for consistency.

Suggested change
#### Step 5: Create a PR to release branch to update patch version
Open a PR to the release branch to update the patch version in `eng/Versions.props` file. The new patch version should be one more than the patch version you found in Step 1.
#### Step 6: Create a PR to main to update minor version
Open a PR to the main branch to update the minor version in `eng/Versions.props` file. The new minor version should be one more than the minor version you found in Step 1, and the patch version should be reset to 0.
#### Step 7: Update public samples
Open a PR to the main branch to update the product versions of public samples to latest. Public samples are present in `samples/public` directory.
#### Step 8: Move Unshipped to Shipped
### Step 5: Create a PR to release branch to update patch version
Open a PR to the release branch to update the patch version in `eng/Versions.props` file. The new patch version should be one more than the patch version you found in Step 1.
### Step 6: Create a PR to main to update minor version
Open a PR to the main branch to update the minor version in `eng/Versions.props` file. The new minor version should be one more than the minor version you found in Step 1, and the patch version should be reset to 0.
### Step 7: Update public samples
Open a PR to the main branch to update the product versions of public samples to latest. Public samples are present in `samples/public` directory.
### Step 8: Move Unshipped to Shipped

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Steps 7 and 8 are formatted as #### headings, which makes them appear nested under Step 4 rather than being peers of Steps 1–4. If they are intended to be top-level steps, use the same heading level (###) for consistency.

Suggested change
#### Step 5: Create a PR to release branch to update patch version
Open a PR to the release branch to update the patch version in `eng/Versions.props` file. The new patch version should be one more than the patch version you found in Step 1.
#### Step 6: Create a PR to main to update minor version
Open a PR to the main branch to update the minor version in `eng/Versions.props` file. The new minor version should be one more than the minor version you found in Step 1, and the patch version should be reset to 0.
#### Step 7: Update public samples
Open a PR to the main branch to update the product versions of public samples to latest. Public samples are present in `samples/public` directory.
#### Step 8: Move Unshipped to Shipped
### Step 5: Create a PR to release branch to update patch version
Open a PR to the release branch to update the patch version in `eng/Versions.props` file. The new patch version should be one more than the patch version you found in Step 1.
### Step 6: Create a PR to main to update minor version
Open a PR to the main branch to update the minor version in `eng/Versions.props` file. The new minor version should be one more than the minor version you found in Step 1, and the patch version should be reset to 0.
### Step 7: Update public samples
Open a PR to the main branch to update the product versions of public samples to latest. Public samples are present in `samples/public` directory.
### Step 8: Move Unshipped to Shipped

Copilot uses AI. Check for mistakes.

1. Run `eng/mark-shipped.ps1` (requires PowerShell 7.0).
2. Move `AnalyzerReleases.Unshipped.txt` to `AnalyzerReleases.Shipped.txt`.
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 8 references AnalyzerReleases.Unshipped.txt / AnalyzerReleases.Shipped.txt, but these files don’t exist anywhere in this repo (searching for “AnalyzerReleases” returns no matches). This instruction will block the workflow; update it to reference the correct files/locations (or remove the step if not applicable).

Suggested change
2. Move `AnalyzerReleases.Unshipped.txt` to `AnalyzerReleases.Shipped.txt`.

Copilot uses AI. Check for mistakes.

Create a PR to main with these changes.

Check failure on line 56 in .github/post-release-activities/SKILL.md

View workflow job for this annotation

GitHub Actions / lint

Files should end with a single newline character

.github/post-release-activities/SKILL.md:56:39 MD047/single-trailing-newline Files should end with a single newline character https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md047.md
Loading