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