                                  _   _ ____  _
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

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 may not be
 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/curlver.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.

 This number is also available as three separate defines:
 LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH.
