Skip to content
Merged
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
21 changes: 16 additions & 5 deletions docs/maintainers/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,34 @@

## Release Steps

> Note: Step 2, 3 and 4 can be done in parallel. Step 5 and 6 can be done in parallel.
When creating a release milestone, you should send meeting invites to maintainers to book the release day and the previous day.
This is to make sure they have enough time to work on the release.

1. Create a branch named `release` in `PowerShell/PowerShell` repository. All release related changes should happen in this branch.
The following release procedure should be started on the previous day of the target release day.
This is to make sure we have enough buffer time to publish the release on the target day.

Before starting the following release procedure, open an issue and list all those steps as to-do tasks.
Copy link
Member

Choose a reason for hiding this comment

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

Perhaps make this a to-do list and number the step explicitly inside the todo. That way you can just copy the markdown into the issue?

Copy link
Member Author

Choose a reason for hiding this comment

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

I cannot get it to render correctly. I will leave it as is for now.

Check the task when you finish one.
This is to help track the release preparation work.

> Note: Step 2, 3 and 4 can be done in parallel.
1. Create a branch named `release` in `PowerShell/PowerShell` repository.
All release related changes should happen in this branch.
1. Prepare packages
- [Build release packages](#building-packages)
- [Build release packages](#building-packages).
- Sign the MSI packages and DEB/RPM packages.
- Install and verify the packages.
1. Update documentation, scripts and Dockerfiles
- Summarize the change log for the release. It should be reviewed by PM(s) to make it more user-friendly.
- Update [CHANGELOG.md](../../CHANGELOG.md) with the finalized change log draft.
- Update other documents and scripts to use the new package names and links.
1. Verify the release Dockerfiles.
1. Publish Linux packages to Microsoft YUM/APT repositories.
1. [Create NuGet packages](#nuget-packages) and publish them to [powershell-core feed][ps-core-feed].
1. [Create the release tag](#release-tag) and push the tag to `PowerShell/PowerShell` repository.
1. Create the draft and publish the release in Github.
1. Merge the `release` branch to `master` and delete the `release` branch.
1. Publish the release in Github.
1. Publish Linux packages to Microsoft YUM/APT repositories.
1. Trigger the release docker builds for Linux and Windows container images.
- Linux: push a branch named `docker` to `powershell/powershell` repository to trigger the build at [powershell docker hub](https://hub.docker.com/r/microsoft/powershell/builds/).
Delete the `docker` branch once the builds succeed.
Expand Down