Skip to content

Commit f64c1ee

Browse files
Sacha0ararslanViralBShah
authored
Add patch release contribution docs to CONTRIBUTING.md. (#39357)
* Add patch release contribution docs to CONTRIBUTING.md. Co-authored-by: Alex Arslan <[email protected]> Co-authored-by: Viral B. Shah <[email protected]>
1 parent 40772d0 commit f64c1ee

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

CONTRIBUTING.md

+45
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,51 @@ process before running the corresponding test. This can be useful as a shortcut
248248
on the command line (since tests aren't always designed to be run outside the
249249
runtest harness).
250250

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+
251296
### Code Formatting Guidelines
252297

253298
#### General Formatting Guidelines for Julia code contributions

0 commit comments

Comments
 (0)