113498266Sopenharmony_ciVersion Numbers and Releases 213498266Sopenharmony_ci============================ 313498266Sopenharmony_ci 413498266Sopenharmony_ci Curl is not only curl. Curl is also libcurl. They are actually individually 513498266Sopenharmony_ci versioned, but they usually follow each other closely. 613498266Sopenharmony_ci 713498266Sopenharmony_ci The version numbering is always built up using the same system: 813498266Sopenharmony_ci 913498266Sopenharmony_ci X.Y.Z 1013498266Sopenharmony_ci 1113498266Sopenharmony_ci - X is main version number 1213498266Sopenharmony_ci - Y is release number 1313498266Sopenharmony_ci - Z is patch number 1413498266Sopenharmony_ci 1513498266Sopenharmony_ci## Bumping numbers 1613498266Sopenharmony_ci 1713498266Sopenharmony_ci One of these numbers will get bumped in each new release. The numbers to the 1813498266Sopenharmony_ci right of a bumped number will be reset to zero. 1913498266Sopenharmony_ci 2013498266Sopenharmony_ci The main version number will get bumped when *really* big, world colliding 2113498266Sopenharmony_ci changes are made. The release number is bumped when changes are performed or 2213498266Sopenharmony_ci things/features are added. The patch number is bumped when the changes are 2313498266Sopenharmony_ci mere bugfixes. 2413498266Sopenharmony_ci 2513498266Sopenharmony_ci It means that after release 1.2.3, we can release 2.0.0 if something really 2613498266Sopenharmony_ci big has been made, 1.3.0 if not that big changes were made or 1.2.4 if only 2713498266Sopenharmony_ci bugs were fixed. 2813498266Sopenharmony_ci 2913498266Sopenharmony_ci Bumping, as in increasing the number with 1, is unconditionally only 3013498266Sopenharmony_ci affecting one of the numbers (except the ones to the right of it, that may be 3113498266Sopenharmony_ci set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99 3213498266Sopenharmony_ci becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100.0 might come. 3313498266Sopenharmony_ci 3413498266Sopenharmony_ci All original curl source release archives are named according to the libcurl 3513498266Sopenharmony_ci version (not according to the curl client version that, as said before, might 3613498266Sopenharmony_ci differ). 3713498266Sopenharmony_ci 3813498266Sopenharmony_ci As a service to any application that might want to support new libcurl 3913498266Sopenharmony_ci features while still being able to build with older versions, all releases 4013498266Sopenharmony_ci have the libcurl version stored in the `curl/curlver.h` file using a static 4113498266Sopenharmony_ci numbering scheme that can be used for comparison. The version number is 4213498266Sopenharmony_ci defined as: 4313498266Sopenharmony_ci 4413498266Sopenharmony_ci```c 4513498266Sopenharmony_ci#define LIBCURL_VERSION_NUM 0xXXYYZZ 4613498266Sopenharmony_ci``` 4713498266Sopenharmony_ci 4813498266Sopenharmony_ci Where `XX`, `YY` and `ZZ` are the main version, release and patch numbers in 4913498266Sopenharmony_ci hexadecimal. All three number fields are always represented using two digits 5013498266Sopenharmony_ci (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7 5113498266Sopenharmony_ci appears as `0x090b07`. 5213498266Sopenharmony_ci 5313498266Sopenharmony_ci This 6-digit hexadecimal number is always a greater number in a more recent 5413498266Sopenharmony_ci release. It makes comparisons with greater than and less than work. 5513498266Sopenharmony_ci 5613498266Sopenharmony_ci This number is also available as three separate defines: 5713498266Sopenharmony_ci `LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`. 58