lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 1 | curl release procedure - how to do a release |
| 2 | ============================================ |
| 3 | |
| 4 | in the source code repo |
| 5 | ----------------------- |
| 6 | |
| 7 | - edit `RELEASE-NOTES` to be accurate |
| 8 | |
| 9 | - update `docs/THANKS` |
| 10 | |
| 11 | - make sure all relevant changes are committed on the master branch |
| 12 | |
| 13 | - tag the git repo in this style: `git tag -a curl-7_34_0`. -a annotates the |
| 14 | tag and we use underscores instead of dots in the version number. |
| 15 | |
| 16 | - run "./maketgz 7.34.0" to build the release tarballs. It is important that |
| 17 | you run this on a machine with the correct set of autotools etc installed |
| 18 | as this is what then will be shipped and used by most users on *nix like |
| 19 | systems. |
| 20 | |
| 21 | - push the git commits and the new tag |
| 22 | |
| 23 | - gpg sign the 4 tarballs as maketgz suggests |
| 24 | |
| 25 | - upload the 8 resulting files to the primary download directory |
| 26 | |
| 27 | in the curl-www repo |
| 28 | -------------------- |
| 29 | |
| 30 | - edit `Makefile` (version number and date), |
| 31 | |
| 32 | - edit `_newslog.html` (announce the new release) and |
| 33 | |
| 34 | - edit `_changes.html` (insert changes+bugfixes from RELEASE-NOTES) |
| 35 | |
| 36 | - commit all local changes |
| 37 | |
| 38 | - tag the repo with the same tag as used for the source repo |
| 39 | |
| 40 | - make sure all relevant changes are committed and pushed on the master branch |
| 41 | |
| 42 | (the web site then updates its contents automatically) |
| 43 | |
| 44 | on github |
| 45 | --------- |
| 46 | |
| 47 | - edit the newly made release tag so that it is listed as the latest release |
| 48 | |
| 49 | inform |
| 50 | ------ |
| 51 | |
| 52 | - send an email to curl-users, curl-announce and curl-library. Insert the |
| 53 | RELEASE-NOTES into the mail. |
| 54 | |
| 55 | celebrate |
| 56 | --------- |
| 57 | |
| 58 | - suitable beverage intake is encouraged for the festivities |
| 59 | |
| 60 | curl release scheduling |
| 61 | ======================= |
| 62 | |
| 63 | Basics |
| 64 | ------ |
| 65 | |
| 66 | We do releases every 8 weeks on Wednesdays. If critical problems arise, we can |
| 67 | insert releases outside of the schedule or we can move the release date - but |
| 68 | this is very rare. |
| 69 | |
| 70 | Each 8 week release cycle is split in two 4-week periods. |
| 71 | |
| 72 | - During the first 4 weeks after a release, we allow new features and changes |
| 73 | to curl and libcurl. If we accept any such changes, we bump the minor number |
| 74 | used for the next release. |
| 75 | |
| 76 | - During the second 4-week period we do not merge any features or changes, we |
| 77 | then only focus on fixing bugs and polishing things to make a solid coming |
| 78 | release. |
| 79 | |
| 80 | Coming dates |
| 81 | ------------ |
| 82 | |
| 83 | Based on the description above, here are some planned release dates (at the |
| 84 | time of this writing): |
| 85 | |
| 86 | - June 14, 2017 (version 7.54.1) |
| 87 | - August 9, 2017 |
| 88 | - October 4, 2017 |
| 89 | - November 29, 2017 |
| 90 | - January 24, 2018 |
| 91 | - March 21, 2018 |
| 92 | - May 16, 2018 |