Skip to content

Commit e6486d2

Browse files
authored
Add instructions for snapping for release (#8319)
2 parents 6d9db2a + 88865fb commit e6486d2

File tree

5 files changed

+20
-0
lines changed

5 files changed

+20
-0
lines changed

CONTRIBUTING.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
- [Configuring Razor Language Server](#configuring-razor-language-server)
1414
- [Creating VSIX Packages for the Extension](#creating-vsix-packages-for-the-extension)
1515
- [Updating the `Roslyn` Language Server Version](#updating-the-roslyn-language-server-version)
16+
- [Snapping for releases](#snapping-for-releases)
1617

1718
## Setting Up Local Development Environment
1819

@@ -167,3 +168,22 @@ To update the version of the roslyn server used by the extension do the followin
167168
3. In the [package.json](package.json) inside the `defaults` section update the `roslyn` key to point to the version number you found above in step 2.
168169
4. Ensure that version of the package is in the proper feeds by running `gulp updateRoslynVersion`. Note: you may need to install the [Azure Artifacts NuGet Credential Provider](https://github.com/microsoft/artifacts-credprovider#installation-on-windows) to run interactive authentication.
169170
5. Build and test the change. If everything looks good, submit a PR.
171+
172+
## Snapping for releases
173+
Extension releases on the marketplace are done from the prerelease and release branches (corresponding to the prerelease or release version of the extension). Code flows from main -> prerelease -> release. Every week we snap main -> prerelease. Monthly, we snap prerelease -> release.
174+
175+
The snap is done via the "Branch snap" github action. To run the snap from main -> prerelease, run the action via "Run workflow" and choose main as the base branch.
176+
![branch snap action](./docs/main_snap.png)
177+
178+
This will generate two PRs that must be merged. One merging the main branch into prerelease, and the other bumps the version in main.
179+
![generated prs](./docs/generated_prs.png)
180+
181+
To snap from prerelease to main, run the same action but use **prerelease** as the workflow branch. This will generate a single PR merging from prerelease to release.
182+
183+
### Marketplace release
184+
The marketplace release is managed by an internal AzDo pipeline. On the pipeline page, hit run pipeline. This will bring up the pipeline parameters to fill out:
185+
1. The branch will **always** be main, no matter if release a build from prerelease or release.
186+
2. Uncheck the "test" option.
187+
3. In "Resources", choose "dotnet-vscode-csharp [officialBuildCI]", then check only the build that should be released, and then confirm with "Use selected run". Based on the selected build, it will automatically determine if it is prerelease or release. ![release pipeline image](./docs/release_pipeline.png)
188+
4. The pipeline parameters should then look something like the following image. Hit "Run". ![release pipeline parameters image](./docs/release_pipeline_params.png)
189+
5. After a bit, the pipeline will request approval from an authorized approver before it actually uploads to the marketplace. Hit approve and it will continue.

docs/generated_prs.png

48.2 KB
Loading

docs/main_snap.png

99 KB
Loading

docs/release_pipeline.png

124 KB
Loading

docs/release_pipeline_params.png

40.9 KB
Loading

0 commit comments

Comments
 (0)