You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: INTERNAL.md
+37-4Lines changed: 37 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -64,15 +64,48 @@ it's a good idea to check the previous link for any old or stalled insertions in
64
64
Update the `insertTargetBranch` value at the bottom of `azure-pipelines.yml` in the appropriate release branch. E.g., when VS 17.3 snapped and switched to ask mode, [this PR](https://github.com/dotnet/fsharp/pull/13456/files) correctly updates the insertion target so that future builds from that F# branch will get auto-inserted to VS.
65
65
66
66
### When VS `main` is open for insertions for preview releases of VS:
67
-
68
-
1. Create a new `release/dev*` branch (e.g., `release/dev17.4`) and initially set its HEAD commit to that of the previous release (e.g., `release/dev17.3` in this case).
67
+
0. Disable auto-merges from `main` to **current** release branch, please make a change for the following file and create a pull request:
> You should comment out the `main -> release/devXX.X` flow until step #4 is completed (`<merge from="main" to="release/dev17.13" />`)
70
+
2. Create a new `release/dev*` branch (e.g., `release/dev17.4`) and initially set its HEAD commit to that of the previous release (e.g., `release/dev17.3` in this case).
69
71
```console
70
72
git checkout -b release/dev17.4
71
73
git reset --hard upstream/release/dev17.3
72
74
git push --set-upstream upstream release/dev17.4
73
75
```
74
-
3. Set the new branch to receive auto-merges from `main`, and also set the old release branch to flow into the new one. [This PR](https://github.com/dotnet/roslyn-tools/pull/1245/files) is a good example of what to do when a new `release/dev17.4` branch is created that should receive merges from both `main` and the previous release branch, `release/dev17.3`.
75
-
4. Set the packages from the new branch to flow into the correct package feeds via the `darc` tool. To do this:
76
+
3. Update versions in both `main` and new release branch **they need to match, so release notes bot knows which changelog file to check**
77
+
4. Update target insertion branches in the `azure-pipelines.yml`:
78
+
1. F# release branch
79
+
```yaml
80
+
# Release branch for F#
81
+
# Should be 'current' release branch name, i.e. 'release/dev17.10' in dotnet/fsharp/refs/heads/main, 'release/dev17.10' in dotnet/fsharp/refs/heads/release/dev17.10 and 'release/dev17.9' in dotnet/fsharp/refs/heads/release/dev17.9
82
+
# Should **never** be 'main' in dotnet/fsharp/refs/heads/main, since it will start inserting to VS twice.
83
+
- name: FSharpReleaseBranchName
84
+
value: release/dev17.13
85
+
```
86
+
2. VS insertion branch
87
+
```yaml
88
+
# VS Insertion branch name (NOT the same as F# branch)
89
+
# Should be previous release branch or 'main' in 'main' and 'main' in release branch
90
+
# (since for all *new* release branches we insert into VS main and for all *previous* releases we insert into corresponding VS release),
91
+
# i.e. 'rel/d17.9' *or* 'main' in dotnet/fsharp/refs/heads/main and 'main' in F# dotnet/fsharp/refs/heads/release/dev17.10 (latest release branch)
92
+
- name: VSInsertionTargetBranchName
93
+
value: main
94
+
```
95
+
> [!NOTE] Note
96
+
> For the **old** release branch `VSInsertionTargetBranchName` should point to corresponding VS release target branch (e.g. should be `rel/d17.13` in the F# repo branch `release/dev17.13`)
97
+
> For both `main` and **new** release branch `VSInsertionTargetBranchName` should be `main`.
98
+
>
99
+
> `FSharpReleaseBranchName` should **always** be the most recent in `main` and corresponding release branch name in release branches.
100
+
101
+
3. Oneloc branch:
102
+
```yaml
103
+
# Localization: we only run it for specific release branches
104
+
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/release/dev17.13') }}:
105
+
```
106
+
5. Set the new branch to receive auto-merges from `main`, and also set the old release branch to flow into the new one. [This PR](https://github.com/dotnet/roslyn-tools/pull/1245/files) is a good example of what to do when a new `release/dev17.4` branch is created that should receive merges from both `main` and the previous release branch, `release/dev17.3`. Old release branch should stop receiving updates from the `main`.
107
+
108
+
6. Set the packages from the new branch to flow into the correct package feeds via the `darc` tool. To do this:
76
109
1. Ensure the latest `darc` tool is installed by running `eng/common/darc-init.ps1`.
77
110
2. (only needed once) Run the command `darc authenticate`. A text file will be opened with instructions on how to populate access tokens.
78
111
3. Check the current package/channel subscriptions by running `darc get-default-channels --source-repo fsharp`. For this example, notice that the latest subscription shows the F# branch `release/dev17.3` is getting added to the `VS 17.3` channel.
0 commit comments