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 Workercurl release procedure - how to do a release 8*6236dae4SAndroid Build Coastguard Worker============================================ 9*6236dae4SAndroid Build Coastguard Worker 10*6236dae4SAndroid Build Coastguard Workerin the source code repo 11*6236dae4SAndroid Build Coastguard Worker----------------------- 12*6236dae4SAndroid Build Coastguard Worker 13*6236dae4SAndroid Build Coastguard Worker- edit `RELEASE-NOTES` to be accurate 14*6236dae4SAndroid Build Coastguard Worker 15*6236dae4SAndroid Build Coastguard Worker- update `docs/THANKS` 16*6236dae4SAndroid Build Coastguard Worker 17*6236dae4SAndroid Build Coastguard Worker- make sure all relevant changes are committed on the master branch 18*6236dae4SAndroid Build Coastguard Worker 19*6236dae4SAndroid Build Coastguard Worker- tag the git repo in this style: `git tag -a curl-7_34_0`. -a annotates the 20*6236dae4SAndroid Build Coastguard Worker tag and we use underscores instead of dots in the version number. Make sure 21*6236dae4SAndroid Build Coastguard Worker the tag is GPG signed (using -s). 22*6236dae4SAndroid Build Coastguard Worker 23*6236dae4SAndroid Build Coastguard Worker- run `./scripts/dmaketgz 7.34.0` to build the release tarballs. 24*6236dae4SAndroid Build Coastguard Worker 25*6236dae4SAndroid Build Coastguard Worker- push the git commits and the new tag 26*6236dae4SAndroid Build Coastguard Worker 27*6236dae4SAndroid Build Coastguard Worker- GPG sign the 4 tarballs as `maketgz` suggests 28*6236dae4SAndroid Build Coastguard Worker 29*6236dae4SAndroid Build Coastguard Worker- upload the 8 resulting files to the primary download directory 30*6236dae4SAndroid Build Coastguard Worker 31*6236dae4SAndroid Build Coastguard Workerin the curl-www repo 32*6236dae4SAndroid Build Coastguard Worker-------------------- 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard Worker- edit `Makefile` (version number and date), 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard Worker- edit `_newslog.html` (announce the new release) and 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Worker- edit `_changes.html` (insert changes+bugfixes from RELEASE-NOTES) 39*6236dae4SAndroid Build Coastguard Worker 40*6236dae4SAndroid Build Coastguard Worker- commit all local changes 41*6236dae4SAndroid Build Coastguard Worker 42*6236dae4SAndroid Build Coastguard Worker- tag the repo with the same name as used for the source repo. 43*6236dae4SAndroid Build Coastguard Worker 44*6236dae4SAndroid Build Coastguard Worker- make sure all relevant changes are committed and pushed on the master branch 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker (the website then updates its contents automatically) 47*6236dae4SAndroid Build Coastguard Worker 48*6236dae4SAndroid Build Coastguard Workeron GitHub 49*6236dae4SAndroid Build Coastguard Worker--------- 50*6236dae4SAndroid Build Coastguard Worker 51*6236dae4SAndroid Build Coastguard Worker- edit the newly made release tag so that it is listed as the latest release 52*6236dae4SAndroid Build Coastguard Worker 53*6236dae4SAndroid Build Coastguard Workerinform 54*6236dae4SAndroid Build Coastguard Worker------ 55*6236dae4SAndroid Build Coastguard Worker 56*6236dae4SAndroid Build Coastguard Worker- send an email to curl-users, curl-announce and curl-library. Insert the 57*6236dae4SAndroid Build Coastguard Worker RELEASE-NOTES into the mail. 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard Workercelebrate 60*6236dae4SAndroid Build Coastguard Worker--------- 61*6236dae4SAndroid Build Coastguard Worker 62*6236dae4SAndroid Build Coastguard Worker- suitable beverage intake is encouraged for the festivities 63*6236dae4SAndroid Build Coastguard Worker 64*6236dae4SAndroid Build Coastguard Workercurl release scheduling 65*6236dae4SAndroid Build Coastguard Worker======================= 66*6236dae4SAndroid Build Coastguard Worker 67*6236dae4SAndroid Build Coastguard WorkerRelease Cycle 68*6236dae4SAndroid Build Coastguard Worker------------- 69*6236dae4SAndroid Build Coastguard Worker 70*6236dae4SAndroid Build Coastguard WorkerWe normally do releases every 8 weeks on Wednesdays. If important problems 71*6236dae4SAndroid Build Coastguard Workerarise, we can insert releases outside the schedule or we can move the release 72*6236dae4SAndroid Build Coastguard Workerdate. 73*6236dae4SAndroid Build Coastguard Worker 74*6236dae4SAndroid Build Coastguard WorkerEach 8 week (56 days) release cycle is divided into three distinct periods: 75*6236dae4SAndroid Build Coastguard Worker 76*6236dae4SAndroid Build Coastguard Worker- During the first 10 calendar days after a release, we are in "cool down". We 77*6236dae4SAndroid Build Coastguard Worker do not merge features but only bug-fixes. If a regression is reported, we 78*6236dae4SAndroid Build Coastguard Worker might do a follow-up patch release. 79*6236dae4SAndroid Build Coastguard Worker 80*6236dae4SAndroid Build Coastguard Worker- During the following 3 weeks (21 days) there is a feature window: we allow 81*6236dae4SAndroid Build Coastguard Worker new features and changes to curl and libcurl. If we accept any such changes, 82*6236dae4SAndroid Build Coastguard Worker we bump the minor number used for the next release. 83*6236dae4SAndroid Build Coastguard Worker 84*6236dae4SAndroid Build Coastguard Worker- During the next 25 days we are in feature freeze. We do not merge any 85*6236dae4SAndroid Build Coastguard Worker features or changes, and we only focus on fixing bugs and polishing things 86*6236dae4SAndroid Build Coastguard Worker to make the pending release a solid one. 87*6236dae4SAndroid Build Coastguard Worker 88*6236dae4SAndroid Build Coastguard WorkerIf a future release date happens to end up on a "bad date", like in the middle 89*6236dae4SAndroid Build Coastguard Workerof common public holidays or when the lead release manager is unavailable, the 90*6236dae4SAndroid Build Coastguard Workerrelease date can be moved forwards or backwards a full week. This is then 91*6236dae4SAndroid Build Coastguard Workeradvertised well in advance. 92*6236dae4SAndroid Build Coastguard Worker 93*6236dae4SAndroid Build Coastguard WorkerCritical problems 94*6236dae4SAndroid Build Coastguard Worker----------------- 95*6236dae4SAndroid Build Coastguard Worker 96*6236dae4SAndroid Build Coastguard WorkerWe can break the release cycle and do a patch release at any point if a 97*6236dae4SAndroid Build Coastguard Workercritical enough problem is reported. There is no exact definition of how to 98*6236dae4SAndroid Build Coastguard Workerassess such criticality, but if an issue is highly disturbing or has a 99*6236dae4SAndroid Build Coastguard Workersecurity impact on a large enough share of the user population it might 100*6236dae4SAndroid Build Coastguard Workerqualify. 101*6236dae4SAndroid Build Coastguard Worker 102*6236dae4SAndroid Build Coastguard WorkerIf you think an issue qualifies, bring it to the curl-library mailing list and 103*6236dae4SAndroid Build Coastguard Workerpush for it. 104*6236dae4SAndroid Build Coastguard Worker 105*6236dae4SAndroid Build Coastguard WorkerComing dates 106*6236dae4SAndroid Build Coastguard Worker------------ 107*6236dae4SAndroid Build Coastguard Worker 108*6236dae4SAndroid Build Coastguard WorkerBased on the description above, here are some planned release dates (at the 109*6236dae4SAndroid Build Coastguard Workertime of this writing): 110*6236dae4SAndroid Build Coastguard Worker 111*6236dae4SAndroid Build Coastguard Worker- September 11, 2024 112*6236dae4SAndroid Build Coastguard Worker- November 6, 2024 113*6236dae4SAndroid Build Coastguard Worker- January 8, 2025 114*6236dae4SAndroid Build Coastguard Worker- March 5, 2025 115*6236dae4SAndroid Build Coastguard Worker- April 30, 2025 116*6236dae4SAndroid Build Coastguard Worker- June 25, 2025 117*6236dae4SAndroid Build Coastguard Worker- August 20, 2025 118*6236dae4SAndroid Build Coastguard Worker- October 15, 2025 119