1 Version Numbers and Releases 2 ============================ 3 4 Curl is not only curl. Curl is also libcurl. They're actually individually 5 versioned, but they mostly follow each other rather closely. 6 7 The version numbering is always built up using the same system: 8 9 X.Y.Z 10 11 - X is main version number 12 - Y is release number 13 - Z is patch number 14 15 ## Bumping numbers 16 17 One of these numbers will get bumped in each new release. The numbers to the 18 right of a bumped number will be reset to zero. If Z is zero, it may not be 19 included in the version number. 20 21 The main version number will get bumped when *really* big, world colliding 22 changes are made. The release number is bumped when changes are performed or 23 things/features are added. The patch number is bumped when the changes are 24 mere bugfixes. 25 26 It means that after release 1.2.3, we can release 2.0 if something really big 27 has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs 28 were fixed. 29 30 Bumping, as in increasing the number with 1, is unconditionally only 31 affecting one of the numbers (except the ones to the right of it, that may be 32 set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99 33 becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come. 34 35 All original curl source release archives are named according to the libcurl 36 version (not according to the curl client version that, as said before, might 37 differ). 38 39 As a service to any application that might want to support new libcurl 40 features while still being able to build with older versions, all releases 41 have the libcurl version stored in the curl/curlver.h file using a static 42 numbering scheme that can be used for comparison. The version number is 43 defined as: 44 45 #define LIBCURL_VERSION_NUM 0xXXYYZZ 46 47 Where XX, YY and ZZ are the main version, release and patch numbers in 48 hexadecimal. All three number fields are always represented using two digits 49 (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7 50 appears as "0x090b07". 51 52 This 6-digit hexadecimal number is always a greater number in a more recent 53 release. It makes comparisons with greater than and less than work. 54 55 This number is also available as three separate defines: 56 `LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`. 57