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