post-release-activities

$npx mdskill add microsoft/testfx/post-release-activities

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.

SKILL.md

.github/skills/post-release-activitiesView on GitHub ↗
---
name: post-release-activities
description: Systematic activities that need to be performed after a release is done.
---

# 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).
2. Run `gh release create v{version} --draft --title v{version} --notes-file release-notes.md`.

### Step 4: Open a PR to main 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=v{version}'` (replace `{version}` with the version you found in Step 1).
2. Classify each entry as either an MSTest change or a 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. This PR must target the `main` branch, not the release branch.

### 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.

Note that in this step, both `TestingPlatformVersionPrefix` and `VersionPrefix` must be updated.

### 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.

Note that in this step, both `TestingPlatformVersionPrefix` and `VersionPrefix` must be updated.

### 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: Mark APIs and analyzers as shipped

1. Run `eng/mark-shipped.ps1` (requires PowerShell 7.0).
2. Move the contents of `src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md` (except the first two lines that start with `;`) to `src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md`.
3. In `src/Analyzers/MSTest.Analyzers/SuppressionReleases.md`, move the rows for suppressors shipped in the release branch from `## Unshipped` to `## Release {version}` (using the full MSTest version found in Step 1). Create the release section with the existing table format if it does not exist, preserving each suppression ID, suppressed diagnostic ID, and notes. Leave suppressors not included in this release under `## Unshipped`, and remove that section if it becomes empty. If no suppressors were shipped from `## Unshipped`, leave the catalog unchanged.

Create a PR to main with these changes.

More from microsoft/testfx

SkillDescription
assertion-qualityAnalyze assertion quality, depth, variety, and false confidence in existing tests. ALWAYS USE when asked about weak, shallow, trivial, always-true, self-referential, assertion-free, presence/truthiness-only, or insufficiently diverse assertions, including MSTest, Jest, pytest, and Go. DO NOT USE for direct fixes: writing-mstest-tests owns supplied MSTest assertions; code-testing owns new cases. Use test-gap-analysis when asked whether tests would catch a production change, and test-anti-patterns for general severity-ranked audits.
behavior-preserving-refactorPreserve observable behavior when splitting files, moving members, consolidating helpers, or simplifying TestFx code. Use for structural refactors and file-diet implementation; inventory baseline semantics and consumers, then run focused equivalence checks.
binlog-failure-analysisDiagnose existing MSBuild .binlog failures with MCP/replay; not log capture or non-MSBuild failures.
binlog-generationCapture and verify unique MSBuild binlogs, quoting '-bl:{}' in PowerShell; not analysis of existing logs.
build-parallelismAnalyze an MSBuild solution, solution filter, or Build.proj that schedules multiple project files. USE FOR: measured idle worker nodes, `-m` that does not scale, a serial ProjectReference critical path, graph builds, or an MSBuild task that builds a Projects list. Requires at least two distinct project files whose scheduling or throughput must be analyzed. DO NOT USE for non-MSBuild build systems.
build-perf-baselineMeasure repeatable cold/changed-input/no-op MSBuild baselines for caching, output layout and graph tuning; not task diagnosis or non-MSBuild builds.
build-perf-diagnosticsDiagnose MSBuild target/task/analyzer bottlenecks from binlogs after baselining; not baseline setup, incremental correctness or parallelism tuning.
check-bin-obj-clashDetects MSBuild projects with conflicting OutputPath or IntermediateOutputPath. USE FOR: builds failing with 'Cannot create a file when that file already exists', 'The process cannot access the file because it is being used by another process', intermittent build failures that succeed on retry, or missing/overwritten outputs in multi-project or multi-targeting builds where bin/obj (or project.assets.json) collide. Common causes: shared OutputPath, missing AppendTargetFrameworkToOutputPath, extra global properties (e.g. PublishReadyToRun), or SetTargetFramework on a ProjectReference to a single-targeting project. DO NOT USE FOR: file access errors unrelated to MSBuild (OS-level locking), single-project single-TFM builds, non-MSBuild build systems.
code-testing>-
code-testing-agent>-