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