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