xref: /aosp_15_r20/external/curl/docs/EARLY-RELEASE.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker<!--
2*6236dae4SAndroid Build Coastguard WorkerCopyright (C) Daniel Stenberg, <[email protected]>, et al.
3*6236dae4SAndroid Build Coastguard Worker
4*6236dae4SAndroid Build Coastguard WorkerSPDX-License-Identifier: curl
5*6236dae4SAndroid Build Coastguard Worker-->
6*6236dae4SAndroid Build Coastguard Worker
7*6236dae4SAndroid Build Coastguard Worker# How to determine if an early patch release is warranted
8*6236dae4SAndroid Build Coastguard Worker
9*6236dae4SAndroid Build Coastguard WorkerIn the curl project we do releases every 8 weeks. Unless we break the cycle
10*6236dae4SAndroid Build Coastguard Workerand do an early patch release.
11*6236dae4SAndroid Build Coastguard Worker
12*6236dae4SAndroid Build Coastguard WorkerWe do frequent releases partly to always have the next release "not too far
13*6236dae4SAndroid Build Coastguard Workeraway".
14*6236dae4SAndroid Build Coastguard Worker
15*6236dae4SAndroid Build Coastguard Worker## Bugfix
16*6236dae4SAndroid Build Coastguard Worker
17*6236dae4SAndroid Build Coastguard WorkerDuring the release cycle, and especially in the beginning of a new cycle (the
18*6236dae4SAndroid Build Coastguard Workerso-called "cool down" period), there are times when a bug is reported and
19*6236dae4SAndroid Build Coastguard Workerafter it has been subsequently fixed correctly, the question might be asked:
20*6236dae4SAndroid Build Coastguard Workeris this bug and associated fix important enough for an early patch release?
21*6236dae4SAndroid Build Coastguard Worker
22*6236dae4SAndroid Build Coastguard WorkerThe question can only be properly asked when a fix has been created and landed
23*6236dae4SAndroid Build Coastguard Workerin the git master branch.
24*6236dae4SAndroid Build Coastguard Worker
25*6236dae4SAndroid Build Coastguard Worker## Early release
26*6236dae4SAndroid Build Coastguard Worker
27*6236dae4SAndroid Build Coastguard WorkerAn early patch release means that we ship a new, complete and full release
28*6236dae4SAndroid Build Coastguard Workercalled `major.minor.patch` where the `patch` part is increased by one since
29*6236dae4SAndroid Build Coastguard Workerthe previous release. A curl release is a curl release. There is no small or
30*6236dae4SAndroid Build Coastguard Workerbig and we never release just a patch. There is only "release".
31*6236dae4SAndroid Build Coastguard Worker
32*6236dae4SAndroid Build Coastguard Worker## Questions to ask
33*6236dae4SAndroid Build Coastguard Worker
34*6236dae4SAndroid Build Coastguard Worker - Is there a security advisory rated high or critical?
35*6236dae4SAndroid Build Coastguard Worker - Is there a data corruption bug?
36*6236dae4SAndroid Build Coastguard Worker - Did the bug cause an API/ABI breakage?
37*6236dae4SAndroid Build Coastguard Worker - Does the problem annoy a significant share of the user population?
38*6236dae4SAndroid Build Coastguard Worker
39*6236dae4SAndroid Build Coastguard WorkerIf the answer is yes to one or more of the above, an early release might be
40*6236dae4SAndroid Build Coastguard Workerwarranted.
41*6236dae4SAndroid Build Coastguard Worker
42*6236dae4SAndroid Build Coastguard WorkerMore questions to ask ourselves when doing the assessment if the answers to
43*6236dae4SAndroid Build Coastguard Workerthe three ones above are all 'no'.
44*6236dae4SAndroid Build Coastguard Worker
45*6236dae4SAndroid Build Coastguard Worker - Does the bug cause curl to prematurely terminate?
46*6236dae4SAndroid Build Coastguard Worker - How common is the affected buggy option/feature/protocol/platform to get
47*6236dae4SAndroid Build Coastguard Worker   used?
48*6236dae4SAndroid Build Coastguard Worker - How large is the estimated impacted user base?
49*6236dae4SAndroid Build Coastguard Worker - Does the bug block something crucial for applications or other adoption of
50*6236dae4SAndroid Build Coastguard Worker   curl "out there" ?
51*6236dae4SAndroid Build Coastguard Worker - Does the bug cause problems for curl developers or others on "the curl
52*6236dae4SAndroid Build Coastguard Worker   team" ?
53*6236dae4SAndroid Build Coastguard Worker - Is the bug limited to the curl tool only? That might have a smaller impact
54*6236dae4SAndroid Build Coastguard Worker   than a bug also present in libcurl.
55*6236dae4SAndroid Build Coastguard Worker - Is there a (decent) workaround?
56*6236dae4SAndroid Build Coastguard Worker - Is it a regression? Is the bug introduced in this release?
57*6236dae4SAndroid Build Coastguard Worker - Can the bug be fixed "easily" by applying a patch?
58*6236dae4SAndroid Build Coastguard Worker - Does the bug break the build? Most users do not build curl themselves.
59*6236dae4SAndroid Build Coastguard Worker - How long is it until the already scheduled next release?
60*6236dae4SAndroid Build Coastguard Worker - Can affected users safely rather revert to a former release until the next
61*6236dae4SAndroid Build Coastguard Worker   scheduled release?
62*6236dae4SAndroid Build Coastguard Worker - Is it a performance regression with no functionality side-effects? If so it
63*6236dae4SAndroid Build Coastguard Worker   has to be substantial.
64*6236dae4SAndroid Build Coastguard Worker
65*6236dae4SAndroid Build Coastguard Worker## If an early release is deemed necessary
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard WorkerUnless done for security or similarly important reasons, an early release
68*6236dae4SAndroid Build Coastguard Workershould not be done within a week of the previous release.
69*6236dae4SAndroid Build Coastguard Worker
70*6236dae4SAndroid Build Coastguard WorkerThis, to enable us to collect and bundle more fixes into the same release to
71*6236dae4SAndroid Build Coastguard Workermake the release more worthwhile for everyone and to allow more time for fixes
72*6236dae4SAndroid Build Coastguard Workerto settle and things to get tested. Getting a release in shape and done in
73*6236dae4SAndroid Build Coastguard Workerstyle is work that should not be rushed.
74