113498266Sopenharmony_ci# How to determine if an early patch release is warranted 213498266Sopenharmony_ci 313498266Sopenharmony_ciIn the curl project we do releases every 8 weeks. Unless we break the cycle 413498266Sopenharmony_ciand do an early patch release. 513498266Sopenharmony_ci 613498266Sopenharmony_ciWe do frequent releases partly to always have the next release "not too far 713498266Sopenharmony_ciaway". 813498266Sopenharmony_ci 913498266Sopenharmony_ci## Bugfix 1013498266Sopenharmony_ci 1113498266Sopenharmony_ciDuring the release cycle, and especially in the beginning of a new cycle (the 1213498266Sopenharmony_ciso-called "cool down" period), there are times when a bug is reported and 1313498266Sopenharmony_ciafter it has been subsequently fixed correctly, the question might be asked: 1413498266Sopenharmony_ciis this bug and associated fix important enough for an early patch release? 1513498266Sopenharmony_ci 1613498266Sopenharmony_ciThe question can only be properly asked when a fix has been created and landed 1713498266Sopenharmony_ciin the git master branch. 1813498266Sopenharmony_ci 1913498266Sopenharmony_ci## Early release 2013498266Sopenharmony_ci 2113498266Sopenharmony_ciAn early patch release means that we ship a new, complete and full release 2213498266Sopenharmony_cicalled `major.minor.patch` where the `patch` part is increased by one since 2313498266Sopenharmony_cithe previous release. A curl release is a curl release. There is no small or 2413498266Sopenharmony_cibig and we never release just a patch. There is only "release". 2513498266Sopenharmony_ci 2613498266Sopenharmony_ci## Questions to ask 2713498266Sopenharmony_ci 2813498266Sopenharmony_ci - Is there a security advisory rated high or critical? 2913498266Sopenharmony_ci - Is there a data corruption bug? 3013498266Sopenharmony_ci - Did the bug cause an API/ABI breakage? 3113498266Sopenharmony_ci - Will the problem annoy a significant share of the user population? 3213498266Sopenharmony_ci 3313498266Sopenharmony_ciIf the answer is yes to one or more of the above, an early release might be 3413498266Sopenharmony_ciwarranted. 3513498266Sopenharmony_ci 3613498266Sopenharmony_ciMore questions to ask ourselves when doing the assessment if the answers to 3713498266Sopenharmony_cithe three ones above are all 'no'. 3813498266Sopenharmony_ci 3913498266Sopenharmony_ci - Does the bug cause curl to prematurely terminate? 4013498266Sopenharmony_ci - How common is the affected buggy option/feature/protocol/platform to get 4113498266Sopenharmony_ci used? 4213498266Sopenharmony_ci - How large is the estimated impacted user base? 4313498266Sopenharmony_ci - Does the bug block something crucial for applications or other adoption of 4413498266Sopenharmony_ci curl "out there" ? 4513498266Sopenharmony_ci - Does the bug cause problems for curl developers or others on "the curl 4613498266Sopenharmony_ci team" ? 4713498266Sopenharmony_ci - Is the bug limited to the curl tool only? That might have a smaller impact 4813498266Sopenharmony_ci than a bug also present in libcurl. 4913498266Sopenharmony_ci - Is there a (decent) workaround? 5013498266Sopenharmony_ci - Is it a regression? Is the bug introduced in this release? 5113498266Sopenharmony_ci - Can the bug be fixed "easily" by applying a patch? 5213498266Sopenharmony_ci - Does the bug break the build? Most users do not build curl themselves. 5313498266Sopenharmony_ci - How long is it until the already scheduled next release? 5413498266Sopenharmony_ci - Can affected users safely rather revert to a former release until the next 5513498266Sopenharmony_ci scheduled release? 5613498266Sopenharmony_ci - Is it a performance regression with no functionality side-effects? If so it 5713498266Sopenharmony_ci has to be substantial. 5813498266Sopenharmony_ci 5913498266Sopenharmony_ci## If an early release is deemed necessary 6013498266Sopenharmony_ci 6113498266Sopenharmony_ciUnless done for security or similarly important reasons, an early release 6213498266Sopenharmony_cishould not be done within a week of the previous release. 6313498266Sopenharmony_ci 6413498266Sopenharmony_ciThis, to enable us to collect and bundle more fixes into the same release to 6513498266Sopenharmony_cimake the release more worthwhile for everyone and to allow more time for fixes 6613498266Sopenharmony_cito settle and things to get tested. Getting a release in shape and done in 6713498266Sopenharmony_cistyle is work that should not be rushed. 68