@@ -67,13 +67,18 @@ Examples:
67
67
## Pre-release checks
68
68
69
69
1 . Check for any P0 and P1 issues that should be dealt with before release.
70
+
70
71
2 . Check for un-merged pull requests that should be merged before release.
72
+
71
73
3 . Ensure the ` release ` and ` stable ` branches are merged to the ` master `
72
74
branch.
75
+
73
76
4 . Check the copyright dates, and update if needed.
77
+
74
78
5 . Ensure CI matrices in docs (travis-complex, appveyor, azure) have current
75
79
stackage snapshots and GHC versions (e.g.
76
80
https://github.com/commercialhaskell/stack/pull/4565/files )
81
+
77
82
6 . Update the ` stack-*.yaml ` that uses a ` nightly ` snapshot to the latest
78
83
nightly (go over the extra-deps too) and ensure the project builds and tests
79
84
pass. For example, command:
@@ -84,6 +89,12 @@ Examples:
84
89
85
90
7. Ensure the integration tests pass on Linux, macOS and Windows.
86
91
92
+ 8. Some people prefer, or need, to build Stack with Cabal (the tool). Check
93
+ that `cabal.project` is up to date (the specified `with-compiler:`). Check
94
+ that `cabal.config` is up to date and is not missing dependencies relevant
95
+ on Windows and non-Windows operating systems, following the instructions in
96
+ `cabal.project`.
97
+
87
98
## Release preparation
88
99
89
100
### A: In the `master` branch
@@ -107,19 +118,19 @@ branch.
107
118
108
119
### C: Return to the `master` branch
109
120
110
- * `package.yaml`: bump version to the next unstable version (bump the second
111
- component to the next even number, ensure the third component is `0`; e.g.
112
- from `1.9.0` to `1.10.0`).
121
+ 1. `package.yaml`: bump version to the next unstable version (bump the second
122
+ component to the next even number, ensure the third component is `0`; e.g.
123
+ from `1.9.0` to `1.10.0`).
113
124
114
125
!!! attention
115
126
116
127
Be sure to update also `stack.cabal` (for example by using
117
128
`stack build --dry-run`).
118
129
119
- * `Changelog.md`:
120
- * Change the title of the existing **Unreleased changes** section to what
121
- will be the next final (non-RC) release (e.g. `v2.1.1`).
122
- * Add new "Unreleased changes" section:
130
+ 2. `Changelog.md`:
131
+ * Change the title of the existing **Unreleased changes** section to what
132
+ will be the next final (non-RC) release (e.g. `v2.1.1`).
133
+ * Add new "Unreleased changes" section:
123
134
124
135
~~~markdown
125
136
## Unreleased changes
@@ -137,6 +148,9 @@ branch.
137
148
Bug fixes:
138
149
~~~
139
150
151
+ 3. `cabal.config`: Ensure the `stack` constraint is set to the same version as
152
+ in the `package.yaml`.
153
+
140
154
### D: In the release candidate branch
141
155
142
156
Review documentation for any changes that need to be made:
@@ -176,51 +190,56 @@ Check for any platform entries that need to be added to (or removed from):
176
190
177
191
### E: For the first release candidate
178
192
179
- 1. Re-do the pre-release checks (see the section above).
180
- 2. `package.yaml`: bump to first odd patchlevel version (e.g. `X.Y.0.1`).
193
+ 1. Re-do the pre-release checks (see the section above).
194
+ 2. `package.yaml`: bump to first odd patchlevel version (e.g. `X.Y.0.1`).
181
195
182
196
!!! attention
183
197
184
198
Be sure to update also `stack.cabal` (for example by using
185
199
`stack build --dry-run`).
186
200
187
- 3. `ChangeLog.md`: Rename the “Unreleased changes” section to the same version
188
- as `package.yaml`, and mark it clearly as a release candidate (e.g.
189
- `vX.Y.0.1 (release candidate)`). Remove any empty sections.
190
- 4. Follow the steps in the *Release process* section below that apply to a
191
- release candidate.
201
+ 3. `ChangeLog.md`: Rename the “Unreleased changes” section to the same version
202
+ as `package.yaml`, and mark it clearly as a release candidate (e.g.
203
+ `vX.Y.0.1 (release candidate)`). Remove any empty sections.
204
+ 4. Ensure the `stack` constraint in `cabal.config` is set to `==X.Y.0.1`.
205
+ 5. Follow the steps in the *Release process* section below that apply to a
206
+ release candidate.
192
207
193
208
### F: For any subsequent release candidates
194
209
195
- 1. Re-do the pre-release checks (see the section above).
196
- 2. `package.yaml`: bump to next odd patchlevel version (e.g. `X.Y.0.3`).
210
+ 1. Re-do the pre-release checks (see the section above).
211
+ 2. `package.yaml`: bump to next odd patchlevel version (e.g. `X.Y.0.3`).
197
212
198
213
!!! attention
199
214
200
215
Be sure to update also `stack.cabal` (for example by using
201
216
`stack build --dry-run`).
202
217
203
- 3. `ChangeLog.md`: Rename the "Unreleased changes" section to the new version,
204
- clearly marked as a release candidate (e.g. `vX.Y.0.3 (release candidate)`).
205
- Remove any empty sections.
206
- 4. Follow the steps in the *Release process* section below that apply to a
207
- release candidate.
218
+ 3. `ChangeLog.md`: Rename the "Unreleased changes" section to the new version,
219
+ clearly marked as a release candidate (e.g. `vX.Y.0.3 (release candidate)`).
220
+ Remove any empty sections.
221
+ 4. Ensure the `stack` constraint in `cabal.config` is set to the same version
222
+ as in `package.yaml`.
223
+ 5. Follow the steps in the *Release process* section below that apply to a
224
+ release candidate.
208
225
209
226
### G: For the final release
210
227
211
- 1. Re-do the pre-release checks (see the section above).
212
- 2. `package.yaml`: bump version to odd last component and no patchlevel
213
- (e.g. from `X.Y.0.2` to `X.Y.1`).
228
+ 1. Re-do the pre-release checks (see the section above).
229
+ 2. `package.yaml`: bump version to odd last component and no patchlevel
230
+ (e.g. from `X.Y.0.2` to `X.Y.1`).
214
231
215
232
!!! attention
216
233
217
234
Be sure to update also `stack.cabal` (for example by using
218
235
`stack build --dry-run`).
219
236
220
- 3. `ChangeLog.md`: consolidate all the release candidate changes into a single
221
- section for the final release version.
222
- 4. Follow all of the steps in the *Release process* section below that apply to
223
- a final release.
237
+ 3. `ChangeLog.md`: consolidate all the release candidate changes into a single
238
+ section for the final release version.
239
+ 4. Ensure the `stack` constraint in `cabal.config` is set to the same version
240
+ as in `package.yaml` (e.g. to `==X.Y.1`).
241
+ 5. Follow all of the steps in the *Release process* section below that apply to
242
+ a final release.
224
243
225
244
## Release process
226
245
0 commit comments