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
Updates the documented process and the release tracking issue template
with streamlined and up to date process.
Signed-off-by: Shon Feder <shon.feder@gmail.com>
- Open PR on `ocaml/ocaml.org` to add a file in under `data/changelog/dune`
83
-
- Post to discuss
84
-
- Merge changelog
85
-
- Increase the version of Dune to the new latest in the [GitHub CI](https://github.com/ocaml/dune/blob/9a274be98cb9c2786dd76184c19c44b89e061ea8/.github/workflows/workflow.yml#L350), [dune-project](https://github.com/ocaml/dune/blob/main/dune-project#L1) and in the [dune-rpc](https://github.com/ocaml/dune/blob/main/otherlibs/dune-rpc/private/types.ml#L30). E.g, if you released `X.Y.Z`, the new version become `X.(Y+1).Z`.
86
-
- Update the Dune target in the [nix-ocaml/nix-overlays](https://github.com/nix-ocaml/nix-overlays) (the hash is computed using `nix-prefetch-url --type sha256 <URL>`)
87
-
- Close release milestone
88
-
- Add the copy of the revdeps file to the [previous releases](https://github.com/ocaml/dune/wiki/Reverse-dependencies-CI-logs) page
89
-
- Close tracking issue
90
-
91
-
## Point Releases / Patch Releases (`x.y.z`, `z >= 0`)
54
+
### Pre-release phase
55
+
56
+
During the pre-release phase, we produce alpha releases, which we use to run the
57
+
opam-ci to check for integration with the wider ocaml ecosystem.
58
+
59
+
1. Create and checkout the release candidate branch `X.Y.Z-rc` from the head of
60
+
`main`
61
+
2. Let `N=0`
62
+
3. Prepare alpha release
63
+
- If `N>0`
64
+
- Get all regressions fixed in `main`
65
+
- Either cherry-pick the fixes from `main` into the rc branch, or create a
66
+
new branch off `main`. (This is a judgment call, based on weighing risk of
67
+
picking up new regressions vs. the benefits of simpler process and picking
- combine all entries from different alpha release
97
+
- set the version header to `X.Y.Z (<date>)`
98
+
- commit onto `X.Y.Z-rc` branch with message `[X.Y.Z] release` and push to remote
99
+
- Push release branch to remote
100
+
- Run `make opam-release` from updated `X.Y.Z-rc` branch
101
+
- Add a comment on the opam repo PR linking back to the release tracker issues
102
+
and explaining that all triage is completed, and ask the opam repo maintainers
103
+
to bypass the opam-ci.
104
+
- In case of regression:
105
+
- Cancel the minor release publication by closing the opam repo PR
106
+
- Mark the GitHub release as a pre-release
107
+
- Proceed to a patch release
108
+
109
+
## Point Releases / Patch Releases (`X.Y.Z`, `Z >= 0`)
92
110
93
111
```mermaid
94
112
gitGraph
@@ -120,35 +138,21 @@ stateDiagram-v2
120
138
PostRelease --> [*]
121
139
```
122
140
123
-
- Prepare:
124
-
- Create release tracking issue
125
-
- List fixes present in main to backport
126
-
- Blockers for this release include:
127
-
- all backports of listed fixes
128
-
- changelogs of previous point releases are merged
129
-
130
-
- Backport:
131
-
- Branch setup
132
-
- (z>0) Position on branch `x.y`
133
-
-`git cherry-pick` commits as merged in `main`
134
-
- Open PR
135
-
- Set `x.y` as target branch, e.g. `gh pr create -B x.y`
136
-
- Title must be `[x.y] backport #<PR id>`
137
-
- List PR in blockers
138
-
139
-
- Release:
140
-
- Position on `x.y`
141
-
- Prepare changelog
142
-
- Open a PR `prepare-x.y.z`
143
-
-`make opam-release`
144
-
- Triage
145
-
146
-
- Post-release:
147
-
- Open PR on `ocaml/ocaml.org` to add a file in under `data/changelog/dune`
148
-
- Post changelog on Discuss in the same thread as `x.y.0`
149
-
- Merge changelog
150
-
- Update the Dune target in the [nix-ocaml/nix-overlays](https://github.com/nix-ocaml/nix-overlays) (the hash is computed using `nix-prefetch-url --type sha256 <URL>`)
151
-
- Close release tracking issue
141
+
- Build the changelog via `doc/changes/scripts/build_changelog.sh X.Y.Z`
142
+
- Review the resulting changelog for intelligibility.
143
+
- Commit the changelog update to the release branch with the commit message `[X.Y.Z] release`
144
+
- Push release branch to remote
145
+
- Run `make opam-release`.
146
+
- Wait for the `opam-ci` results
147
+
- Review the results:
148
+
- Any build or test failures in dune's own packages require fixes
149
+
- compare the new CI revdeps errors with the [errors from previous releases][prev-releases].
0 commit comments