xref: /aosp_15_r20/external/curl/docs/RELEASE-PROCEDURE.md (revision 6236dae45794135f37c4eb022389c904c8b0090d)
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