113498266Sopenharmony_cicurl release procedure - how to do a release 213498266Sopenharmony_ci============================================ 313498266Sopenharmony_ci 413498266Sopenharmony_ciin the source code repo 513498266Sopenharmony_ci----------------------- 613498266Sopenharmony_ci 713498266Sopenharmony_ci- run `./scripts/copyright.pl` and correct possible omissions 813498266Sopenharmony_ci 913498266Sopenharmony_ci- edit `RELEASE-NOTES` to be accurate 1013498266Sopenharmony_ci 1113498266Sopenharmony_ci- update `docs/THANKS` 1213498266Sopenharmony_ci 1313498266Sopenharmony_ci- make sure all relevant changes are committed on the master branch 1413498266Sopenharmony_ci 1513498266Sopenharmony_ci- tag the git repo in this style: `git tag -a curl-7_34_0`. -a annotates the 1613498266Sopenharmony_ci tag and we use underscores instead of dots in the version number. Make sure 1713498266Sopenharmony_ci the tag is GPG signed (using -s). 1813498266Sopenharmony_ci 1913498266Sopenharmony_ci- run `./maketgz 7.34.0` to build the release tarballs. It is important that 2013498266Sopenharmony_ci you run this on a machine with the correct set of autotools etc installed 2113498266Sopenharmony_ci as this is what then will be shipped and used by most users on \*nix like 2213498266Sopenharmony_ci systems. 2313498266Sopenharmony_ci 2413498266Sopenharmony_ci- push the git commits and the new tag 2513498266Sopenharmony_ci 2613498266Sopenharmony_ci- GPG sign the 4 tarballs as `maketgz` suggests 2713498266Sopenharmony_ci 2813498266Sopenharmony_ci- upload the 8 resulting files to the primary download directory 2913498266Sopenharmony_ci 3013498266Sopenharmony_ciin the curl-www repo 3113498266Sopenharmony_ci-------------------- 3213498266Sopenharmony_ci 3313498266Sopenharmony_ci- edit `Makefile` (version number and date), 3413498266Sopenharmony_ci 3513498266Sopenharmony_ci- edit `_newslog.html` (announce the new release) and 3613498266Sopenharmony_ci 3713498266Sopenharmony_ci- edit `_changes.html` (insert changes+bugfixes from RELEASE-NOTES) 3813498266Sopenharmony_ci 3913498266Sopenharmony_ci- commit all local changes 4013498266Sopenharmony_ci 4113498266Sopenharmony_ci- tag the repo with the same name as used for the source repo. 4213498266Sopenharmony_ci 4313498266Sopenharmony_ci- make sure all relevant changes are committed and pushed on the master branch 4413498266Sopenharmony_ci 4513498266Sopenharmony_ci (the website then updates its contents automatically) 4613498266Sopenharmony_ci 4713498266Sopenharmony_cion GitHub 4813498266Sopenharmony_ci--------- 4913498266Sopenharmony_ci 5013498266Sopenharmony_ci- edit the newly made release tag so that it is listed as the latest release 5113498266Sopenharmony_ci 5213498266Sopenharmony_ciinform 5313498266Sopenharmony_ci------ 5413498266Sopenharmony_ci 5513498266Sopenharmony_ci- send an email to curl-users, curl-announce and curl-library. Insert the 5613498266Sopenharmony_ci RELEASE-NOTES into the mail. 5713498266Sopenharmony_ci 5813498266Sopenharmony_cicelebrate 5913498266Sopenharmony_ci--------- 6013498266Sopenharmony_ci 6113498266Sopenharmony_ci- suitable beverage intake is encouraged for the festivities 6213498266Sopenharmony_ci 6313498266Sopenharmony_cicurl release scheduling 6413498266Sopenharmony_ci======================= 6513498266Sopenharmony_ci 6613498266Sopenharmony_ciRelease Cycle 6713498266Sopenharmony_ci------------- 6813498266Sopenharmony_ci 6913498266Sopenharmony_ciWe normally do releases every 8 weeks on Wednesdays. If important problems 7013498266Sopenharmony_ciarise, we can insert releases outside the schedule or we can move the release 7113498266Sopenharmony_cidate. 7213498266Sopenharmony_ci 7313498266Sopenharmony_ciEach 8 week (56 days) release cycle is divided into three distinct periods: 7413498266Sopenharmony_ci 7513498266Sopenharmony_ci- During the first 10 calendar days after a release, we are in "cool down". We 7613498266Sopenharmony_ci do not merge features but only bug-fixes. If a regression is reported, we 7713498266Sopenharmony_ci might do a follow-up patch release. 7813498266Sopenharmony_ci 7913498266Sopenharmony_ci- During the following 3 weeks (21 days) there is a feature window: we allow 8013498266Sopenharmony_ci new features and changes to curl and libcurl. If we accept any such changes, 8113498266Sopenharmony_ci we bump the minor number used for the next release. 8213498266Sopenharmony_ci 8313498266Sopenharmony_ci- During the next 25 days we are in feature freeze. We do not merge any 8413498266Sopenharmony_ci features or changes, and we only focus on fixing bugs and polishing things 8513498266Sopenharmony_ci to make the pending release a solid one. 8613498266Sopenharmony_ci 8713498266Sopenharmony_ciIf a future release date happens to end up on a "bad date", like in the middle 8813498266Sopenharmony_ciof common public holidays or when the lead release manager is unavailable, the 8913498266Sopenharmony_cirelease date can be moved forwards or backwards a full week. This is then 9013498266Sopenharmony_ciadvertised well in advance. 9113498266Sopenharmony_ci 9213498266Sopenharmony_ciCritical problems 9313498266Sopenharmony_ci----------------- 9413498266Sopenharmony_ci 9513498266Sopenharmony_ciWe can break the release cycle and do a patch release at any point if a 9613498266Sopenharmony_cicritical enough problem is reported. There is no exact definition of how to 9713498266Sopenharmony_ciassess such criticality, but if an issue is highly disturbing or has a 9813498266Sopenharmony_cisecurity impact on a large enough share of the user population it might 9913498266Sopenharmony_ciqualify. 10013498266Sopenharmony_ci 10113498266Sopenharmony_ciIf you think an issue qualifies, bring it to the curl-library mailing list and 10213498266Sopenharmony_cipush for it. 10313498266Sopenharmony_ci 10413498266Sopenharmony_ciComing dates 10513498266Sopenharmony_ci------------ 10613498266Sopenharmony_ci 10713498266Sopenharmony_ciBased on the description above, here are some planned release dates (at the 10813498266Sopenharmony_citime of this writing): 10913498266Sopenharmony_ci 11013498266Sopenharmony_ci- October 11, 2023 11113498266Sopenharmony_ci- December 6, 2023 11213498266Sopenharmony_ci- January 31, 2024 11313498266Sopenharmony_ci- March 27, 2024 11413498266Sopenharmony_ci- May 22, 2024 11513498266Sopenharmony_ci- July 17, 2024 11613498266Sopenharmony_ci- September 11, 2024 11713498266Sopenharmony_ci- November 6, 2024 118