curl/docs/RELEASE-PROCEDURE.md

111 lines
3.2 KiB
Markdown
Raw Normal View History

2013-12-18 08:37:04 -05:00
curl release procedure - how to do a release
============================================
in the source code repo
-----------------------
2013-12-18 08:37:04 -05:00
- run `./scripts/copyright.pl` and correct possible omissions
- edit `RELEASE-NOTES` to be accurate
2013-12-18 08:37:04 -05:00
- update `docs/THANKS`
2013-12-18 08:37:04 -05:00
- make sure all relevant changes are committed on the master branch
- tag the git repo in this style: `git tag -a curl-7_34_0`. -a annotates the
2018-06-15 07:32:41 -04:00
tag and we use underscores instead of dots in the version number. Make sure
the tag is GPG signed (using -s).
2013-12-18 08:37:04 -05:00
- run "./maketgz 7.34.0" to build the release tarballs. It is important that
you run this on a machine with the correct set of autotools etc installed
as this is what then will be shipped and used by most users on \*nix like
2013-12-18 08:37:04 -05:00
systems.
- push the git commits and the new tag
- gpg sign the 4 tarballs as maketgz suggests
- upload the 8 resulting files to the primary download directory
in the curl-www repo
--------------------
2013-12-18 08:37:04 -05:00
- edit `Makefile` (version number and date),
- edit `_newslog.html` (announce the new release) and
- edit `_changes.html` (insert changes+bugfixes from RELEASE-NOTES)
2013-12-18 08:37:04 -05:00
- commit all local changes
2018-06-15 07:32:41 -04:00
- tag the repo with the same name as used for the source repo.
2013-12-18 08:37:04 -05:00
- make sure all relevant changes are committed and pushed on the master branch
(the website then updates its contents automatically)
2013-12-18 08:37:04 -05:00
on github
---------
- edit the newly made release tag so that it is listed as the latest release
inform
------
2013-12-18 08:37:04 -05:00
- send an email to curl-users, curl-announce and curl-library. Insert the
RELEASE-NOTES into the mail.
celebrate
---------
2013-12-18 08:37:04 -05:00
- suitable beverage intake is encouraged for the festivities
curl release scheduling
=======================
Release Cycle
-------------
We do releases every 8 weeks on Wednesdays. If critical problems arise, we can
insert releases outside of the schedule or we can move the release date - but
this is rare.
Each 8 week release cycle is split in two 4-week periods.
- During the first 4 weeks after a release, we allow new features and changes
to curl and libcurl. If we accept any such changes, we bump the minor number
used for the next release.
- During the second 4-week period we do not merge any features or changes, we
then only focus on fixing bugs and polishing things to make a solid coming
release.
- After a regular procedure-following release (made on Wednesdays), the
feature window remains closed until the following Monday in case of special
actions or patch releases etc.
If a future release date happens to end up on a "bad date", like in the middle
of common public holidays or when the lead release manager is away traveling,
the release date can be moved forwards or backwards a full week. This is then
advertised well in advance.
Coming dates
------------
Based on the description above, here are some planned release dates (at the
time of this writing):
- August 19, 2020 (7.72.0)
- October 14, 2020
- December 9, 2020
- February 3, 2021
- March 31, 2021
- May 26, 2021
- July 21, 2021
- September 15, 2021
- November 10, 2021
The above (and more) curl-related dates are published in
[iCalendar format](https://calendar.google.com/calendar/ical/c9u5d64odop9js55oltfarjk6g%40group.calendar.google.com/public/basic.ics)
as well.