@@ -248,6 +248,51 @@ process before running the corresponding test. This can be useful as a shortcut
248
248
on the command line (since tests aren't always designed to be run outside the
249
249
runtest harness).
250
250
251
+ ### Contributing to patch releases
252
+
253
+ The process of creating a patch release is roughly as follows:
254
+
255
+ 1 . Create a new branch (e.g. ` backports-release-1.6 ` ) against the relevant minor release
256
+ branch (e.g. ` release-1.6 ` ). Usually a corresponding pull request is created as well.
257
+
258
+ 2 . Add commits, nominally from ` master ` (hence "backports"), to that branch.
259
+ See below for more information on this process.
260
+
261
+ 3 . Run the [ BaseBenchmarks.jl] ( https://github.com/JuliaCI/BaseBenchmarks.jl ) benchmark
262
+ suite and [ PkgEval.jl] ( https://github.com/JuliaCI/PkgEval.jl ) package ecosystem
263
+ exerciser against that branch. Nominally BaseBenchmarks.jl and PkgEval.jl are
264
+ invoked via [ Nanosoldier.jl] ( https://github.com/JuliaCI/Nanosoldier.jl ) from
265
+ the pull request associated with the backports branch. Fix any issues.
266
+
267
+ 4 . Once all test and benchmark reports look good, merge the backports branch into
268
+ the corresponding release branch (e.g. merge ` backports-release-1.6 ` into
269
+ ` release-1.6 ` ).
270
+
271
+ 5 . Open a pull request that bumps the version of the relevant minor release to the
272
+ next patch version, e.g. as in [ this pull request] ( https://github.com/JuliaLang/julia/pull/37718 ) .
273
+
274
+ 6 . Ping ` @JuliaLang/releases ` to tag the patch release and update the website.
275
+
276
+ 7 . Open a pull request that bumps the version of the relevant minor release to the
277
+ next prerelase patch version, e.g. as in [ this pull request] ( https://github.com/JuliaLang/julia/pull/37724 ) .
278
+
279
+ Step 2 above, i.e. backporting commits to the ` backports-release-X.Y ` branch, has largely
280
+ been automated via [ ` Backporter ` ] ( https://github.com/KristofferC/Backporter ) : Backporter
281
+ searches for merged pull requests with the relevant ` backport-X.Y ` tag, and attempts to
282
+ cherry-pick the commits from those pull requests onto the ` backports-release-X.Y ` branch.
283
+ Some commits apply successfully without intervention, others not so much. The latter
284
+ commits require "manual" backporting, with which help is generally much appreciated.
285
+ Backporter generates a report identifying those commits it managed to backport automatically
286
+ and those that require manual backporting; this report is usually copied into the first
287
+ post of the pull request associated with ` backports-release-X.Y ` and maintained as
288
+ additional commits are automatically and/or manually backported.
289
+
290
+ When contributing a manual backport, if you have the necessary permissions, please push the
291
+ backport directly to the ` backports-release-X.Y ` branch. If you lack the relevant
292
+ permissions, please open a pull request against the ` backports-release-X.Y ` branch with the
293
+ manual backport. Once the manual backport is live on the ` backports-release-X.Y ` branch,
294
+ please remove the ` backport-X.Y ` tag from the originating pull request for the commits.
295
+
251
296
### Code Formatting Guidelines
252
297
253
298
#### General Formatting Guidelines for Julia code contributions
0 commit comments