|
1 | 1 | # Bicep Release Checklist |
2 | 2 |
|
| 3 | +## Release Tasks |
3 | 4 | 1. (**end-of-month releases only**) Update Bicep Az types: |
4 | | - 1. Run the [Update Types](https://github.com/Azure/bicep-types-az/actions/workflows/update-types.yml) GitHub Action to generate the latest type definitions. |
5 | | - 1. Wait ~3hrs for it to complete. Ensure it runs successfully. |
6 | | - 2. Submit a PR to merge the `autogenerate` branch to `main`. You can use [this link](https://github.com/Azure/bicep-types-az/compare/main...autogenerate) to start the PR. |
| 5 | + 1. Verify the "Update Types" workflow run is green: [](https://github.com/Azure/bicep-types-az/actions/workflows/update-types.yml) |
| 6 | + 1. Create a PR [here](https://github.com/Azure/bicep-types-az/compare/main...autogenerate), get it approved, and then merge it. |
7 | 7 | 1. Follow the "Release Process" instructions [here](https://msazure.visualstudio.com/One/_git/BicepMirror-Types-Az) to build and publish the Bicep.Types.Az NuGet package. |
8 | 8 | 1. Submit a Bicep PR to use the new Bicep.Types.Az NuGet package version. |
9 | 9 | 1. Update the version [here](https://github.com/Azure/bicep/blob/main/src/Bicep.Core/Bicep.Core.csproj) and run `dotnet restore` to update packages.lock.json files. |
10 | | - 1. Submit a PR. If CI tests fail, you may need to update baselines (run `bicep/scripts/UpdateBaselines.ps1`) and push the changes. |
11 | | -1. Verify the latest build on the `main` branch is green: [Build on main](https://github.com/Azure/bicep/actions/workflows/build.yml). |
12 | | -1. Review history for changes to [bicepconfig.schema.json](https://github.com/Azure/bicep/commits/main/src/vscode-bicep/schemas/bicepconfig.schema.json). Create a GitHub issue for it if none already exists and notify the team for any recently-added linter rules which do not have public documentation. This is non-blocking for the release process (continue to the next step). |
13 | | -1. (**end-of-month releases only**) Bump the version number by incrementing the minor version number in [this file](https://github.com/Azure/bicep/blob/main/version.json) (example [here](https://github.com/Azure/bicep/pull/9698)) |
| 10 | + 1. Submit a PR. If CI tests fail, you may need to update baselines (run `./scripts/UpdateBaselines.ps1` in the Bicep repo) and push the changes. |
| 11 | +1. Verify the latest build on the `main` branch is green: [](https://github.com/Azure/bicep/actions/workflows/build.yml). |
| 12 | +1. (**end-of-month releases only**) Submit a PR to increment the minor version number in [this file](https://github.com/Azure/bicep/blob/main/version.json) (example [here](https://github.com/Azure/bicep/pull/9698)) |
14 | 13 | 1. Run the Official Build for BicepMirror (see [this README](https://msazure.visualstudio.com/One/_git/BicepMirror) for instructions). |
15 | 14 | 1. Push the version tag for the commit used to generate the official build. |
16 | 15 | 1. Obtain the version number from official build. This should be of format `vXX.YY.ZZ` - e.g `v0.14.85`. |
|
19 | 18 | 1. In the Bicep repo, run `git tag v<new_release_number> <commit_hash>`, where `<commit_hash>` is the git commit hash used for the official build (ex: `git tag v0.15.31 3ba6e06a8d412febd182e607d0f5fe607ec90274`). |
20 | 19 | 1. Run `git push origin v<new_release_number>` to push the tag (ex: `git push origin v0.15.31`). |
21 | 20 | 1. [Create a draft release](https://github.com/Azure/bicep/releases/new) for the new tag and set release title to the tag name. Use the "Save draft" button to save the changes without publishing it. |
22 | | -1. Run `bicep/scripts/CreateReleaseNotes -FromTag <previous tag> -ToTag <new tag>` and set the output as the release description. |
23 | | - 1. Give the output of this script to a PM, and ask them to clean up the notes for the release. |
24 | | - 1. Once they have cleaned up the notes, copy + paste them into the draft notes, and hit "Save draft" again. |
25 | | -1. Run `BicepMirror/scripts/UploadSignedReleaseArtifacts.ps1` to add official artifacts to the release. |
| 21 | +1. Run `./scripts/CreateReleaseNotes -FromTag <previous tag> -ToTag <new tag>` in the Bicep repo, and copy the output into the GitHub release description. |
| 22 | +1. Send a link to the draft release to the PM team, and ask them to clean up the release notes and update the draft release. |
| 23 | +1. Run `./scripts/UploadSignedReleaseArtifacts.ps1` in the BicepMirror repo to add official artifacts to the release. |
26 | 24 | - `-WorkingDir` can be any empty temporary directory that you create |
27 | 25 | - `-BuildId` is only needed if the latest official build is NOT the official build you are trying to release |
28 | 26 | 1. Validate VSCode extension and Bicep CLI manually on Windows, Mac & Linux: |
29 | 27 | 1. Download `vscode-bicep.vsix` from the draft release, and [Install it from VSIX](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-from-a-vsix). Verify that you can open a Bicep file, that text is correctly colorized, and that error messages show up as expected. |
30 | 28 | 1. Download the appropriate Bicep executable for your platform (e.g. `bicep-linux-x64`). Verify you can invoke it with e.g. `bicep-linux-x64 --version`, and that it prints the expected output. |
31 | 29 | 1. Verify that the draft release on GitHub has at least 28 artifacts associated with it before publishing it. (On the Bicep releases [page](https://github.com/Azure/bicep/releases) it should state that many assets. On the edit page of the draft release itself, there will be two fewer assets because the 2 source code files don't show up.) |
32 | 30 | 1. Publish the release on GitHub. |
33 | | -1. Upload copyleft dependency source to 3rd party disclosure site. See [instructions](https://msazure.visualstudio.com/One/_wiki/wikis/Azure%20Deployments%20Team%20Wiki/369910/Bicep-release-step-Upload-copyleft-source-to-3rd-party-disclosure-site). |
34 | 31 | 1. Upload vscode-bicep.VSIX to the VS marketplace [here](https://marketplace.visualstudio.com/manage). You may need access permissions, request help in the team channel. |
35 | 32 | 1. Click on the ... for Bicep, then Update, then upload the .vsix file. The site will verify it then the version number should be updated to the right one. |
36 | | -1. ⚠️ **[READ THIS BEFORE PROCEED] Copy/paste the text from the current version of [src\vs-bicep\README.md](https://github.com/Azure/bicep/blob/main/src/vs-bicep/README.md) over the existing text in the "Overview" field for the next step of uploading vs-bicep.vsix to the VS marketplace (this can only be changed on the marketplace when publishing a new version)** |
37 | | -1. Upload vs-bicep.VSIX to VS marketplace |
38 | | - 1. Click on the ... for Bicep for Visual Studio, then Edit. |
| 33 | +1. Upload vs-bicep.VSIX to VS marketplace. |
| 34 | + 1. ⚠️ **[READ THIS BEFORE PROCEED] Copy/paste the text from the current version of [src\vs-bicep\README.md](https://github.com/Azure/bicep/blob/main/src/vs-bicep/README.md) over the existing text in the "Overview" field for the next step of uploading vs-bicep.vsix to the VS marketplace (this can only be changed on the marketplace when publishing a new version)** |
| 35 | + 1. Go [here](https://marketplace.visualstudio.com/manage), click on the ... for Bicep for Visual Studio, then Edit. |
39 | 36 | 1. Upload the new vs-bicep.VSIX file at the top. This should update the Version number automatically for you. Verify that it does. |
40 | 37 | 1. Scroll to the bottom and hit Save and Upload. |
41 | | -1. Upload NuGet packages to nuget.org via `BicepMirror/scripts/UploadPackages.ps1`. This is an almost identical process to publishing the BicepMirror-Types-Az nuget packages so look at that previous step above. (Make sure to include CLI packages.) This can be done one of two ways: |
| 38 | +1. Upload NuGet packages to nuget.org by running `./scripts/UploadPackages.ps1` in the BicepMirror repo. This is an almost identical process to publishing the BicepMirror-Types-Az nuget packages so look at that previous step above. (Make sure to include CLI packages.) This can be done one of two ways: |
42 | 39 | 1. Easiest is to use the `__assets` directory created by the `UploadSignedReleaseArtifacts.ps1` script. This will be in the temporary folder you created before. (Example command: `.\scripts\UploadPackages.ps1 -PackageDirectory .\temporary\__assets\ -NuGetPath C:\NugetTool\`) |
43 | 40 | 2. You can also download all the files from the published release into a separate folder and run the script using that folder. (The script looks for files ending in *.nupkg) |
44 | | -1. Update homebrew by going here [here](https://github.com/Azure/homebrew-bicep/actions/workflows/update-homebrew.yml) and clicking on `Run workflow` |
45 | | - - A PR will be auto created by this action (example [here](https://github.com/Azure/homebrew-bicep/pull/40)). Approve and merge it. |
46 | | - - The above about PR auto creation is not true anymore. The workflow will create the branch and add a commit, but you have to manually create a PR by going to the [branch](https://github.com/Azure/homebrew-bicep/tree/update-homebrew). Get the PR approved then merge it. |
47 | | - |
48 | | -1. [PM Task] Post a twitter/X thread on BicepLang twitter account, which the following individual tweets/posts: |
| 41 | +1. Update homebrew: |
| 42 | + 1. Go [here](https://github.com/Azure/homebrew-bicep/actions/workflows/update-homebrew.yml), click `Run workflow`, and wait for it to complete successfully. |
| 43 | + 1. Create a PR [here](https://github.com/Azure/homebrew-bicep/compare/main...update-homebrew), get it approved, and then merge it. |
49 | 44 |
|
50 | | -- Highlights from Release Notes with link to full release |
51 | | -- Link to the most recent community call |
52 | | -- Links to any relevant new docs |
| 45 | +## Post-release Tasks |
| 46 | +1. Upload copyleft dependency source to 3rd party disclosure site. See [instructions](https://msazure.visualstudio.com/One/_wiki/wikis/Azure%20Deployments%20Team%20Wiki/369910/Bicep-release-step-Upload-copyleft-source-to-3rd-party-disclosure-site). |
| 47 | +1. Review history for changes to [bicepconfig.schema.json](https://github.com/Azure/bicep/commits/main/src/vscode-bicep/schemas/bicepconfig.schema.json). Create a GitHub issue for it if none already exists and notify the team for any recently-added linter rules which do not have public documentation. This is non-blocking for the release process (continue to the next step). |
| 48 | +1. Let the PM team know that the release is completed; they may want to post a twitter/X thread on BicepLang twitter account, with the following information: |
| 49 | + * Highlights from Release Notes with link to full release |
| 50 | + * Link to the most recent community call |
| 51 | + * Links to any relevant new docs |
0 commit comments