From 818a632e80936067130a41d592e7af69c850c110 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 7 Nov 2001 08:26:51 +0000 Subject: [PATCH] Added VERSIONS that explains about the (lib)curl version numbers --- docs/Makefile.am | 2 +- docs/VERSIONS | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 docs/VERSIONS diff --git a/docs/Makefile.am b/docs/Makefile.am index 2d4836a7e..b0fea655e 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -61,7 +61,7 @@ HTMLPAGES = \ EXTRA_DIST = $(man_MANS) \ MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS \ README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS \ - $(HTMLPAGES) + VERSIONS $(HTMLPAGES) MAN2HTML= gnroff -man $< | man2html >$@ diff --git a/docs/VERSIONS b/docs/VERSIONS new file mode 100644 index 000000000..01455717e --- /dev/null +++ b/docs/VERSIONS @@ -0,0 +1,64 @@ + _ _ ____ _ + ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + +Version Numbers and Releases + + Curl is not only curl. Curl is also libcurl. They're actually individually + versioned, but they mostly follow each other rather closely. + + The version numbering is always built up using the same system: + + X.Y[.Z][-preN] + + Where + X is main version number + Y is release number + Z is patch number + N is pre-release number + + One of these numbers will get bumped in each new release. The numbers to the + right of a bumped number will be reset to zero. If Z is zero, it is not + included in the version number. The pre release number is only included in + pre releases (they're never used in public, official, releases). + + The main version number will get bumped when *really* big, world colliding + changes are made. The release number is bumped when big changes are + performed. The patch number is bumped when the changes are mere bugfixes and + only minor feature changes. The pre-release is a counter, to identify which + pre-release a certain release is. + + When reaching the end of a pre-release period, the version without the + pre-release part will be released as a public release. + + It means that after release 1.2.3, we can release 2.0 if something really big + has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs + were fixed. Before 1.2.4 is released, we might release a 1.2.4-pre1 release + for the brave people to try before the actual release. + + Bumping, as in increasing the number with 1, is unconditionally only + affecting one of the numbers (except the ones to the right of it, that may be + set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99 + becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come. + + All original curl source release archives are named according to the libcurl + version (not according to the curl client version that, as said before, might + differ). + + As a service to any application that might want to support new libcurl + features while still being able to build with older versions, all releases + have the libcurl version stored in the curl/curl.h file using a static + numbering scheme that can be used for comparison. The version number is + defined as: + + #define LIBCURL_VERSION_NUM 0xXXYYZZ + + Where XX, YY and ZZ are the main version, release and patch numbers in + hexadecimal. All three numbers are always represented using two digits. 1.2 + would appear as "0x010200" while version 9.11.7 appears as "0x090b07". + + This 6-digit hexadecimal number does not show pre-release number, and it is + always a greater number in a more recent release. It makes comparisons with + greater than and less than work.