Skip to content

Commit ae618aa

Browse files
authored
Update INTERNAL.md
1 parent 34a478e commit ae618aa

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

INTERNAL.md

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,48 @@ it's a good idea to check the previous link for any old or stalled insertions in
6464
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.
6565

6666
### 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:
68+
https://github.com/dotnet/roslyn-tools/blob/6d7c182c46f8319d7922561e2c1586c7aadce19e/src/GitHubCreateMergePRs/config.xml#L52-L74
69+
> 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).
6971
```console
7072
git checkout -b release/dev17.4
7173
git reset --hard upstream/release/dev17.3
7274
git push --set-upstream upstream release/dev17.4
7375
```
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:
76109
1. Ensure the latest `darc` tool is installed by running `eng/common/darc-init.ps1`.
77110
2. (only needed once) Run the command `darc authenticate`. A text file will be opened with instructions on how to populate access tokens.
78111
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

Comments
 (0)